簡體   English   中英

為什么我無法使用 statsmodels api 獲取 VIF

[英]Why am I not able to get the VIF using statsmodels api

我正在查看來自 statsmodels 的以下官方文檔:

https://www.statsmodels.org/stable/generated/statsmodels.stats.outliers_influence.variance_inflation_factor.html

但是當我嘗試在練習數據集上運行此代碼時(statsmodels.api 已經導入為 sm)

variance_inflation_factor=sm.stats.outliers_influence.variance_inflation_factor()
vif=pd.DataFrame()
vif['VIF']=[variance_inflation_factor(X_train.values,i) for i in range(X_train.shape[1])]
vif['Predictors']=X_train.columns

我收到錯誤消息:模塊“statsmodels.stats.api”沒有屬性“outliers_influence”

誰能告訴我讓這個工作的合適方法是什么?

variance_inflation_factor=sm.stats.outliers_influence.variance_inflation_factor()不需要通過調用不帶參數的函數來定義。 相反, variance_inflation_factor是一個接受兩個輸入的函數。

import pandas as pd
import numpy as np
from statsmodels.stats.outliers_influence import variance_inflation_factor

X_train = pd.DataFrame(np.random.standard_normal((1000,5)), columns=[f"x{i}" for i
in range(5)])
vif=pd.DataFrame()
vif['VIF']=[variance_inflation_factor(X_train.values,i) for i in range(X_train.shape[1])]
vif['Predictors']=X_train.columns

print(vif)

產生

        VIF Predictors
0  1.002882         x0
1  1.004265         x1
2  1.001945         x2
3  1.004227         x3
4  1.003989         x4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM