当前位置:文档之家› 【清华】2.0_实验12-回归分析

【清华】2.0_实验12-回归分析

实验12回归分析
化工系分7陈龙2007011832
『实验目的』
1.了解回归分析的基本原理,掌握MATLAB 实现的方法;
2.练习用回归分析解决实际问题。

『实验内容』
一、题目1:
用切削机床加工时,为实时地调整机床需测定刀具的磨损速度,每隔一小时测量刀具的厚度得到以下数据,建立刀具厚度对于切削时间的回归模型,对模型和回归系数进行检验,并预测7.5h 和15h 后的刀具厚度,用(30)和(31)式两种办法计算预测区间,解释计算结果。

时间/h 012345678910刀具厚度/cm 30.6
29.1
28.4
28.1
28.0
27.7
27.5
27.2
27.0
26.8
26.5
【模型建立】
设时间为i x ,对应的刀具厚度为i y ,作出y-x 散点图观察:x=0:10;
y=[30.629.128.428.128.027.727.527.227.026.826.5]';plot(x,y,'+')
可以观察出,y-x 是可以建立线性回归模型的。

设x y 10ββ+=,下面用MATLAB 计算回归系数。

【模型求解】X=[ones(11,1),x'];
[b,bint,r,rint,s]=regress(y,X,0.05);b,bint,s
rcoplot(r,rint)得到的结果为:b =29.5455
-0.3291
bint =28.976930.1140
-0.4252-0.2330s =0.869660.00180.0000
0.1985
观察到第一个数据的残差的置信区间不包含零点,是异常数据,应舍去。

x(1)=[];y(1)=[];
X=[ones(10,1),x'];
[b,bint,r,rint,s]=regress(y,X,0.05);b,bint,s
rcoplot(r,rint)得到的结果为:
b=29.0533
-0.2588
bint=28.833429.2732
-0.2942-0.2233
s=0.9726283.55990.00000.0195
可见剩下的第一个数据的残差的置信区间仍不包含零点,还是不满足要求,应再剔除。

x(1)=[];
y(1)=[];
X=[ones(9,1),x'];
[b,bint,r,rint,s]=regress(y,X,0.05);
b,bint,s
rcoplot(r,rint)
得到的结果为:
b=28.8667
-0.2333
bint=28.779628.9537
-0.2467-0.2200
s=0.995917150.00000.0019
可见去掉了前两个数据后,余下的9个数据没有异常情况,并且回归系数的置信区间小了,F 值大了,剩余方差小了,都对回归分析有利。

取第三次计算得到的b ,可以得到回归模型为x y 2333.08667.28-=。

下面作图检验该线性回归方程:
【模型应用】
用以上建立的模型,可以得到预测值:
1)当时间为7.5h 时,y(7.5)=28.8667-0.2333*7.5=27.1167;a1=tinv(1-0.05/2,7);x(1:2)=[];sxx=var(x)*8;
c1=a1*sqrt(s(4))*sqrt((7.5-mean(x))^2/sxx+1/9+1)
得到c1=0.1104,所以用(30)式算得的预测区间为[27.0063,27.2271];a2=norminv(0.975,0,1);c2=a2*s(4)
得到c2=0.0855,所以用(31)式算得的预测区间为[27.0311,27.2022]。

2)当时间为15h 时,y(15)=28.8667-0.2333*15=25.3667。

c3=a1*sqrt(s(4))*sqrt((15-mean(x))^2/sxx+1/9+1);
得到c3=0.1569,所以用(30)式算得的预测区间为[25.2098,25.5236];c4=c2=0.0855,所以用(31)式算得的预测区间为[25.2811,25.4522]。

【结果解释】
用(30)式与(31)式算的预测区间不大一样,后者是当n 较大且x0接近x 的平均值时的极限结果,因此不确定的范围会小一些,而前者则是在n 有限的情况下得到的,为了使结果准确,预测区间的范围就应该大一点。

----------------------------------------------------------------------------------------------------------------------
二、题目2:
电影院调查电视广告费用和报纸广告费用对每周收入的影响,得到下面的数据,建立回归模型并进行检验,诊断异常点的存在并进行处理。

每周收入9690959295959494电视广告费用 1.5 2.0 1.5 2.5 3.3 2.3 4.2 2.5报纸广告费用
5.0
2.0
4.0
2.5
3.0
3.5
2.5
3.0
【模型假设】
设电视广告费用为x1,报纸广告费用为x2,每周收入为y ,x1=[1.52.01.52.53.32.34.22.5]’x2=[5.02.04.02.53.03.52.53.0]’x=[x1,x2];
y=[9690959295959494]’;rstool(x,y,'linear',0.05)
在命令窗口中分别调整model ,依次对linear,purequadratic,interaction,quadratic 四种形式进行计算,比较剩余标准差,结果如下:
linear 0.6998,purequadratic 0.2497,interaction 0.4527,quadratic 0.1415。

因此对于全体数据,采用quadratic 模式,即包含线性项和完全二次项的形式是最佳的。

但是出于方便,先考虑剩余标准差最大的线性回归形式:22110x x y βββ++=。

之后再讨论
【模型求解】
X=[ones(8,1)x];
[b,bint,r,rint,s]=regress(y,X);
b,bint,s
rcoplot(r,rint)
结果如下:
b=83.2116
1.2985
2.3372
bint=78.805887.6174
0.4007 2.1962
1.4860 3.1883
s=0.908924.94080.00250.4897
很遗憾,第一组数据的残差区间未包含零点,舍弃该数据再做尝试。

x(1,:)=[];
y(1)=[];
X=[ones(7,1)x];
[b,bint,r,rint,s]=regress(y,X);
b,bint,s
rcoplot(r,rint)
b =81.4881
1.2877
2.9766
bint =78.787884.1883
0.7964 1.77902.3281 3.6250s =0.976884.38420.0005
0.1257
这样得到的残差区间均符合要求,因此可以采用线性模型
219766.22877.14181.81x x y ++=。

在去掉了第一组数据后,再用rstool 命令运算一遍,会发现linear,purequadratic,interaction,quadratic 四种形式依次输出的剩余标准差为0.3545,0.2648,0.1495,0.1600,于是最佳形式为interaction :21217369.05753.17137.03290.85x x x x y ++-=。

相关主题