如何執行逐步迴歸 in python?在SCIPY中有OLS的方法,但我無法逐步完成。在這方面的任何幫助將是一個很大的幫助。謝謝。Python中的逐步迴歸
編輯:我想建立一個線性迴歸模型。我有5個獨立變量,使用前向逐步迴歸,我的目標是選擇變量,使我的模型具有最低的p值。再次
感謝:以下鏈接解釋了目標。
如何執行逐步迴歸 in python?在SCIPY中有OLS的方法,但我無法逐步完成。在這方面的任何幫助將是一個很大的幫助。謝謝。Python中的逐步迴歸
編輯:我想建立一個線性迴歸模型。我有5個獨立變量,使用前向逐步迴歸,我的目標是選擇變量,使我的模型具有最低的p值。再次
感謝:以下鏈接解釋了目標。
Statsmodels有其他迴歸方法:http://statsmodels.sourceforge.net/devel/examples/generated/example_ols.html。我認爲這會幫助你實施逐步迴歸。
Trevor Smith和我用statsmodels爲線性迴歸編寫了一個小前向選擇函數:http://planspace.org/20150423-forward_selection_with_statsmodels/您可以很容易地修改它以最小化p值,或者選擇基於beta p值而僅需要多一點工作。
"""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值小於顯着性水平的最佳變量。
您可以根據statsmodels.api.OLS
型號進行前進後退選擇,如in this answer所示。
然而,this answer描述了爲什麼你不應該首先使用逐步選擇計量經濟模型。
'scikits.learn'有LARS /套索,如果這有什麼用處的話:http://scikit-learn.org/dev/modules/linear_model.html#lars-lasso – NPE 2013-03-15 13:13:40
你能詳細說明一下你的標準嗎想用於選擇預測變量嗎?如果你想要一個例子,你能發佈或鏈接到一些示例數據嗎? – BKay 2013-04-03 13:29:47
基於p值建立模型不可取。它們更像是一種完整性檢查,其他標準如AIC或BIC更適合。 – 2015-07-23 22:10:19