多重共线性的诊断(R语言)

多重共线性的诊断

1.方差扩大因子法

经验表明, V I F j 10 VIF_{j}\geq10 时,就说明自变量 x j x_{j} 与其余变量之间有严重的多重共线性,且这种多重共线性可能会过度地影响最小二乘估计值。

代码实现如下:

data3.3<-read.csv("C:/Users/Administrator/Desktop/data3.3.csv",head=TRUE)
lm3.3<-lm(y~x1+x2+x3+x4+x5,data3.3)
library(car)
vif(lm3.3)

输出结果为:
在这里插入图片描述
  从输出结果看到, x 1 , x 2 x1,x2 的方差扩大因子很大,远远超过10 ,说明这四个变量之间存在严重的多重共线性。
  一般情况下,当一个回归方程存在严重的多重共线性时,有若干个自变量所对应的方差扩大因子大于10,这个回归方程多重共线性的存在就是由方差扩大因子超过10 的这几个变量引起的,说明这几个自变量之间有一定的多重共线性的关系存在。知道了这一点,对于我们消除回归方程的多重共线性非常有用。

2.特征根判定法

通常认为条件数 k &lt; 100 k&lt;100 时,设计矩阵 X X 多重共线性的程度很小; 100 k 1000 100\leq k\leq 1000 时,设计矩阵 X X 存在较强的多重共线性; k &gt; 1000 k&gt;1000 时,存在严重的多重共线性。

代码实现如下:

data3.3<-read.csv("C:/Users/Administrator/Desktop/data3.3.csv",head=TRUE)
XX<-cor(data3.3[,2:6])
kappa(XX,exact=TRUE)

输出结果为:
在这里插入图片描述
  根据条件数大于1000,说明自变量之间存在严重的多重共线性。为找出哪些变量是多重共线性的,需要计算矩阵的特征值和相应的特征向量,在R命令窗口下面代码:

eigen(XX)

输出结果为:
在这里插入图片描述
  有结果知道相应的特征向量为
   φ = ( 3.99 , 0.93 , 0.07 , 0.01 , 0 ) T \varphi=(3.99,0.93,0.07,0.01,0)^{T}
 
 即 3.99 X 1 + 0.93 X 2 + 0.07 X 3 + 0.01 X 4 0 3.99X_{1}^{*}+0.93X_{2}^{*}+0.07X_{3}^{*}+0.01X_{4}^{*}\approx0 。由于 X 3 , X 4 , X 5 X_{3}^{*},X_{4}^{*},X_{5}^{*} 的系数几近于0,故 X 1 X_{1}^{*} X 2 X_{2}^{*} 之间存在着多种共线性。

猜你喜欢

转载自blog.csdn.net/qq_38204302/article/details/86594570
今日推荐