如何在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-On-行%2FExcel%2520Notes%2FExcel%2520Notes%2520-%2520STEPWISE%2520REGRESSION.doc&EI = YjKsUZzXHoPwrQfGs4GQCg&USG = AFQjCNGDaQ7qRhyBaQCmLeO4OD2RVkUhzw&BVM = bv.47244034,d.bmk
再次感谢。
特雷弗·史密斯和我写了一个小前锋选择功能线性回归与statsmodels: http://planspace.org/20150423-forward_selection_with_statsmodels/你可以很容易地修改它以最小化p值,或基于测试的p值只有选择多一点的工作。
您可以向前向后的选择基于statsmodels.api.OLS
模型,如图中的这个答案 。
然而, 这个答案说明为什么你不应该使用计量模型逐步选择摆在首位。
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值小于显着性水平的优化变量。