这里提供一个 Python 实现的方法和原理趣分析
方差膨胀因子是非常经典缓解多元共线性的方法,原理简单,实现优雅,效果拔群。源代码源数据可私聊俺获取,每天固定时间查看和回复。
原理趣析
多重线性回归模型的主要假设之一是我们的预测变量(自变量)彼此不相关。我们希望预测变量与反应变量(因变量)相关,而不是彼此之间具有相关性。如言情剧中的 A 喜欢B,B 却喜欢 C,结果发现 C 其实喜欢 A;而 B 的一举一动很有可能影响着 A,所以当我们把 B和C 作为自变量来预测因变量 A 的行为时,这两个自变量之间的相互影响就会有点让人难受。
公式解释
方差膨胀因子(Variance Inflation Factor,以下简称VIF),是指解释变量之间存在多重共线性时的方差与不存在多重共线性时的方差之比。
上图公式可以看出在方差膨胀因子的检测中:每个自变量都会有一个膨胀因子值VIF_i,最后根据值的大小来选择是否删减
Ri^2 表示相关性,是谁跟谁的相关性呢?是自变量中的某一变量与除它外剩余的自变量进行多元线性回归,取回归结果,即模型精度来作为这个变量与剩余自变量的相关性。 听起来可能有点绕,这里举一下实例(用 “ 面积、卧室数量和浴室数量 ” 作为自变量来预测房价,在进行自变量的方差膨胀因子的检测时,面积、卧室数和浴室数轮流做单独的因变量,剩下的两个变量作为自变量,来看看这三个自变量中那个变量对其余两个变量的解释性高)
Ri^2 越大,如已经到了 0.9,那分母就很小,