数学实验回归分析.docx
- 文档编号:26941216
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:24
- 大小:659.79KB
数学实验回归分析.docx
《数学实验回归分析.docx》由会员分享,可在线阅读,更多相关《数学实验回归分析.docx(24页珍藏版)》请在冰豆网上搜索。
数学实验回归分析
数学实验报告
学 院:
班 级:
学 号:
姓 名:
完成日期:
2016年6月24日
回归分析
题目
(一)
一.实验目的
1.了解回归分析的基本原理,掌握MATLAB实现的方法.
2.练习用回归分析解决实际问题。
二.问题描述
社会学家认为犯罪与收入低、失业及人口规模有关,对20个城市的犯罪率y(每10万人中犯罪的人数)与年收入低于5000美元家庭的百分比x1、失业率x2和人口总数x3(千人)进行了调查,结果如表11-16所示。
表11-16
(1)若x1~x3中至多只许选择2个变量,最好的模型是什么?
(2)包含3个自变量的模型比上面的模型好吗?
确定最终模型。
(3)对最终模型观察残差,有无异常点,若有,剔除后如何。
三.实验过程
先做y和xi的散点图,来大致判断自变量和因变量的关系。
Matlab实现:
首先在matlab中输入以下内容
y=[11.213.440.75.324.812.720.935.78.79.614.526.915.736.218.128.914.925.821.725.7];
x1=[16.520.526.316.519.216.520.221.317.214.318.123.119.124.718.624.917.922.420.216.9];
x2=[6.26.49.35.37.35.96.47.64.96.46.07.45.88.66.58.46.78.68.46.7];
x3=[587643635692124864319641531713749789576227937416258547169215953353];
plot(x1,y,'+');pause;
plot(x2,y,'+');pause;
plot(x3,y,'+');pause;
运行结果如下:
y与各个因素的散点图
犯罪率与低收入家庭百分比的散点图
犯罪率与失业率的散点图
犯罪率与人口总数的散点图
由散点图可知y与x1,x2大致为线性关系,而y与x3的关系关系较为复杂,因此,选择x1,x2,并让它们与y做二元线性回归分析。
Matlab代码如下:
n=20;
m=2;
X=[ones(n,1),x1',x2'];
[b,bint,r,rint,s]=regress(y',X);
b,bint,s
结果如下表所示:
回归系数
回归系数估计值
回归系数置信区间
β0
-33.8358
[-48.0681-19.6035]
β1
1.2240
[0.01092.4371]
β2
4.3615
[1.11977.6033]
R2=0.8000F=34.0024P<0.0001S2=21.8247
置信区间没有包含0,R较大,p很小。
因此,模型可以是:
y=-34.0725+1.2239X1+4.3989X2
(2)将三个变量均包含进去Matlab代码如下:
n=20;
m=3;
X=[ones(n,1),x1',x2',x3'];
[b,bint,r,rint,s]=regress(y',X);
b,bint,s
结果如下表所示:
回归系数
回归系数估计值
回归系数置信区间
β0
-36.5104
[-51.4209-21.5998]
β1
1.1908
[-0.01502.3965]
β2
4.6840
[1.41497.9532]
β3
0.0008
[-0.00060.0021]
R2=0.8163F=23.6946P<0.0001S2=21.3036
如上表所示,虽然R2等量变化不大,但是β3的置信区间包含了0点,而且β1的置信区间距离0点也比较近。
另外,从散点图来分析,y与x3的线性关系也不佳。
因此,最终模型是y与x1,x2建立起来的模型。
(3)先观察观察模型残差Matlab代码如下:
n=20;
m=2;
X=[ones(n,1),x1',x2'];
[b,bint,r,rint,s]=regress(y',X);
b,bint,s
rcoplot(r,rint)
结果是:
如图所示,应该剔除第8组和第20组数据。
在执行如下Matlab代码:
y=[11.213.440.75.324.812.720.98.79.614.526.915.736.218.128.914.925.821.7];
x1=[16.520.526.316.519.216.520.217.214.318.123.119.124.718.624.917.922.420.2];
x2=[6.26.49.35.37.35.96.44.96.46.07.45.88.66.58.46.78.68.4];
x3=[5876436356921248643196471374978957622793741625854716921595];
n=18;
m=2;
X=[ones(n,1),x1',x2'];
[b,bint,r,rint,s]=regress(y',X);
b,bint,s
rcoplot(r,rint)
stepwise(x,y')%进行逐步回归
pause;
n=18;
X=[ones(n,1)x1'x2'];%由前面的逐步回归可以得到包含2个变量x1,x2时s最小[b,bi,r,ri,s]=regress(y',x);
s2=sum(r.^2)/(n-3);
b,bi,s,s2rcoplot(r,ri)%残差分析
剔除之后结果如下:
回归系数
回归系数估计值
回归系数置信区间
β0
-35.5229
[-45.1435-25.9023]
β1
1.6040
[0.76612.4418]
β2
3.3581
[1.15905.5572]
R2=0.9111F=76.9102P<0.0001S2=9.3423
同未剔除异常点前相比,β估计值改变不大,但是置信区间变短,R2和F值提高,S2值变小。
而且残差中没有异常点出现。
因此可认为,剔除之后模型变得更精确。
最终模型可以是:
y=-35.5229+1.6040x1+3.3581x2
四.实验总结
从最终的结果来看,影响犯罪率的因素是失业率与低收入。
本题训练了逐步回归命令stepwise来分析多自变量情况下的变量选择问题。
而且得到最优的模型还不够,还要分析残差,剔除不符的数据之后再次计算才能得到最终的模型。
题目
(二)
一.实验目的
1.了解回归分析的基本原理,掌握MATLAB实现的方法;
2.练习用回归分析解决实际问题。
二.问题描述
汽车销售商认为汽车销售量与汽油价格、贷款利率有关,两种类型汽车(普通型和豪华型)18个月的调查资料如表,其中
是普通型汽车售量(千辆),
是豪华型汽车售量(千辆),
是汽油价格(元/gal),
是贷款利率(%)
(1)对普通型和豪华型汽车分别建立如下模型:
给出
的估计值和置信区间,决定系数
值及剩余方差等。
(2)用
表示汽车类型,建立统一模型
,给出给出
的估计值和置信区间,决定系数
值及剩余方差等。
以
带入统一模型,将结果与
(1)的两个模型的结果比较,解释二者的区别。
(3)对统一模型就每种类型汽车分别作
和
与残差的散点图,有什么现象,说明模型有何缺陷?
(4)对统一模型增加二次项和交互相,考察结果有什么改进。
序号
y1
y2
x1
x2
序号
y1
y2
x1
x2
1
22.1
7.2
1.89
6.1
10
18.9
7.0
1.74
6.9
2
15.4
5.4
1.94
6.2
11
19.3
6.8
1.70
5.2
3
11.7
7.6
1.95
6.3
12
30.1
10.1
1.70
4.9
4
10.3
2.5
1.82
8.2
13
28.2
9.4
1.68
4.3
5
11.4
2.4
1.85
9.8
14
25.6
7.9
1.60
3.7
6
7.5
1.7
1.78
10.3
15
37.5
14.1
16.4
3.6
7
13.0
4.3
1.76
10.5
16
36.1
14.5
1.64
3.1
8
12.8
3.7
1.76
8.7
17
39.8
14.9
1.67
1.8
9
14.6
3.9
1.75
7.4
18
44.3
15.6
1.68
2.3
三.实验过程
由题意,对普通型和豪华型汽车分别建立如下模型:
此为二元线性回归,可用matlab编写程序如下:
y1=[22.1,15.4,11.7,10.3,11.4,7.5,13.0,12.8,14.6,18.9,19.3,30.1,28.2,25.6,37.5,36.1,39.8,44.3];
y2=[7.2,5.4,7.6,2.5,2.4,1.7,4.3,3.7,3.9,7.0,6.8,10.1,9.4,7.9,14.1,14.5,14.9,15.6];
x1=[1.89,1.94,1.95,1.82,1.85,1.78,1.76,1.76,1.75,1.74,1.70,1.70,1.68,1.60,1.61,1.64,1.67,1.68];
x2=[6.1,6.2,6.3,8.2,9.8,10.3,10.5,8.7,7.4,6.9,5.2,4.9,4.3,3.7,3.6,3.1,1.8,2.3];
n=18;m=2;
X=[ones(n,1),x1',x2'];
[b1,bint1,r1,rint1,s1]=regress(y1',X);
[b2,bint2,r2,rint2,s2]=regress(y2',X);
subplot(2,1,1)
rcoplot(r1,rint1)
subplot(2,1,2)
rcoplot(r2,rint2)
得到如下图:
在残差及置信区间的图中,有三个点的残差的置信区间不包含零点,以红色标出。
残差应该服从均值为0的正态分布,可以认为这个数据是异常的,偏离了数据整体的变化趋势,给模型的有效性的精度带来不利影响,应予以剔除。
剔除点后的模型求解
(1)对于
剔除第14、18个点后,输入代码如下:
y1=[22.1,15.4,11.7,10.3,11.4,7.5,13.0,12.8,14.6,18.9,19.3,30.1,28.2,37.5,36.1,39.8];
x1=[1.89,1.94,1.95,1.82,1.85,1.78,1.76,1.76,1.75,1.74,1.70,1.70,1.68,1.61,1.64,1.67];
x2=[6.1,6.2,6.3,8.2,9.8,10.3,10.5,8.7,7.4,6.9,5.2,4.9,4.3,3.6,3.1,1.8];
n=16;m=2;
X=[ones(n,1),x1',x2'];
[b1,bint1,r1,rint1,s1]=regress(y1',X);
subplot(2,1,1)
rcoplot(r1,rint1)
继续自此基础上剔除第11个点,输入代码如下:
y1=[22.1,15.4,11.7,10.3,11.4,7.5,13.0,12.8,14.6,18.9,30.1,28.2,37.5,36.1,39.8];
x1=[1.89,1.94,1.95,1.82,1.85,1.78,1.76,1.76,1.75,1.74,1.70,1.68,1.61,1.64,1.67];
x2=[6.1,6.2,6.3,8.2,9.8,10.3,10.5,8.7,7.4,6.9,4.9,4.3,3.6,3.1,1.8];
n=15;m=2;
X=[ones(n,1),x1',x2'];
[b1,bint1,r1,rint1,s1]=regress(y1',X);
subplot(2,1,1)
rcoplot(r1,rint1)
(2)对于
,剔除第14个点后
继续剔除第七个点,得到残差及置信区间图如下:
将输出结果汇总成下表:
普通型
回归系数
回归系数估值
回归系数置信区间
107.5601
[75.3160139.8042]
-37.9283
[-57.2842-18.5723]
-3.0314
[-3.7862-2.2767]
R2=0.9334F=84.0758p<0.0001s2=9.2746
豪华型
回归系数
回归系数估值
回归系数置信区间
29.7583
[16.286443.2303]
-6.7738
[-14.97741.4299]
-1.6367
[-1.9680-1.3054]
R2=0.9450F=103.1152p<0.0001s2=1.5413
可得模型如下:
普通型:
y=107.5601-37.9283x1-3.0314x2
豪华型:
y=29.7583-6.7738x1-1.6367x2
现建立统一模型
,用
表示普通型,
表示豪华型,此时为三元线性回归,可用matlab编写程序如下:
y=[22.1,15.4,11.7,10.3,11.4,7.5,13.0,12.8,14.6,18.9,19.3,30.1,28.2,25.6,37.5,36.1,39.8,44.3,7.2,5.4,7.6,2.5,2.4,1.7,4.3,3.7,3.9,7.0,6.8,10.1,9.4,7.9,14.1,14.5,14.9,15.6];
x1=[1.89,1.94,1.95,1.82,1.85,1.78,1.76,1.76,1.75,1.74,1.70,1.70,1.68,1.60,1.61,1.64,1.67,1.68,1.89,1.94,1.95,1.82,1.85,1.78,1.76,1.76,1.75,1.74,1.70,1.70,1.68,1.60,1.61,1.64,1.67,1.68];
x2=[6.1,6.2,6.3,8.2,9.8,10.3,10.5,8.7,7.4,6.9,5.2,4.9,4.3,3.7,3.6,3.1,1.8,2.3,6.1,6.2,6.3,8.2,9.8,10.3,10.5,8.7,7.4,6.9,5.2,4.9,4.3,3.7,3.6,3.1,1.8,2.3];
x3=[zeros(1,18),ones(1,18)];
n=36;
m=3;
X=[ones(n,1),x1',x2',x3'];
[b,bint,r,rint,s]=regress(y',X);
b,bint,s
rcoplot(r,rint)
输出如下结果:
b=
64.5753
-16.1436
-2.3322
-14.4222
bint=
33.500795.6499
-35.11932.8320
-3.0705-1.5939
-17.6546-11.1898
s=
0.836654.61110.000022.6642
回归系数
回归系数估值
回归系数置信区间
64.5753
[33.500795.6499]
-16.1436
[-35.11932.8320]
-2.3322
[-3.0705-1.5939]
-14.4222
[-17.6546-11.1898]
可得模型为:
,
表示普通型,
表示豪华型。
即:
普通型:
豪华型:
可以看出:
统一模型相当于将分立模型进行了统一:
(1)统一模型的β值趋近于给分立模型的“平均”;
(2)统一模型的残差较大;
(3)统一模型的决定系数较小;
(4)统一模型的拒绝概率较小,到达了10的-12次方量级,说明模型更加有效;
总体上讲,将两者统一后进行回归分析的结果有其优点,但是仍有许多不理想的成分。
就每种类型汽车分别作x1和x2与残差的散点图
y=[22.1,15.4,11.7,10.3,11.4,7.5,13.0,12.8,14.6,18.9,19.3,30.1,28.2,25.6,37.5,36.1,39.8,44.3,7.2,5.4,7.6,2.5,2.4,1.7,4.3,3.7,3.9,7.0,6.8,10.1,9.4,7.9,14.1,14.5,14.9,15.6];
x1=[1.89,1.94,1.95,1.82,1.85,1.78,1.76,1.76,1.75,1.74,1.70,1.70,1.68,1.60,1.61,1.64,1.67,1.68,1.89,1.94,1.95,1.82,1.85,1.78,1.76,1.76,1.75,1.74,1.70,1.70,1.68,1.60,1.61,1.64,1.67,1.68];
x2=[6.1,6.2,6.3,8.2,9.8,10.3,10.5,8.7,7.4,6.9,5.2,4.9,4.3,3.7,3.6,3.1,1.8,2.3,6.1,6.2,6.3,8.2,9.8,10.3,10.5,8.7,7.4,6.9,5.2,4.9,4.3,3.7,3.6,3.1,1.8,2.3];
x3=[zeros(1,18),ones(1,18)];
n=36;
m=3;
X=[ones(n,1),x1',x2',x3'];
[b,bint,r,rint,s]=regress(y',X);
x11=x1(:
1:
18);
x22=x2(:
1:
18);
r1=r(1:
18,:
);
r2=r(19:
36,:
);
subplot(2,2,1);
plot(x11,r1,'r+');
subplot(2,2,2);
plot(x22,r1,'r+');
subplot(2,2,3);
plot(x11,r2,'r+');
subplot(2,2,4);
plot(x22,r2,'r+');
得到如下图形
对比以上各图,发现针对同一变量(
或
),两种类型汽车所得的残差变化趋势不一致,说明
、
与
有交互作用,即模型的缺陷是缺少二次项和交互项。
对统一模型增加二次项和交互相进行回归
(1)增加交互项,改用模型:
进行回归分析
x1=[1.89,1.94,1.95,1.82,1.85,1.78,1.76,1.76,1.75,1.74,1.70,1.70,1.68,1.60,1.61,1.64,1.67,1.68];
x2=[6.1,6.2,6.3,8.2,9.8,10.3,10.5,8.7,7.4,6.9,5.2,4.9,4.3,3.7,3.6,3.1,1.8,2.3];
x3=[zeros(1,length(x1)),ones(1,length(x2))];
x1=[x1,x1];
x2=[x2,x2];
x1x2=x1.*x2;
x1x3=x1.*x3;
x2x3=x2.*x3;
x12=x1.*x1;
x22=x2.*x2;
y1=[22.1,15.4,11.7,10.3,11.4,7.5,13,12.8,14.6,18.9,19.3,30.1,28.2,25.6,37.5,36.1,39.8,44.3];
y2=[7.2,5.4,7.6,2.5,2.4,1.7,4.3,3.7,3.9,7.0,6.8,10.1,9.4,7.9,14.1,14.5,14.9,15.6];
X=[ones(length(x1),1),x1',x2',x3',x1x2',x2x3',x1x3'];
Y=[y1,y2];
[b,bint,r,rint,s]=regress(Y',X);
b,bint,s
得到如下结果:
b=
141.1004
-57.4368
-12.5875
-65.6343
5.3855
1.7923
23.0304
bint=
39.5625242.6383
-117.09702.2235
-30.29685.1218
-111.3383-19.9303
-4.795315.5663
0.70502.8796
-4.916650.9774
s=
0.920355.84740.000012.1906
发现R2、F和s2都有所改善,模型有效的概率也有所提高,但是x1,x2的置信区间都包含0,这应当是由于引入交互项x1x3和x2x3导致的。
(2)增加二次项
改用模型:
这里不增加x32是因为它和x3一样。
将程序改为
X=[ones(length(x1),1),x1',x2',x3',x12',x22'];
得到如下结果:
b=
-140.9671
217.3994
-6.0022
-14.4222
-62.6018
0.2625
bint=
-741.4504459.5163
-456.1560890.9548
-9.4626-2.5418
-17.5142-11.3302
-249.9892124.7856
0.00620.5187
s=
0.860637.02860.000020.6300
发现x1*x1的置信区间仍包含0点。
(3)综合
综合以上分析,建立如下模型:
将程序改为
X=[ones(length(x1),1),x1',x2',x3',x1x2',x2x3’,x22'];
输出结果如下:
b=
25.2153
17.5089
-0.3020
-28.2975
-4.2510
2.2850
0.3184
bint=
-88.5161138.9467
-51.935686.9533
-18.816118.2121
-33.8287-22.7662
-15.79907.2971
1.44873.1214
0.09560.5412
s=
0.932466.71850.000010.3384
拒绝模型的概率达到10的-15次方。
模型如下:
四.实验总结
本题是个线性回归题,在它的计算中出现了异常点。
剔除后计算可以得到一个回归效果相当好的模型,从中,可以学到回归分析相关知识,包括一元线性回归、多元线性回归以及非线性回归;了解了残差分析、交互作用等内容;学习了使用MATLAB进行回归分析的方法,很有收获。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 实验 回归 分析
![提示](https://static.bdocx.com/images/bang_tan.gif)