R与数据分析旧笔记(八)多重共线性

时间:2022-11-30 08:05:52

多重共线性(线性代数叫线性相关)

多重共线性(线性代数叫线性相关)


1.什么是多重共线性

2.多重共线性对回归模型的影响

3.利用计算特征根发现多重共线性

4.Kappa()函数


例题1

考虑一个有六个回归自变量的线性回归问题,原始数据列在下表中,这里共有12组数据,除第一组外,自变量R与数据分析旧笔记(八)多重共线性的其余11组数据满足线性关系

R与数据分析旧笔记(八)多重共线性

试用求矩阵条件数的方法,分析出自变量间存在多重共线性。

序号 R与数据分析旧笔记(八)多重共线性 R与数据分析旧笔记(八)多重共线性 R与数据分析旧笔记(八)多重共线性 R与数据分析旧笔记(八)多重共线性 R与数据分析旧笔记(八)多重共线性 R与数据分析旧笔记(八)多重共线性 R与数据分析旧笔记(八)多重共线性
1 10.006 8.000 1.000 1.000 1.000 0.541 -0.099
2 9.737 8.000 1.000 1.000 0.000 0.130 0.070
3 15.087 8.000 1.000 1.000 0.000 2.116 0.115
4 8.422 0.000 0.000 9.000 1.000 -2.397 0.252
5 8.625 0.000 0.000 9.000 1.000 -0.046 0.017
6 16.289 0.000 0.000 9.000 1.000 0.365 1.504
7 5.958 2.000 7.000 0.000 1.000 1.996 -0.865
8 9.313 2.000 7.000 0.000 1.000 0.228 -0.055
9 12.960 2.000 7.000 0.000 1.000 1.380 0.502
10 5.541 0.000 0.000 0.000 10.000 0.257 0.101
11 8.756 0.000 0.000 0.000 10.000 0.257 0.101
12 10.937 0.000 0.000 0.000 10.000 0.440 0.432

解:用数据框方法输入数据,由自变量R与数据分析旧笔记(八)多重共线性中心化和标准化得到的矩阵R与数据分析旧笔记(八)多重共线性本质上就由这些自变量生成的相关矩阵,再用kappa()函数求出矩阵R与数据分析旧笔记(八)多重共线性的条件数,用eigen()函数求出矩阵R与数据分析旧笔记(八)多重共线性的最小特征值和相应的特征向量,求解问题的R程序如下(程序名:exam0618.R)

> collinear<-data.frame(
+ Y=c(10.006, 9.737, 15.087, 8.422, 8.625, 16.289,
+ 5.958, 9.313, 12.960, 5.541, 8.756, 10.937),
+ X1=rep(c(8, 0, 2, 0), c(3, 3, 3, 3)),
+ X2=rep(c(1, 0, 7, 0), c(3, 3, 3, 3)),
+ X3=rep(c(1, 9, 0), c(3, 3, 6)),
+ X4=rep(c(1, 0, 1, 10), c(1, 2, 6, 3)),
+ X5=c(0.541, 0.130, 2.116, -2.397, -0.046, 0.365,
+ 1.996, 0.228, 1.38, -0.798, 0.257, 0.440),
+ X6=c(-0.099, 0.070, 0.115, 0.252, 0.017, 1.504,
+ -0.865, -0.055, 0.502, -0.399, 0.101, 0.432)
+ )
> XX<-cor(collinear[2:7])
> kappa(XX,exact=T)
[1] 2195.908

得到,条件数是R与数据分析旧笔记(八)多重共线性,认为有严重的多重共线性。

进一步,找出哪些变量是多重共线性的。计算矩阵的特征值和相应的特征向量

> eigen(XX)
$values
[1] 2.428787365 1.546152096 0.922077664 0.793984690 0.307892134 0.001106051

$vectors
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] -0.3907189 0.33968212 0.67980398 -0.07990398 0.2510370 -0.447679719
[2,] -0.4556030 0.05392140 -0.70012501 -0.05768633 0.3444655 -0.421140280
[3,] 0.4826405 0.45332584 -0.16077736 -0.19102517 -0.4536372 -0.541689124
[4,] 0.1876590 -0.73546592 0.13587323 0.27645223 -0.0152087 -0.573371872
[5,] -0.4977330 0.09713874 -0.03185053 0.56356440 -0.6512834 -0.006052127
[6,] 0.3519499 0.35476494 -0.04864335 0.74817535 0.4337463 -0.002166594

得到

R与数据分析旧笔记(八)多重共线性



R与数据分析旧笔记(八)多重共线性

由于R与数据分析旧笔记(八)多重共线性前的系数近似为0,因此,有

R与数据分析旧笔记(八)多重共线性

所以存在着R与数据分析旧笔记(八)多重共线性使得

R与数据分析旧笔记(八)多重共线性

这说明变量R与数据分析旧笔记(八)多重共线性存在多重共线性,与题目中给的变量是相同的。

注意:kappa()函数也可以求线性模型的条件数,但实际上是计算由计算自变量R与数据分析旧笔记(八)多重共线性构成矩阵的条件数,即

kappa(lm.model)=R与数据分析旧笔记(八)多重共线性