方差膨胀因子VIF
在建立逻辑回归模型的过程中,有一个重要的步骤——利用VIF来检验变量之间是否有多重共线性,那么多重共线性是什么,VIF又是什么呢?
大家上学的时候应该都知道线性关系:假设有n个非零向量X1,X2, …,Xn,如果存在不全等于零的常数b1, b2, …, bn使得b1X1+b2X2+b3X3+…+bnXn=0,则认为X1,X2,…,Xn之间存在线性关系。多重共线性也是相似的道理。在实际建模的过程中,我们的数据集常常含有成千上万个样本,其中某几个变量之间存在非常严格的线性关系的情况是几乎不可能存在的,因此当解释变量之间存在一定程度的相关性(近似共线性)时,也可以称之为多重共线性。当有多重共线性的情况发生时,参数估计的结果不再具有有效性,因此在进行逻辑回归分析之前我们需要通过VIF检验来排除掉某些有多重共线性的变量。
逻辑回归除去sigmoid映射函数关系,在本质上也可以看作是线性回归,因此在接下来的介绍中我们针对的是普遍的线性回归模型,和参数估计方法以及损失函数无关。
VIF,VarianceInflation Factor,方差膨胀因子。VIF指的是解释变量之间存在多重共线性时的方差与不存在多重共线性时的方差之比,可以反映多重共线性导致的方差的增加程度。它的公式长这样:
看起来很简单的一个式子,问题在于R2是什么?R2是线性回归中的决定系数,反映了回归方程解释因变量变化的百分比。它可以由因变量和自变量之间的复相关系数的平方得到,也可以由回归方程的残差平方和和总平方和的比值得到。为了得到每一个变量的VIF,我们需要以每一个变量为因变量对其余所有变量进行线性回归分析,对每一个变量得到各自的R2,再代入上面的式子,就可以得到每一个变量的VIF了。
复相关系数和这些“平方和”又是什么呢?我们直接来看栗子:
先用X1对X2、X3进行线性回归,利用EXCEL的数据数据分析回归可以得到回归结果:
其实这里我们已经能得到R2=0.9398,算出来VIF=16.61。接下来我们来验证一下这个R2是怎么来的。
1.复相关系数
复相关系数是反映一个因变量与一组自变量(两个或两个以上)之间相关程度的指标,其实就是因变量和自变量拟合结果之间的相关系数。拟合的参数估计可以参考上面EXCEL得出的结果:X(^)1=0.0572X2+1.5178X3-3.8466,如下表所示:
计算X1和X(^)1之间的相关系数,可以得到r(X1,X(^)1)=0.9694,那么R2= r(X1,X(^)1)2=0.9398
2.SSR/SST
首先来看几个式子:
SST、SSR、SSE分别指的是总平方和、回归平方和和残差平方和。其中SST为因变量和因变量均值之差的平方和,SSR为自变量拟合结果和因变量均值之差的平方和,SSE为因变量和自变量拟合结果之差的平方和。那么有:
将我们的数据集代入计算:
我们用两种方法分别验证了EXCEL给出R2。那么对X2、X3进行同样的操作,可以得到:
VIF越高,多重共线性的影响越严重。一般来说,当5
That's All!