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