学习链接:link
link2
建立线性回归相关模型之前,都需要对特征变量进行多重共线性分析。
有多重共线性的情况发生时,参数估计的结果不再具有有效性,因此在进行回归分析之前我们需要通过VIF检验来排除掉某些有多重共线性的变量。
VIF方差膨胀因子(variance inflation factor)计算公式如下:
V
I
F
=
1
1
−
R
2
{\rm VIF}=\frac{1}{1-R^2}
VIF=1−R21
其中
R
2
R^2
R2是线性回归中的拟合优度/决定系数,描述了回归方程解释因变量的百分比。(具体见链接)
拟合优度 R 2 R^2 R2可以通过两种方式求得:
-
复相关系数的平方.
复相关系数其实就是真实值 y y y和回归后的 y ^ \hat{y} y^的相关系数。
具体可以见这两篇文章:link1…link2 -
利用公式:
R 2 = S S R S S T = 1 − S S E S S T R^2=\frac{SSR}{SST}=1-\frac{SSE}{SST} R2=SSTSSR=1−SSTSSE
其中, S S T = S S R + S S E SST=SSR+SSE SST=SSR+SSE.
现在回到方差膨胀因子VIF。
方差膨胀因子描绘的是每一个因变量和其他因变量之间的线性相关程度。所以,对于每一个自变量都有一个方差膨胀因子
V
F
I
i
{\rm VFI}_i
VFIi。
一般认为
V
F
I
i
>
10
{\rm VFI}_i >10
VFIi>10时,存在多重共线性,该特征需要删除。
python中计算VIF
from statsmodels.stats.outliers_influence import variance_inflation_factor
variance_inflation_factor(X,i)函数计算方差膨胀因子
X是矩阵
i是第i列