2013-03-15 38 views
20

如何執行逐步迴歸 in python?在SCIPY中有OLS的方法,但我無法逐步完成。在這方面的任何幫助將是一個很大的幫助。謝謝。Python中的逐步迴歸

編輯:我想建立一個線性迴歸模型。我有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-On-Line%2FExcel%2520Notes%2FExcel%2520Notes%2520-%2520STEPWISE%2520REGRESSION.doc&ei=YjKsUZzXHoPwrQfGs4GQCg&usg=AFQjCNGDaQ7qRhyBaQCmLeO4OD2RVkUhzw&bvm=bv.47244034,d.bmk

感謝:以下鏈接解釋了目標。

+3

'scikits.learn'有LARS /套索,如果這有什麼用處的話:http://scikit-learn.org/dev/modules/linear_model.html#lars-lasso – NPE 2013-03-15 13:13:40

+0

你能詳細說明一下你的標準嗎想用於選擇預測變量嗎?如果你想要一個例子,你能發佈或鏈接到一些示例數據嗎? – BKay 2013-04-03 13:29:47

+0

基於p值建立模型不可取。它們更像是一種完整性檢查,其他標準如AIC或BIC更適合。 – 2015-07-23 22:10:19

回答

0
"""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值。然後檢查值最高的變量。假設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

您可以根據statsmodels.api.OLS型號進行前進後退選擇,如in this answer所示。

然而,this answer描述了爲什麼你不應該首先使用逐步選擇計量經濟模型。