1.一元线性回归散点图
%最大积雪深度与灌溉面积之间的关系%
%绘制散点图,并添加趋势线%
x=[15.2,10.4,21.2,18.6,26.4,23.4,13.5,16.7,24,19.1]; %%最大积雪深度
y=[28.6,19.3,40.5,35.6,48.9,45.0,29.2,34.1,46.7,37.4]; %%灌溉面积
plot(x,y,'or'); %%绘制散点图
xlabel('最大积雪深度x'); %%添加x轴标签
ylabel('灌溉面积y'); %%添加y轴标签
hold on %%保持图形
lsline %%添加趋势线
2.基于矩阵运算的求解模型
%%基于矩阵运算计算回归系数,并添加趋势线
x=[15.2,10.4,21.2,18.6,26.4,23.4,13.5,16.7,24,19.1]; %%最大积雪深度
y=[28.6,19.3,40.5,35.6,48.9,45.0,29.2,34.1,46.7,37.4]; %%灌溉面积
[m,n]=size(x);
X=[ones(n,1),x'];
Y=y';
B=inv(X'*X)*X'*Y; %%计算回归系数
f=B(1)+B(2)*x; %%建立模型:一元线性模型
plot(x,f);
hold off
%%计算用于检验模型的各统计量
R2=(abs(B'*X'*Y)-n*mean(y)^2)/(abs(Y'*Y)-n*mean(y)^2); %%计算拟合优度
s=sqrt((Y'*Y-B'*X'*Y)/(n-m-1)); %%计算标准误差
v=s/mean(y); %%计算变异系数
F=(abs(B'*X'*Y)-n*mean(y)^2)/(m*s^2); %%计算F统计量
p=inv(X'*X); %%求逆
t1=B(1)/(sqrt(p(1,1))*s); %%计算截距的t统计量
t2=B(2)/(sqrt(p(2,2))*s); %%计算斜率的t统计量
e=y-f; %%计算残差
i=1:n-1; %%残差编号
DW=sumsqr(e(i+1)-e(i))/sumsqr(e); %%计算Durbin-Watson统计量
B,R2,s,v,F,t1,t2,DW %%给出参数和统计量的计算值
3.绘制残差变化区间图
%最大积雪深度与灌溉面积之间的关系%
%绘制散点图
x=[15.2,10.4,21.2,18.6,26.4,23.4,13.5,16.7,24,19.1]; %%最大积雪深度
y=[28.6,19.3,40.5,35.6,48.9,45.0,29.2,34.1,46.7,37.4]; %%灌溉面积
plot(x,y,'or'); %%绘制散点图
xlabel('最大积雪深度x'); %%添加x轴标签
ylabel('灌溉面积y'); %%添加y轴标签
hold on %%保持图形
%%计算回归系数
[m,n]=size(x);
X=[ones(n,1),x'];
Y=y';
[B,Bint,E,Eint,Stats]=regress(Y,X); %%调用线性回归函数
x=sort(x); %%自变量重新排序
f=B(1)+B(2)*x; %%建模
plot(x,f); %%添加趋势线
hold off
s=Stats(4)^0.5; %%计算标准误差
DW=sum((E(2:10)-E(1:9)).^2)/sum(E.^2); %%计算DW统计量
figure(2);
rcoplot(E,Eint); %%绘制残差变化区间
B,Bint,E,Eint,Stats,s,DW %%输出部分计算结果
结果如下:
残差变化区间图:
4.总体的回归估计与预测分析
%最大积雪深度与灌溉面积之间的关系%
%绘制散点图
x=[15.2,10.4,21.2,18.6,26.4,23.4,13.5,16.7,24,19.1]; %%最大积雪深度
y=[28.6,19.3,40.5,35.6,48.9,45.0,29.2,34.1,46.7,37.4]; %%灌溉面积
plot(x,y,'or'); %%绘制散点图
xlabel('最大积雪深度x'); %%添加x轴标签
ylabel('灌溉面积y'); %%添加y轴标签
lsline %%添加趋势线
hold on %%保持图形
%%计算回归系数
a=0.01; %%拟定显著性水平
x=sort(x); %%自变量重新排序
Sxx=sumsqr(x-mean(x)); %%计算自变量的离差平方和
%%计算预测值置信度
gamma=sqrt(finv(1-a,m,n-m-1)*(1/n+(x-mean(x)).^2)/Sxx)*Stats(4);
upper=f+gamma; %%置信预测值的上限
lower=f-gamma; %%置信预测值的下限
plot(x,upper,'g'); %%将上限添加到图形中
hold on
plot(x,lower,'g'); %%将下限添加到图形中
hold off %%绘图结束