一、定义

多重共线性(Multicollinearity)是指线性回归模型中的解释变量之间由于存在较精确相关关系或高度相关关系而使模型估计失真或难以估计准确。完全共线性的情况并不多见,一般出现的是在一定程度上的共线性,即近似共线性。

二. 目前常用的多重共线性诊断方法
  1.自变量的相关系数矩阵R诊断法:研究变量的两两相关分析,如果自变量间的二元相关系数值很大,则认为存在多重共线性。但无确定的标准判断相关系数的大小与共线性的关系。有时,相关系数值不大,也不能排除多重共线性的可能。

R实现:画协方差矩阵图
  2.方差膨胀因子(the variance inflation factor,VIF)诊断法:方差膨胀因子表达式为:VIFi=1/(1-R2i)。其中Ri为自变量xi对其余自变量作回归分析的复相关系数。当VIFi很大时,表明自变量间存在多重共线性。该诊断方法也存在临界值不易确定的问题,在应用时须慎重。

判断:VIFj>10时,说明自变量x与其余自变量之间存在严重的多重共线关系,这种多重共线性可能会过度地影响最小二乘估计值
  3.容忍值(Tolerance,简记为Tol)法:容忍值实际上是VIF的倒数,即Tol=1/VIF。其取值在0~1之间,Tol越接近1,说明自变量间的共线性越弱。在应用时一般先预先指定一个Tol值,容忍值小于指定值的变量不能进入方程,从而保证进入方程的变量的相关系数矩阵为非奇异阵,计算结果具有稳定性。但是,有的自变量即使通过了容忍性检验进入方程,仍可导致结果的不稳定。
  4.多元决定系数值诊断法:假定多元回归模型p个自变量,其多元决定系数为R2y(X1,X2,…,Xp)。分别构成不含其中某个自变量(Xi,i=1,2,…,p)的p个回归模型,并应用最小二乘法准则拟合回归方程,求出它们各自的决定系数R2i(i=1,2,…,p)。如果其中较大的一个R2k与R2y很接近,就表明该自变量在模型中对多元决定系数的影响不大,说明该变量对Y总变异的解释能力可由其他自变量代替。它很有可能是其他自变量的线性组合。因此,该自变量进入模型后就有可能引起多重共线性问题。该方法也存在临界值和主观判断问题。
  5.条件数与特征分析法:在自变量的观测值构成的设计矩阵X中,求出变量相关系数R的特征值,如果某个特征值很小(如小于0.05 ),或所有特征值的倒数之和为自变量数目的5倍以上,表明自变量间存在多重共线性关系。

三. R语言实现多重共线性的检验

1、 方差膨胀因子VIF

得到各个系数的方差膨胀因子,一般认为,当0<VIF<10,不存在多重共线性(注意:在《R语言实战》第2版P182中认为VIF>4就存在多重共线性);当10≤VIF<100,存在较强的多重共线性,当VIF>=100,多重共线性非常严重。

library(car)

vif(lm.sol)

注意:需要安装car包。

2、基于条件数和特征分析法

step1: 利用kappa函数,计算自变量矩阵的条件数;
step2: 判断是否存在多重共线性. 从实际经验的角度,一般若条件数<100,则认为多重共线性的程度很小,若100<=条件数<=1000,则认为存在中等程度的多重共线性,若条件数>1000,则认为存在严重的多重共线性.

注意:不用装包,kappa是R中内置函数,可以直接使用!

四. 解决方法

1、 处理时可以进行逐步回归,用step()命令,比如你一开始的模型是fm=lm(),step(fm)选择最小AIC信息统计量就可以了。这种方法是排除引起共线性的变量,是解决多重共线性的比较常用方法!

2、 增大样本量,尽量样本量要远远大于自变量个数。

3、 回归系数的有偏估计(岭回归,主成分分析,偏最小二乘法)

例如:

> 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=TRUE) #exact=TRUE表示精确计算条件数;
[1] 2195.908    #大于1000,有严重的多重共线性
# eigen(XX)

  

> library(car)
载入需要的程辑包:carData
> vif.dia<-vif(lm(Y~.,data = collinear))
> sort(vif.dia,decreasing = TRUE)X4         X3         X1         X2         X5         X6
297.714658 266.263648 182.051943 161.361942   1.919992   1.455265

#逐步回归
> fit <- lm(Y~.,data=collinear)
> fit_step <- step(fit)
> summary(fit_step)

  

转载于:https://www.cnblogs.com/Christina-Notebook/p/10019415.html

