Python检验多元共线性-VIF方差扩大因子

Posted webrobot

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python检验多元共线性-VIF方差扩大因子相关的知识,希望对你有一定的参考价值。

python入门/爬虫/数据统计/数据分析人工智能/机器学习/自然语言视频教程网址https://pythoner.taobao.com/

 

在一个回归方程中,假如两个或两个以上解释变量彼此高度相关,那么回归分析的结果将有可能无法分清每一个变量与因变量之间的真实关系。例如我们要知道吸毒对SAT考试分数的影响,我们会询问对象是否吸收过可卡因或海洛因,并用软件计算它们之间的系数。

虽然求出了海洛因和可卡因额回归系数,但两者相关性发生重叠,使R平方变大,依然无法揭开真实的情况。
因为吸食海洛因的人常常吸食可卡因,单独吸食一种毒品人很少。

当两个变量高度相关时,我们通常在回归方程中只采用其中一个,或创造一个新的综合变量,如吸食可卡因或海洛因。

又例如当研究员想要控制学生的整体经济背景时,他们会将父母双方的受教育程度都纳入方程式中。

如果单独把父亲或母亲的教育程度分离考虑,会引起混淆,分析变得模糊,因为丈夫和妻子的教育程度有很大相关性。

 
多元共线性带来问题:
(1)自变量不显著
(2)参数估计值的正负号产生影响
 

共线性统计量:
(1)容忍度tolerance
         tolerance<0.1 表示存在严重多重共线
(2)方差扩大因子 variance inflation factor (VIF)
         VIF>10表示存在严重多重共线性


 http://blog.csdn.net/baimafujinji/article/details/49799409

回归分析是数据挖掘中最基本的方法,其中基于普通最小二乘法的多元线性回归要求模型中的特征数据不能存在有多重共线性,否则模型的可信度将大打折扣。但是就是技术而言,如何确定模型中的各各特征之间是否有多重共线性呢?

先来看一组数据

技术分享图片

我们能否用这组数据来建立多元线性回归模型呢?现在这组数据的问题还不十分明显,我们不妨用最简单的交叉散点图来透视一下数据可能存在的问题。于是我们在R中绘制了下图:

技术分享图片

从散点图中我们可以看出每个解释变量都与被解释变量有较明显的线性关系,而且这也是我们所希望看到的。但是两个解释变量之间似乎也呈现出了某种线性关系。事实上,如果计算两个解释变量之间的相关性系数,可知它们的线性相关系数高达 ,这也就意味着严重的多重共线性。在构建多元线性回归模型时,随着解释变量数目的增多,其中某两个解释变量之间产生多重共线性是很容易发生的情况。此时就需要考虑是否将其中某个变量从模型中剔除出去,甚至是重新考虑模型的构建。

但是这种视觉观察的方法仅仅能够作为定性研究的一种前导,最好能够有一种定量的方法来帮助我们最终抉择。为此再来看一组数据

技术分享图片

我们能否用这组数据来建立多元线性回归模型呢?同样再来绘制散点图如下,自变量之间似乎还是有点共线性,但是又不像上面例子中的那么明显,现在该怎么办?

技术分享图片

所以我们还是建议采用一种更加能够便于量化的方法来描述问题的严重性,而不是仅仅通过肉眼观察来做感性的决定。下面我演示在SPSS 22中检验多重共线性的方法。首先导入数据,如下所示

技术分享图片

 

然后单击菜单栏上的【分析】->【回归】->【线性...】,则进入如下图所示的线性回归对话框。当选择好因变量和自变量之后,选择右上角的【Statistics...】,然后在弹出的新对话框里选定【共线性诊断】

技术分享图片

回到上图左边的对话框之后,选择确定,SPSS给出了线性回归分析的结果。我们来看其中共线性诊断的部分,如下所示,如果有条件指数>10,则表明有共线性。现在最大的是9.659,仍然处于可以接受的范围。

技术分享图片

如果我们使用的数据是最前面给出的那组货运量与工农业产值的例子,又将如何,来看下图。红色框所标出的条件指数高达23.973(>10),可见共线性是确凿无疑的了!

技术分享图片

























以上是关于Python检验多元共线性-VIF方差扩大因子的主要内容,如果未能解决你的问题,请参考以下文章

R语言使用car包的vif函数计算方差膨胀因子,并基于方差膨胀因子开方后和阈值的判断来确认模型特征(预测变量)之间是否存在多重共线性(Multicollinearity)

看R语言建立回归分析,如何利用VIF查看共线性问题

5.4 多重共线性人均网络消费回归分析——python实战

在线性回归分析中,若检验的结果为不显著,可能原因是啥

第四篇[机器学习] 机器学习,线性回归的优化

如何解读SPSS共线性诊断结果以及解决多重共线性问题的方法