实验目的
(1)熟练掌握多元线性回归的Matlab命令;计算残差平方和与决定系数. (2)掌握残差分析方法,通过删除异常点改进模型.
(3)通过回归模型的参数对实际问题给出合理的解释.
设Y是一个可观测的随机变量,如果其取值受到P 个非随机变量和随机误差的影响,且有
其中 是未知参数;.则称该模型为多元线性回归模型,而称为自变量(解释变量),为因变量(内生变量、被解释变量).
实验内容
1.多元线性回归模型的Matlab实现
Matlab中实现多元线性回归的命令如下:
[b,bint,r,rint,s]=regress(y,X,alpha)
输入: y—因变量(列向量), X—1与自变量组成的矩阵,Alpha——显著性水平(缺省时设定为0.05)
输出:b :回归方程的系数,bint: b的置信区间,r:残差(列向量),rint: r的置信区间
s: 4个统计量:决定系数,F值, F(1,n-2)分布大于F值的概率p,p<时,回归模型有效,以及均方差sum(r.^2)/(n-k-1),此外,Matlab中还有一个做出残差与残差置信区间图形的命令,如果有异常值,则该点变成红.
rcoplot(r,rint)
通常,进行多元线性回归的步骤如下:
(1)做自变量与因变量的散点图,根据散点图的形状决定是否可以进行线性回归;
(2)输入自变量与因变量;
(3)利用命令:
[b,bint,r,rint,s]=regress(y,X,alpha),rcoplot(r,rint)
得到回归模型的系数以及异常点的情况;如果原始数据含有异常点,则应删除异常点或者引入虚拟变量加以改进模型;
首先进行残差的正态性检验:jbtest,ttest
其次进行残差的异方差检验(通常利用戈德菲尔德一匡特(Goldfeld—Quandt)检验),
如果存在异方差,则应对模型进行调整;
最后对模型的残差进行自相关性的DW检验,如果存在自相关,则通过广义差分变换消除
自相关性;
(5)对模型的结果给出合理的解释
戈德菲尔德检验,简称为G—Q检验.为了检验异方差性,将样本按解释变量排序后分成两部分,再利用样本1和样本2分别建立回归模型,并求出各自的残差平方和RSSl和RSS2。如果误差项的离散程度相同(即为同方差的),则RSSl和RSS2的值应该大致相同;若两者之间存在显著差异,则表明存在异方差. 检验过程中为了“夸大”残差的差异性,一般先在样本中部去掉C个数据(通常取c=n/4),再利用F统计量判断差异的显著性:
其中,n为样本容量,k为自变量个数.
然后对残差进行自相关性的检验,通常我们利用DW检验进行残差序列自相关性的检验。该检验的统计量为:
其中为残差序列,对于计算出的结果通过查表决定是否存在自相关性。
若 ,则不存在自相关性;
若 ,则存在一阶正相关;,则存在一阶负相关;
若 ,或 ,则无法判断是否存在自相关。
【例4.4】根据下面的数据建立血压与年龄、体重指数、吸烟习惯之间的回归模型 表4.5 血压与年龄、体重指数、吸烟习惯数据
序号 | 血压 | 年龄 | 体重指数 | 吸烟习惯 |
1 | 144.0000 | 39.0000 | 24.2000 | 0 |
2 | 215.0000 | 47.0000 | 31.1000 | 1.0000 污水综合排放标准 |
3 | 138.0000 | 45.0000 | 22.6000 | 0 |
4 | 145.0000 | 47.0000 | 24.0000 | 1.0000 |
5 | 162.0000选矿学 | 65.0000 | 25.9000 | 1.0000 |
6 | 142.0000 | 46.0000 | 25.1000 | 0 |
7 | 170.0000 | 67.0000 | 29.5000 | 1.0000 |
8 | 124.0000 | 42.0000 | 19.7000 | 0 |
9 | 158.0000 | 67.0000 | 27.2000 | 1.0000 |
10 | 154.0000 | 56.0000 | 19.3000 | 0 |
11 | 162.0000 | 64.0000 | 28.0000 | 1.0000 |
12 | 150.0000 | 56.0000 | 25.8000 | 0 |
13 | 140.0000 | 59.0000 | 27.3000 | 0 |
14 | 110.0000 | 34.0000 | 20.1000 | 0 |
15 | 128.0000 | 42.0000 | 21.7000 | 防攻击空间0 |
16 | 130.0000 | 48.0000 | 22.2000 | 1.0000 |
17 | 135.0000 | 45.0000 | 27.4000 | 0 |
18 | 114.0000 | 18.0000 | 18.8000 | 0 |
19 | 116.0000 | 20.0000 | 22.6000 | 0 |
| | | | |
20 | 124.0000 | 19.0000 | 21.5000 | 0 |
21 | 136.0000 | 36.0000 | 25.0000 | 0 |
22 | 142.0000 | 50.0000 | 26.2000 | 1.0000 |
23 | 120.0000 | 39.0000 | 23.5000 | 0 |
24 | 120.0000 | 21.0000 | 20.3000 | 0 |
25 | 160.0000 | 44.0000 等位基因频率 | 27.1000 | 1.0000 |
26 | 158.0000 | 53.0000 | 28.6000 | 1.0000 |
27 | 144.0000 | 63.0000 | 28.3000 | 0 |
28 | 130.0000 | 29.0000 | 22.0000 | 1.0000 |
29 | 125.0000 | 25.0000 | 25.3000 | 0 |
30 | 175.0000 | 69.0000 | 27.4000 | 1.0000 |
| | | | |
注:吸烟习惯0表示不吸烟,1表示吸烟;体重指数 = 体重(kg)/身高(m)的平方
题目分析:为了确定血压与上述三个指标之间存在何种关系,我们首先做出血压与年龄,血压与体重指数之间的散点图如下:
图4.5血压与体重指数的散点图 图4.6血压与年龄的散点图
从图中可以看出以下几点:(1)随着年龄的增长血压有增高的趋势,随着体重指数的增长血压也有增高的趋势;(2)总体上看血压与年龄、血压与体重指数存在一定的线性相关性,所以我们建立多元线性回归模型:
回归系数由数据估计, 是随机误差 .
利用Matlab软件,我们得到如下结果:
表4.6 回归模型的系数、系数置信区间与统计量
回归系数 | 回归系数估计值 | 回归系数置信区间 |
0 | 45.3636 | [3.5537 87.1736] |
1 | 0.3604 | [-0.0758 0.7965 ] |
2 | 3.0906 | [1.0530 5.1281] |
3 | 11.8246 | [-0.1482 23.7973] |
R2= 0.6855 F= 18.8906 p<0.0001 s2 =169.7917 |
| | |
从表4.6可以发现:的置信区间包含零点,模型需要改进,为此我们做出残差与残差置信区间的图形.
图4.7残差与残差置信区间的图形
此时可见第二与第十二个点是异常点,于是删除上述两点,再次进行回归得到
表4.7 改进后的回归模型的系数、系数置信区间与统计量
回归系数 | 回归系数估计值 | 回归系数置信区间 |
0 | 58.5101 | [29.9064 87.1138] |
1 | 0.4303 | [0.1273 0.7332] |
2 | 2.3449 | [0.8509 3.8389] | 睡美人之宅
3 | 10.3065 | [3.3878 17.2253] |
R2= 0.8462 F= 44.0087 p<0.0001 s2 =53.6604 |
| | |
这时置信区间不包含零点,F统计量增大,可决系数从0.6855增大到0.8462 ,我们得到回归模型为:
下面我们对模型进行检验:
(1)残差的正态检验:
由jbtest检验,h=0表明残差服从正态分布,进而由t检验可知h=0,p=1,故残差服从均值为零的正态分布;
(2)残差的异方差检验:
我们将28个数据从小到大排列,去掉中间的6个数据,得到F统计量的观测值为:f =1.9092,
由3.79,可知:f =1.9092<3.79,故不存在异方差.
(3)残差的自相关性检验:
通过计算得到:dw = 1.4330,查表后得到:dl=0.97 , du=1.41,
由于 1.41==2.59 可知残差不存在自相关性.
计算程序:
n=30;m=3;
y=[144 215 138 145 162 142 170 124 158 154 162 150 140 110 128 130 135 114 116 124 136 142 120 120 160 158 144 130 125 175];
杨武事件x1=[39 47 45 47 65 46 67 42 67 56 64 56 59 34 42 48 45 18 20 19 36 50 39 21 44 53 63 29 25 69];
x2=[24.2 31.1 22.6 24.0 25.9 25.1 29.5 19.7 27.2 19.3 28.0 25.8 27.3 20.1 21.7 22.2 27.4 18.8 22.6 21.5 25.0 26.2 23.5 20.3 27.1 28.6 28.3 22.0 25.3 27.4];