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

Shu*_*han 3 python machine-learning linear-regression statsmodels

我正在尝试使用普通最小二乘进行多元回归。但是它说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(
Run Code Online (Sandbox Code Playgroud)

错误如下:

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'
Run Code Online (Sandbox Code Playgroud)

小智 16

使用此导入。

import statsmodels.api as sm
Run Code Online (Sandbox Code Playgroud)


Mat*_*ava 14

我已经尝试了上述方法,而

import statsmodels.api as sm
Run Code Online (Sandbox Code Playgroud)

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

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

它给了我这个错误。

类型错误:输入类型不支持 ufunc 'isfinite',并且无法根据转换规则 ''safe'' 将输入安全地强制转换为任何受支持的类型

如果您收到上面提到的错误,您可以通过指定解决它dtypenp.array

代替

X_opt = X[:, [0, 1, 2, 3, 4, 5]]
Run Code Online (Sandbox Code Playgroud)

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


che*_*fer 10

仅出于完整性考虑,如果使用statsmodels,则代码应如下所示。版本是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()
Run Code Online (Sandbox Code Playgroud)


Hyd*_*irl 5

我正在使用statsmodels 0.11.1,这对我有用

import statsmodels.api as sm
X_opt = np.array(X[:, [0, 1, 2, 3, 4, 5]], dtype=float)
regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit()
Run Code Online (Sandbox Code Playgroud)