计算 VIF
正如您在视频中学到的,多重共线性最常用的诊断方法之一是方差膨胀因子(variance inflation factor,VIF),需要为每个自变量计算。
回忆视频中的经验法则:阈值通常取 VIF 为 2.5。如果某个变量的 VIF 高于 2.5,您就应当考虑多重共线性对已拟合模型的影响。
之前已拟合好的 model 和 crab 数据集已预加载到工作区。
本练习是课程的一部分
Python 中的广义线性模型
练习说明
- 从
statsmodels导入variance_inflation_factor。 - 在
crab数据集中选择weight、width和color三列保存为X。为X添加名为Intercept的全 1 列。 - 使用
pandas的DataFrame()函数创建一个空的vif数据框,并将X的列名添加到名为Variables的列中。 - 对每个变量使用
variance_inflation_factor()函数计算 VIF,并以VIF为列名保存到vif数据框中。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Import functions
from statsmodels.stats.outliers_influence import ____
# Get variables for which to compute VIF and add intercept term
X = ____[[____, ____, ____]]
X[____] = 1
# Compute and view VIF
vif = pd.____
vif["variables"] = X.____
vif["VIF"] = [____(X.values, i) for i in range(X.shape[1])]
# View results using print
____(____)