多変数回帰に通常の最小二乗法を使用しようとしています。しかし、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 .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()
このインポートを使用します。
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()
それは私にこのエラーを与えます。
TypeError:入力タイプではufunc 'isfinite'はサポートされておらず、キャストルール '' safe ''に従って、サポートされているタイプに入力を安全に強制変換できませんでした
上記のエラーが発生した場合は、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.regression.linear_model as sm
私は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()
Statsmodelsライブラリがインポートされる方法を除いて、すべてが素晴らしいように見えます。それは以下の通りです:
import statsmodels.api as sm
の代わりに、
import statsmodels.formula.api as sm