Bắt đầu ngayBắt đầu miễn phí

Tính VIF

Như bạn đã học trong video, một phép chẩn đoán phổ biến cho hiện tượng đa cộng tuyến là hệ số phóng đại phương sai (variance inflation factor, VIF), được tính cho từng biến giải thích.

Nhắc lại từ video: một ngưỡng kinh nghiệm là VIF ở mức 2.5, nghĩa là nếu VIF lớn hơn 2.5 thì bạn nên xem xét khả năng có ảnh hưởng của đa cộng tuyến lên mô hình đã khớp.

model đã được khớp trước đó và bộ dữ liệu crab đã được nạp sẵn trong không gian làm việc.

Bài tập này là một phần của khóa học

Mô hình Tuyến tính Tổng quát (GLM) trong Python

Xem khóa học

Hướng dẫn bài tập

  • Từ statsmodels, import variance_inflation_factor.
  • Từ dữ liệu crab, chọn weight, widthcolor và lưu thành X. Thêm cột Intercept gồm toàn số 1 vào X.
  • Dùng hàm DataFrame() của pandas để tạo một dataframe vif rỗng và thêm tên các cột của X vào cột Variables.
  • Với mỗi biến, tính VIF bằng hàm variance_inflation_factor() và lưu vào dataframe vif với tên cột VIF.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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
____(____)
Chỉnh sửa và Chạy Mã