数学实验回归分析
x2=[6.2 6.4 9.3 5.3 7.3 5.9 6.4 7.6 4.9 6.4 6.0 7.4 5.8 8.66.5 8.46.7 8.6 8.4 6.7];
x3=[587 643 635 692 1248 643 1964 1531 713 749 7895 762 2793741 625 854 716 921 595 3353];
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
表11-16
(1)若x1~x3中至多只许选择2个变量,最好的模型是什么?
(2)包含3个自变量的模型比上面的模型好吗?确定最终模型。
(3)对最终模型观察残差,有无异常点,若有,剔除后如何。
三.实验过程
先做y和xi的散点图,来大致判断自变量和因变量的关系。Matlab实现:首先在matlab中输入以下内容
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)
4.3615
[1.1197 7.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'];
rcoplot(r1,rint1)
(2)对于 ,剔除第14个点后
继续剔除第七个点,得到残差及置信区间图如下:
将输出结果汇总成下表:
普通型
回归系数
回归系数估值
回归系数置信区间
107.5601
[75.3160139.8042]
-37.9283
[-57.2842-18.5723]
-3.0314
[-3.7862-2.2767]
x3=[587 643 635 692 1248 643 1964 713 749 7895 762 2793 741 625 854 716 921 595 ];
n=18;
m=2;
X=[ones(n,1),x1',x2'];
[b,bint,r,rint,s]=regress(y',X);
b,bint,s
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)
(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];
[-0.0006 0.0021]
R2=0.8163F=23.6946P<0.0001S2=21.3036
如上表所示,虽然R2等量变化不大,但是β3的置信区间包含了0点,而且β1的置信区间距离0点也比较近。另外,从散点图来分析,y与x3的线性关系也不佳。因此,最终模型是y与x1,x2建立起来的模型。
(3)先观察观察模型残差Matlab代码如下:
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];
剔除之后结果如下:
回归系数
回归系数估计值
回归系数置信区间
β0
-35.5229
[-45.1435 -25.9023]
β1
1.6040
[0.7661 2.4418]
β2
3.3581
[1.1590 5.5572]
R2=0.9111F=76.9102P<0.0001S2=9.3423
同未剔除异常点前相比,β估计值改变不大,但是置信区间变短,R2和F值提高,S2值变小。而且残差中没有异常点出现。因此可认为,剔除之后模型变得更精确。最终模型可以是:y=-35.5229+1.6040x1+3.3581x2
四.实验总结
从最终的结果来看,影响犯罪率的因素是失业率与低收入。本题训练了逐步回归命令stepwise来分析多自变量情况下的变量选择问题。而且得到最优的模型还不够,还要分析残差,剔除不符的数据之后再次计算才能得到最终的模型。
题目(二)
一.实验目的
1.了解回归分析的基本原理,掌握MATLAB实现的方法;
数学实验报告
学 院:
班 级:
学 号:
姓 名:
完成日期:2016年6月24日
回归分析
题目(一)
一.实验目的
1.了解回归分析的基本原理,掌握MATLAB实现的方法.
2.练习用回归分析解决实际问题。
二.问题描述
社会学家认为犯罪与收入低、失业及人口规模有关,对20个城市的犯罪率y(每10万人中犯罪的人数)与年收入低于5000美元家庭的百分比x1、失业率x2和人口总数x3(千人)进行了调查,结果如表11-16所示。
2.练习用回归分析解决实际问题。
二.问题描述
汽车销售商认为汽车销售量与汽油价格、贷款利率有关,两种类型汽车(普通型和豪华型)18个月的调查资料如表,其中 是普通型汽车售量(千辆), 是豪华型汽车售量(千辆), 是汽油价格(元/gal), 是贷款利率(%)
(1)对普通型和豪华型汽车分别建立如下模型:
给出 的估计值和置信区间,决定系数 值及剩余方差等。
x1=[16.5 20.5 26.3 16.5 19.2 16.5 20.2 17.2 14.3 18.1 23.1 19.1 24.7 18.6 24.9 17.9 22.4 20.2 ];
x2=[6.2 6.4 9.3 5.3 7.3 5.9 6.4 4.9 6.4 6.0 7.4 5.8 8.6 6.5 8.4 6.7 8.6 8.4 ];
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);
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,s2 rcoplot(r,ri) %残差分析
subplot(2,1,1)
rcoplot(r1,rint1)
subplot(2,1,2)
rcoplot(r2,rint2)
得到如下图:
在残差及置信区间的图中,有三个点的残差的置信区间不包含零点,以红色标出。残差应该服从均值为0的正态分布,可以认为这个数据是异常的,偏离了数据整体的变化趋势,给模型的有效性的精度带来不利影响,应予以剔除。剔除点后的模型求解
[b,bint,r,rint,s]=regress(y',X);
b,bint,s
结果如下表所示:
回归系数
回归系数估计值
回归系数置信区间
β0
-36.5104
[-51.4209-21.5998]
β1
1.1908
[-0.0150 2.3965]
β2
4.6840
[1.4149 7.9532]
β3
0.0008
n=20;
m=2;
X=[ones(n,1),x1',x2'];
[b,bint,r,rint,s]=regress(y',X);