马千里 970669 热动71
实验十一 回归分析
实验目的
1. 了解回归分析的基本原理,掌握MATLAB的实现方法; 2. 练习用回归分析方法解决实际问题。 实验内容 1) 用切削机床加工时,为实时的调整机床需测定刀具的磨损速度,现每隔一小时测量刀具的厚度得到以下数据,试建立刀具厚度关于切削时间的回归模型,对模型和回归系数进行检验,预测15小时后刀具的厚度。
0 1 2 3 4 5 6 7 8 9 10 时间(h) 刀具厚度(cm) 30.6 29.1 28.4 28.1 28.0 27.7 27.5 27.2 27.0 26.8 26.5 解:在MATLAB工作区下输入 x=[0 1 2 3 4 5 6 7 8 9 10];
y=[30.6 29.1 28.4 28.1 28.0 27.7 27.5 27.2 27.0 26.8 26.5]; 用plot(x,y,’+’)作图
31
30.5
30
29.5
29
28.5 28 27.5 27 26.5012345678910
看到x与y基本上是线性关系
X=[ones(11,1) x’]; Y=y’
[b,bint,r,rint,stats]=regress(Y,X) b,bint,stats,rcoplot(r,rint) b =
29.5455 -0.3291 bint =
28.9769 30.1140 -0.4252 -0.2330 stats =
0.8696 60.0018 0.0000
马千里 970669 热动71
Residual Case Order Plot 1
0.5 0 -0.5
-1 12345678Case Number
第一个点是异常点,剔除以后 X=X(2:11,: ); Y=Y(2:11);
[b,bint,r,rint,stats]=regress(Y,X); b,bint,stats,rcoplot(r,rint) b =
29.0533 -0.2588 bint =
28.8334 29.2732 -0.2942 -0.2233 stats =
0.9726 283.5599 0.0000 Residual Case Order Plot
0.3
0.2
0.1
0
-0.1 -0.2 -0.3
-0.4
12345678910Case Number
发现原先的第二个点(现在是第一个)仍异常,继续剔除.
ResidualsResiduals91011马千里 970669 热动71
X=X(2:10,: ); Y=Y(2:10);
[b,bint,r,rint,stats]=regress(Y,X); b,bint,stats,rcoplot(r,rint) b =
28.8667 -0.2333 bint =
28.7796 28.9537 -0.2467 -0.2200 stats =
1.0e+003 *
0.0010 1.7150 0.0000 Residual Case Order Plot
0.1
0.05
0 -0.05 -0.1
123456789
Case Number
看到所有点的残差都正常取此次回归的系数。
拟合的公式为y=28.8667-0.2333*x y是刀具厚度 x是切削时间 预测15小时以后的厚度y(15)= 25.3672
3)得到某商品的需求量与消费者的平均收入\\商品价格的统计数据如下,建立回归模型并进行检验,预测平均收入为1000\\价格为6时的商品需求量.
100 75 80 70 50 65 90 100 110 60 需求量 1000 600 1200 500 300 400 1300 1100 1300 300 收入 5 7 6 6 8 7 5 4 3 9 价格 解:在MATLAB工作区输入原始数据: x1=[1000 600 1200 500 300 400 1300 1100 1300 300]; x2=[5 7 6 6 8 7 5 4 3 9];
y=[100 75 80 70 50 65 90 100 110 60]’; x=[x1’ x2’];
首先用线性模型分析 rstool(x,y)
得到以下图形:
Residuals马千里 970669 热动71
beta = 111.6918 0.0143 -7.1882 rmse = 7.2133
再用纯二次模型
beta = 110.5313 0.1464 -26.5709 -0.0001 1.8475 rmse = 4.5362
可见纯二次模型比线性模型有所改进;
再尝试交叉型
beta = 96.9975 0.0304 -5.0692 -0.0026 rmse = 7.5862