【问题标题】:How to calculate VIF in python 3.6 with scipy 1.0.0?如何使用 scipy 1.0.0 在 python 3.6 中计算 VIF?
【发布时间】:2018-03-04 05:07:37
【问题描述】:

我正在尝试导入

from statsmodels.stats.outliers_influence import variance_inflation_factor

这在 Scipy 0.19 之前运行良好。

但是,对于 Python 3.6.3,由于 Scipy 1.0.0 中 ss 模块不可用,它会失败。

~\Anaconda3\lib\site-packages\statsmodels\regression\linear_model.py in <module>()
     41 from scipy.linalg import toeplitz
     42 from scipy import stats
---> 43 from scipy.stats.stats import ss
     44 from scipy import optimize
     45 from scipy.stats import chi2

ImportError: cannot import name 'ss'

谁能指导我如何使用 Scipy1.0.0 进行 VIF 分析?

【问题讨论】:

  • 您使用的是哪个版本的statsmodels?您可以通过import statsmodels; print(statsmodels.__version__) 查询

标签: python scipy


【解决方案1】:

首先,ss 模块位于 scipy.stats 而不是 scipy.stats.stats scipy 0.17。此外,它已被弃用,但您似乎已经弄清楚了。

其次,在github上的当前linear_model.py中,不再导入ss包:

from scipy.linalg import toeplitz
from scipy import stats
from scipy import optimize

您的 statsmodels 是什么版本?听起来您可能需要更新它。

【讨论】:

    【解决方案2】:

    SciPy 1.0 需要 statsmodels &gt;= 0.8 || None(刚刚发布!)。

    【讨论】:

    • 我认为你倒退了,因为 SciPy(任何版本)根本不需要 statsmodels。
    猜你喜欢
    • 2020-05-29
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 2012-12-28
    相关资源
    最近更新 更多