回归分析MATLAB代码

%reg.m
%回归分析法解
%…………………………………………
clc
%原始数据
%公路客运量(万人)
glkyl=[12815 15543 19326 22864 26150 28468 30882 39375 45759 49589 52560 48726 51083 56495 62767 83606 92090 101370 107317 108654 111847 112872 116997 126007 128980];
%公路货运量(万吨)
glhyl=[2690 2998 3012 3042 3616 3728 3988 9397 17680 19426 24128 24354 22879 24162 28957 36439 40593 45052 47400 45224 45338 45815 47151 55705 63532];
%市区人数(万人)
sqrs=[47.8 52.2 59 63.1 68.5 70 72 79.2 84.7 88.6 91 93 97.5 103.7 110 123 129.6 132 137.6 141 145 155.5 157 163.1 165.9];
%市区机动车数(万辆)
sqjdcs=[1.2 1.5 1.7 1.8 2.1 2.7 2.9 3.2 3.4 3.7 4.3 4.4 4.5 4.7 5 5.2 5.4 5.7 5.9 6.2 6.3 6.7 7.2 7.5 7.9];
%市区公路面积(万平方公里)
sqglmj=[0.2 0.25 0.25 0.3 0.45 0.5 0.5 0.7 0.7 0.75 0.8 0.8 0.85 1.1 1.25 1.3 1.3 1.5 1.55 1.75 1.8 1.8 2.05 2.1 2.3];
bb=[sqrs;sqjdcs;sqglmj]'; %输入数据矩阵
cc=[glkyl;glhyl]'; %输出数据矩阵

V=[]; %将来的系数矩阵
sh=[];
X=[ones(25,1) , bb]; %自变量矩阵(注意:第一列全为1)

%回归法求系数
for n=1:2
[b,bint,r,rint,ss]=regress(cc(:,n),X,0.0005); %regress函数
V(:,n)=b; %系数矩阵
sh(:,n)=r;
end

%带回验算 并绘图与原始数据对比
nf=1980:2004;
RLW=X*V;
figure;plot(nf,cc,'b:+');
hold on
plot(nf,RLW,'r-.');
grid on

%利用线性拟合出的数据来预测05、06的公路客运量和货运量
nh=[170.67 175.7
7.927 8.1949
2.1955 2.2818]';
nn=[zeros(2,1),nh];
ycc=nn*V; %预测结果

相关文档
最新文档