开始使用免费开始使用

计算 VIF

正如您在视频中学到的,多重共线性最常用的诊断方法之一是方差膨胀因子(variance inflation factor,VIF),需要为每个自变量计算。

回忆视频中的经验法则:阈值通常取 VIF 为 2.5。如果某个变量的 VIF 高于 2.5,您就应当考虑多重共线性对已拟合模型的影响。

之前已拟合好的 modelcrab 数据集已预加载到工作区。

本练习是课程的一部分

Python 中的广义线性模型

查看课程

练习说明

  • statsmodels 导入 variance_inflation_factor
  • crab 数据集中选择 weightwidthcolor 三列保存为 X。为 X 添加名为 Intercept 的全 1 列。
  • 使用 pandasDataFrame() 函数创建一个空的 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
____(____)
编辑并运行代码