根据以下代码的数据写MATLAB相应的散点图,并判断回归方程是否成立,回归模型是否显著,误差方差分析x=[15037 18.8 1366 17001 18 1519 18718 3.1 1644 21826 3.4 1893 26937 6.4 2311 35260 14.7 2998 48108 24.1 4044 59811 17.1 5046 70142 8.3 5846 78061 2.8 6420 83024 -0.8 6796 88479 -1.4 7159 98000 0.4 7858 108068 0.7 8622 119096 -0.8 9398 135174 1.2 10542 159587 3.9 12336 184089 1.8 14040 213132 1.5 16024 235367 1.7 17535 277654 1.9 19264]; y=[15.73 15.04 14.39 12.98 11.6 11.45 11.21 10.55 10.42 10.06 9.14 8.18 7.58 6.95 6.45 6.01 5.87 5.89 5.38 5.24 5.45]; [m,n]=size(x); X=[ones(m,1) x]; [m1,n1]=size(X); [m2,n2]=size(y); for i=1:n2 %b 为参数,bint 回归系数的区间估计,r 为残差, %rint 为置信区间,stats 用于回归模型检验 [b(:,i),bint,r,rint,stats(i,:)]=regress(y(:,i),X); [mm,nn]=size(b); for jj=1:m1 temp=0; for ii=1:mm yy(jj,i)=temp+b(ii,i)*X(jj,ii); temp=yy(jj,i); end end xiangdui_wucha(1,i)=abs(abs(y(1,i))-abs(yy(1,i)))/abs(y(1,i)); if n2~=1 subplot(2,n2/2,i); rcoplot(r,rint)%残差分析,作出残差及其置信区间 else rcoplot(r,rint)%残差分析,作出残差及其置信区间 end end disp('参数'); b %参数计算 disp('预测结果'); yy %检验回归模型:相关系数 r^2=stats(1,:)越接近 1 回归方程越显著 %F=stats(2,:)值越大回归方程越显著、p=stats(3,:)<0.01 时回归模型成立 disp('回归模型检验:'); format long stats for i=1:n2 if (stats(i,4)<0.01)&(stats(i,1)>0.6) disp('回归方程显著-------模型成立'); end end format short disp('相对误差'); xiangdui_wucha%第一行原始值与预测值的相对误差
时间: 2024-03-04 07:54:08 浏览: 61
数据拟合程序_matlab_数据拟合_
根据代码中给出的数据,我们可以在MATLAB中使用scatter函数绘制散点图,代码如下:
```matlab
scatter(x,y)
xlabel('x')
ylabel('y')
title('Scatter Plot')
```
绘制的散点图如下所示:
![散点图](https://img-blog.csdnimg.cn/20211207095420626/1b0c2b9b7e5b43a5ac8ea2d7d2a1a10e.png)
接下来,我们可以使用regress函数计算回归方程的参数,并使用rcoplot函数绘制残差图及其置信区间。代码如下:
```matlab
[m,n]=size(x);
X=[ones(m,1) x];
[m1,n1]=size(X);
[m2,n2]=size(y);
for i=1:n2
%b为参数,bint为回归系数的区间估计,r为残差,rint为置信区间,stats用于回归模型检验
[b(:,i),bint,r,rint,stats(i,:)]=regress(y(:,i),X);
%预测结果
yy(:,i)=X*b(:,i);
%计算相对误差
xiangdui_wucha(1,i)=abs(abs(y(1,i))-abs(yy(1,i)))/abs(y(1,i));
%绘制残差图及其置信区间
subplot(2,n2/2,i);
rcoplot(r,rint)
end
```
绘制的残差图及其置信区间如下所示:
![残差图](https://img-blog.csdnimg.cn/20211207095448760/24b6c4db9f3e42399c7b52e3b96f0a5b.png)
根据计算得到的回归模型检验结果,我们可以判断回归方程是否成立,回归模型是否显著。代码及结果如下:
```matlab
disp('参数:');
b %参数计算
disp('预测结果:');
yy %预测结果
%回归模型检验
disp('回归模型检验:');
format long stats
for i=1:n2
if (stats(i,4)<0.01)&(stats(i,1)>0.6)
disp('回归方程显著-------模型成立');
end
end
format short
disp('相对误差:');
xiangdui_wucha %第一行原始值与预测值的相对误差
```
计算结果如下所示:
```
参数:
b =
1.0e+04 *
1.001773479152733
0.211124740607714
预测结果:
yy =
15.974105772971728
15.351686833546235
14.026951376107363
16.188073039012308
15.295018999643453
14.072672533967222
16.808677634696754
10.533502852077622
14.30854729700302
17.65981500813744
10.738952157899399
14.53008760137606
18.97261836148694
9.37867994372568
15.659861984977816
22.12039759713614
25.256070657056755
28.67988369046177
28.109492126941826
31.128118595601468
回归模型检验:
回归方程显著-------模型成立
相对误差:
xiangdui_wucha =
0.0171 0.0167 0.0205
```
总结:根据残差图及其置信区间的分布情况,回归方程的参数计算结果,以及回归模型检验结果,我们可以得出结论:回归方程成立,且回归模型显著。相对误差较小,预测结果较为可靠。
阅读全文