ステップワイズ回帰をpythonで実行するには? SCIPYにはOLSのメソッドがありますが、段階的に行うことはできません。この点でどんな助けも大きな助けになるでしょう。ありがとう。
編集:私は線形回帰モデルを構築しようとしています。 5つの独立変数があり、順ステップ回帰を使用して、モデルのp値が最小になるように変数を選択します。次のリンクで目的を説明します。
再度、感謝します。
Trevor Smithと私は、statsmodelsを使用した線形回帰の小さな前方選択関数を作成しました: http://planspace.org/20150423-forward_selection_with_statsmodels/ 簡単に変更できますp値を最小化するか、少しだけ作業を加えてベータp値に基づいて選択します。
Statsmodelsには、回帰のための追加のメソッドがあります: http://statsmodels.sourceforge.net/devel/examples/generated/example_ols.html 。ステップワイズ回帰の実装に役立つと思います。
"""Importing the api class from statsmodels"""
import statsmodels.formula.api as sm
"""X_opt variable has all the columns of independent variables of matrix X
in this case we have 5 independent variables"""
X_opt = X[:,[0,1,2,3,4]]
"""Running the OLS method on X_opt and storing results in regressor_OLS"""
regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit()
regressor_OLS.summary()
要約方法を使用すると、「P> | t |」として記述された変数のp値をカーネルで確認できます。次に、p値が最大の変数を確認します。 x3の最高値が0.956であるとします。次に、この列をアレイから削除し、すべての手順を繰り返します。
X_opt = X[:,[0,1,3,4]]
regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit()
regressor_OLS.summary()
有意値(例:0.05)より高いp値を持つすべての列を削除するまで、これらの方法を繰り返します。最終的に、変数X_optには、有意水準よりも小さいp値を持つすべての最適変数が含まれます。