首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >多元回归分析存在多重共线性了怎么办?

多元回归分析存在多重共线性了怎么办?

作者头像
生信修炼手册
发布2019-12-17 16:20:37
4.9K0
发布2019-12-17 16:20:37
举报

在进行多元回归分析时,两个自变量之间可能存在线性相关,所谓线性用数学公式表示如下

即两个自变量之间的关系是一条直线, 称之为共线性,当三个或以上自变量之间存在共线性时,称之为多重共线性,数据公式表示如下

其中,系数不全为零。在回归分析中,假设多个自变量之间是相互独立的,如果存在多重共线性,会造成分析结果的不准确,所以在进行多元回归分析时,我们需要检测自变量是否存在多重共线性。存在多重共线性实际上说明自变量存在了冗余,需要剔除对应的变量之后再进行回归分析。

那么如何来评判一个变量与其他变量是否存在共线性呢?从多重共线性的数学公式可以看出,符合多重共线性的自变量构成了一个线性方程。基于这个思想,对于每个自变量x,将其作为因变量,用线性回归拟合剩余的自变量和x之间的关系。

在线性回归中,拟合结果的好坏用R2来表示,可以想象,如果完全符合上述方程,即存在完全共线性的情况下,R2值最大,为1。实际情况中,虽然不会是完全共线性,但是也可以用R2来表征其线性关系的强弱,R2越大,说明线性关系越明确。

为了更加明确的衡量共线性,数学家利用R2构建了一个统计量,称之为方差膨胀因子,简写为VIF, 全称如下

variance inflation factor

计算公式如下

其中的1-R2也称之为容忍度tolerance, 可以看到,VIF是容忍度的倒数。VIF值越大,说明多重共线性越强,通常情况下,以10为阈值,认为VIF大于10时,多重共线性非常强。需要说明的是,这个阈值是一个经验值,也有采用5作为阈值的。另外还有一种说法,不使用规定阈值,而是通过分析每个自变量的VIF值,将其中显著离群的值作为判断共线性大的依据。

在R中,可以通过如下方式计算每个自变量的VIF值

也可以自己用公式来验证一下,代码如下

当得到各个自变量对应的VIF值之后,可以来筛选VIF值较大的自变量,在上述例子中,自变量tax的VIF值最大,超过了9,可以其与其他变量的多重共线性叫明显,可以考虑去除该自变量,重新进行回归分析。

在进行多元回归时,自变量的多重共线性是必须要考虑的问题,可以根据自变量对应的方差膨胀因子VIF值,来剔除共线性明显的自变量,重新拟合,以提高回归分析的准确性。

·end·

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档