[英]why i am not able to get two integer separated by a space using single input function using python
[英]Why am I not able to get the VIF using statsmodels api
我正在查看來自 statsmodels 的以下官方文檔:
但是當我嘗試在練習數據集上運行此代碼時(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.