web-dev-qa-db-ja.com

Pythonの段階的回帰

ステップワイズ回帰pythonで実行するには? SCIPYにはOLSのメソッドがありますが、段階的に行うことはできません。この点でどんな助けも大きな助けになるでしょう。ありがとう。

編集:私は線形回帰モデルを構築しようとしています。 5つの独立変数があり、順ステップ回帰を使用して、モデルのp値が最小になるように変数を選択します。次のリンクで目的を説明します。

https://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CEAQFjAD&url=http%3A%2F%2Fbusiness.fullerton.edu%2Fisds %2Fjlawrence%2FStatオンライン%2FExcel%2520Notes%2FExcel%2520Notes%2520-%2520STEPWISE%2520REGRESSION.doc&EI = YjKsUZzXHoPwrQfGs4GQCg&USG = AFQjCNGDaQ7qRhyBaQCmLeO4OD2RVkUhzw&BVM = bv.47244034、d.bmk

再度、感謝します。

22
user2174063

Trevor Smithと私は、statsmodelsを使用した線形回帰の小さな前方選択関数を作成しました: http://planspace.org/20150423-forward_selection_with_statsmodels/ 簡単に変更できますp値を最小化するか、少しだけ作業を加えてベータp値に基づいて選択します。

9

この回答では に示すように、statsmodels.api.OLSモデルに基づいて前後の選択を行うことができます。

ただし、 この回答 は、そもそも計量経済モデルにステップワイズ選択を使用しない理由を説明しています。

3
David Dale

Statsmodelsには、回帰のための追加のメソッドがあります: http://statsmodels.sourceforge.net/devel/examples/generated/example_ols.html 。ステップワイズ回帰の実装に役立つと思います。

2
Matti Pastell
"""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値を持つすべての最適変数が含まれます。

0
Varun-08