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
Hướng dẫn bài tập
- Từ
statsmodels, importvariance_inflation_factor. - Từ dữ liệu
crab, chọnweight,widthvàcolorvà lưu thànhX. Thêm cộtInterceptgồm toàn số 1 vàoX. - Dùng hàm
DataFrame()củapandasđể tạo một dataframevifrỗng và thêm tên các cột củaXvào cộtVariables. - Với mỗi biến, tính VIF bằng hàm
variance_inflation_factor()và lưu vào dataframevifvới tên cộtVIF.
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
____(____)