为什么我无法使用 statsmodels api 获取 VIF
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
我正在查看来自 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