AttributeError:模块“statsmodels.formula.api”没有属性“OLS”

Posted

技术标签:

【中文标题】AttributeError:模块“statsmodels.formula.api”没有属性“OLS”【英文标题】:AttributeError: module 'statsmodels.formula.api' has no attribute 'OLS' 【发布时间】:2019-10-20 07:58:42 【问题描述】:

我正在尝试使用普通最小二乘法进行多变量回归。但它说statsmodels没有属性'OLS'。公式。 api 库。 我正在关注 Udemy 讲座中的代码 代码如下:

import statsmodels.formula.api as sm
X_opt = X[:,[0,1,2,3,4,5]]
#OrdinaryLeastSquares
regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit(

错误如下:

AttributeError                            Traceback (most recent call last)
<ipython-input-19-3bdb0bc861c6> in <module>()
      2 X_opt = X[:,[0,1,2,3,4,5]]
      3 #OrdinaryLeatSquares
----> 4 regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit()

AttributeError: module 'statsmodels.formula.api' has no attribute 'OLS'

【问题讨论】:

你可以查看statsmodels的版本,是不是>= 0.5.0?类似print (statsmodels.__version__) 使用import statsmodels.api as smformula.api 现在只有小写模型的公式接口,例如 ols 【参考方案1】:

为了完整起见,如果 statsmodels.version 为 0.10.0,则代码应如下所示:

import statsmodels.api as sm
X_opt = X[:,[0,1,2,3,4,5]]
#OrdinaryLeastSquares
regressor_OLS = sm.OLS(endog=y, exog=X_opt).fit()

【讨论】:

【参考方案2】:

试试这个,对我有用:

import statsmodels.regression.linear_model as sm

【讨论】:

【参考方案3】:

使用此导入。

import statsmodels.api as sm

【讨论】:

【参考方案4】:

上述方法我都试过了,虽然

import statsmodels.api as sm

导入对我有用。当我运行下一段代码时

X_opt = X[:, [0, 1, 2, 3, 4, 5]]
regressor_OLS = sm.OLS(endog=y, exog=X_opt).fit()

它给了我这个错误。

TypeError: ufunc 'isfinite' 不支持输入类型,并且 输入无法安全地强制转换为任何支持的类型 强制转换规则“安全”

如果您遇到上述错误,您可以通过为np.array 指定dtype 来解决它。

替换

X_opt = X[:, [0, 1, 2, 3, 4, 5]]

X_opt = np.array(X[:, [0, 1, 2, 3, 4, 5]], dtype=float)

【讨论】:

【参考方案5】:

这是我今天尝试的有效解决方案。 在导入中使用它

import statsmodels.api as sm

下面提到了您的其余修复

X_opt = X[:, [0, 1, 2, 3, 4, 5]]
X_opt = X_opt.astype(np.float64)
regressor_OLS = sm.OLS(Y, X_opt).fit()

这应该可行,因为它确实对我有用。

【讨论】:

【参考方案6】:

正如@Josef 在评论中提到的,使用 ols() 而不是 OLS(),OLS() 确实不存在。

【讨论】:

以上是关于AttributeError:模块“statsmodels.formula.api”没有属性“OLS”的主要内容,如果未能解决你的问题,请参考以下文章

AttributeError:模块'asyncio'没有属性'run'

AttributeError:模块'mysql'没有属性'connector'

AttributeError:“模块”对象没有属性“作者”

AttributeError:模块 'urllib' 没有属性 'parse'

AttributeError:模块“cupy”没有属性“cupyx”

AttributeError:“模块”对象没有属性