繁体   English   中英

方差膨胀因子输出统计模型

[英]Variance inflation factor output statsmodels

我正在尝试使用 statsmodels 找到多重共线性,但是我的代码的输出没有显示方差膨胀因子,而是作为生成器对象的数据框:

from statsmodels.stats.outliers_influence import variance_inflation_factor
variables = df[['Mileage','Year','EngineV']]
vif = pd.DataFrame()
vif['VIF'] = (variance_inflation_factor(variables.values,i) for i in range(variables.shape[1]))
vif['features'] = variables.columns

结果在输出

                                                 VIF  | features
  ---------------------------------------------------------------
0 | <generator object <genexpr> at 0x0000023A9F204... | Mileage
1 | <generator object <genexpr> at 0x0000023A9F204... |    Year
2 | <generator object <genexpr> at 0x0000023A9F204... | EngineV

而不是给出实际值。 我确信这是一个简单的解决方法,但我对 Python 和编码非常陌生。 谢谢

您应该将生成器转换为列表。 您可以使用列表理解或 list() 函数。

vif['VIF'] = [variance_inflation_factor(variables.values,i) for i in range(variables.shape[1])]

或者

vif['VIF'] = list((variance_inflation_factor(variables.values,i) for i in range(variables.shape[1])))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM