Python中的逐步回归

32 投票
7 回答
106922 浏览
提问于 2025-04-17 19:12

如何在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-Line%2FExcel%2520Notes%2FExcel%2520Notes%2520-%2520STEPWISE%2520REGRESSION.doc&ei=YjKsUZzXHoPwrQfGs4GQCg&usg=AFQjCNGDaQ7qRhyBaQCmLeO4OD2RVkUhzw&bvm=bv.47244034,d.bmk

再次感谢。

7 个回答

3

你可以根据 statsmodels.api.OLS 模型进行前向和后向选择,就像这个回答中所示的那样。

不过,这个回答解释了为什么你不应该首先对经济计量模型使用逐步选择的方法。

12

Trevor Smith和我写了一个简单的前向选择函数,用于线性回归,使用的是statsmodels这个库。你可以很容易地修改这个函数,让它最小化p值,或者根据beta的p值进行选择,只需要稍微多花点功夫。

13

你可以试试mlxtend这个工具,它提供了多种选择方法。

from mlxtend.feature_selection import SequentialFeatureSelector as sfs

clf = LinearRegression()

# Build step forward feature selection
sfs1 = sfs(clf,k_features = 10,forward=True,floating=False, scoring='r2',cv=5)

# Perform SFFS
sfs1 = sfs1.fit(X_train, y_train)

撰写回答