R语言 检验多重共线性的操作
作者:yeeye_chiang
函数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、 如果模型仅用于预测,则只要拟合程度好,可不处理多重共线性问题,存在多重共线性的模型用于预测时,往往不影响预测结果;
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。