R语言 检验多重共线性的操作

函数kappa()

df<-data.frame()
df_cor=cor(df)
kappa(df_cor, exact=T) 

当 κ<100κ<100 , 说明共线性程度小;

当 100<κ<1000100<κ<1000 , 有较强的多重共线性;

当 κ>1000κ>1000,存在严重的多重共线性。

函数qr()

x<-matrix()
qr(x)$rank

qr(X)$rank 计算X矩阵的秩,如果不是满秩的,说明其中有xixi可以用其他xjxj的线性组合表示;此时可以进行逐步回归,用step()命令。

fm<-lm()
step(fm)

补充:多重共线性的产生原因、判别、检验、解决方法

最近做回归分析,出现了相关系数与回归方程系数符号相反的问题,经过研究,确认是多重共线性问题并探索了解决方法。

在此将多重共线性的相关知识整理如下。

解释变量理论上的高度相关与观测值高度相关没有必然关系,有可能两个解释变量理论上高度相关,但观测值未必高度相关,反之亦然。所以多重共线性本质上是数据问题。

造成多重共线性的原因有一下几种:

1、解释变量都享有共同的时间趋势;

2、一个解释变量是另一个的滞后,二者往往遵循一个趋势;

3、由于数据收集的基础不够宽,某些解释变量可能会一起变动;

4、某些解释变量间存在某种近似的线性关系;

判别:

1、发现系数估计值的符号不对;

2、某些重要的解释变量t值低,而R方不低

3、当一不太重要的解释变量被删除后,回归结果显著变化;

检验:

1、相关性分析,相关系数高于0.8,表明存在多重共线性;但相关系数低,并不能表示不存在多重共线性;

2、vif检验;

3、条件系数检验;

解决方法:

1、增加数据;

2、对模型施加某些约束条件;

3、删除一个或几个共线变量;

4、将模型适当变形;

5、主成分回归

处理多重共线性的原则:

1、 多重共线性是普遍存在的,轻微的多重共线性问题可不采取措施;

2、 严重的多重共线性问题,一般可根据经验或通过分析回归结果发现。如影响系数符号,重要的解释变量t值很低。要根据不同情况采取必要措施。

3、 如果模型仅用于预测,则只要拟合程度好,可不处理多重共线性问题,存在多重共线性的模型用于预测时,往往不影响预测结果;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

你可能感兴趣的:(R语言 检验多重共线性的操作)