多重共线性诊断及处理相关推荐

  1. 多重共线性诊断与R语言实践

    鄙人学习笔记 参考文献:<计量经济学模型及R语言应用>-王斌会 文章目录 变量的多重共线性诊断 特征根分析法 条件数法 方差扩大因子法 直观判定法 举个例子(R语言) 变量的多重共线性诊断 ...

  2. MATLAB实现多重共线性诊断及处理

    1 多重共线性诊断 当线性回归模型中有两个或多个自变量高度线性相关时,使用最小二乘法建立回归方程就有可能失效,甚至会把分析引向歧途,这就是所谓的多重共线性问题.在作多元线性回归分析的时候,应作多重共线 ...

  3. 多重判定系数怎么求_关于多重共线性

    在线性回归模型时,存在这样一种假设,即各个解释变量之间不存在很强的关系.如果解释变量之间存在很强的线性相关关系,就认为数据之间存在共线性问题. 1.什么是多重共线性 在解释变量中,有某一解释变量可由其 ...

  4. 多重共线性问题如何解决?

    ​ 一.多重共线性说明 多重共线性一般是指:如果有两个或者多个自变量高度相关(相关系数大于0.8),难以区分一个自变量对因变量的影响和作用,将自变量相关性产生的后果定义为多重共线性,一般提出多重共线性 ...

  5. 数据分析线性回归的诊断

    多元线性回归的假设 Y的平均值能够准确地被由X组成的线性函数建模出来 解释变量和随机扰动项不存在线性关系 解释变量之间不存在线性关系(或强相关) 假设随机误差项 ε 是一个均值为0的正态分布 假设随机 ...

  6. 怎么用spss做冗余分析_用SPSS进行医学统计信度分析——【杏花开医学统计】

    杏花开生物医药统计 一号在手,统计无忧! 关 注 用SPSS进行医学统计信度分析 关键词:SPSS.信度分析 导 读 上期,我们介绍了量表的基本形式及其研制步骤. 点击观看:<医学研究中量表研制 ...

  7. 多选题spss相关分析_【医学问卷分析】使用SPSS多重响应对医学问卷多选题进行统计分析——【杏花开医学统计】...

    杏花开生物医药统计 一号在手,统计无忧! 关 注 [医学问卷分析] 使用SPSS多重响应对 医学问卷多选题进行统计分析 关键词:SPSS.问卷分析 导  读 前几期,我们介绍了量表的制作及信效度分析的 ...

  8. 回归分析什么时候取对数_技术派|SPSS数据分析心得小结及心得分享!必备收藏...

    作者:徐定德 来源:经管之家,欢迎转载,欢迎分享. 学习数据分析之spss分析工具,可真的不是一般的功夫,真的要很认真和很细心才能做得好spss.下面我来和大家分享一下关于SPSS数据分析心得小结,希 ...

  9. excel使用教程_汉字资料如何进行数据分析?Excel中医学汉字资料转化为数字资料视频教程——If/Iserror/Find函数的结合使用...

    杏花开医学统计 医学统计教程,统计分析服务 关 注 Excel中医学汉字资料 如何转化为数字资料 关键词:Excel 我们平时使用Excel记录的绝大多数的医学资料是以汉字形式记录的.以汉字形式记录的 ...

最新文章

  1. HTML的标签描述18
  2. 一文读懂工业物联网 全面起底核心玩家和技术体系
  3. selenium代码练习
  4. jq动态获取input的值传给html,jquery 保证html()拿到的html字符串包含input的value值
  5. 微型计算机使用的普通编码是,2017计算机一级考试选择题练习及答案(2)
  6. QStackedWidget实现自适应紧凑布局
  7. Spring 框架基础(01):核心组件总结,基础环境搭建
  8. A1156. 开心的金明
  9. [目标检测]YOLO原理
  10. JSON解析方式 gson
  11. linux学习(3)——vim文本编辑工具
  12. MATLAB SCI论文绘图及绘图窗口大小设置
  13. 一文掌握项目如何进行分类,项目工时如何计算【实例】
  14. @Component和@Bean的区别
  15. Flink——运行的组件有哪些?分别有什么作用?
  16. iqooneo3 如何不用vivo账号下载外部应用_你说iQOO Neo 3很香?抱歉,我有不同的意见...
  17. LeetCode: 868. Transpose Matrix
  18. 磁盘配额管理解决共享硬盘空间不足问题(图)
  19. SSM框架整合(Spring+SpringMVC+MyBatis+Oracle)
  20. 条码标签软件如何批量制作PZN条码

热门文章

  1. JSP:Table表格属性总结
  2. python干饭神器---今天吃什么?python告诉你
  3. 值得你关注的9个linux入门工具
  4. 公平锁和非公平锁的性能差异
  5. 非滤波单目视觉SLAM系统
  6. java+mysq基于SSM的酒店管理系统#毕业设计
  7. Kafka的灵魂伴侣Logi-KafkaManger(5)之运维管控–平台管理(用户管理和平台配置)
  8. 笔记本外接显示器“显示信号输入超出范围“及外接显示器自动息屏的问题解决方案
  9. php 取整,PHP取整的方法有哪些
  10. 不下载软件批量文件重命名或加前缀