属性错误:模块'statsmodels.formula.api'没有属性'OLS'



我正在尝试使用普通最小二乘法进行多变量回归。但它说统计模型中没有属性"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'

为了完整起见,如果统计模型,代码应该看起来像这样。版本为 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()

使用此导入。

import statsmodels.api as sm

我已经尝试了上述方法,虽然

import statsmodels.api as sm

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

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

它给了我这个错误。

类型错误: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)

这是我今天尝试的工作解决方案。
在导入中使用此功能

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()

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

试试这个,对我有用:

import statsmodels.regression.linear_model as sm

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

最新更新