2013-03-15 16 views
20

Jak wykonać regresji krokowej w python? Istnieją metody OLS w SCIPY, ale nie jestem w stanie zrobić krok po kroku. Jakakolwiek pomoc w tym zakresie byłaby wielką pomocą. Dzięki.Regresja krokowa w języku Python

Edytuj: Próbuję zbudować model regresji liniowej. Mam 5 zmiennych niezależnych i używając regresji krokowej do przodu, staram się wybierać zmienne tak, aby mój model miał najniższą wartość p. Poniższy link wyjaśnia cel:

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

Dzięki jeszcze raz.

+3

'scikits.learn' ma LARS/Lasso, jeśli to jest jakiekolwiek użycie: http://scikit-learn.org/dev/modules/linear_model.html#lars-lasso – NPE

+0

Czy możesz rozwinąć, jakie kryteria chcesz chcesz użyć do wyboru zmiennych predykcyjnych? A jeśli chcesz podać przykład, możesz opublikować lub połączyć się z przykładowymi danymi? – BKay

+0

Nie zaleca się opierać modelu na wartościach p. Są bardziej sprawdzianem poczytalności, a inne kryterium, takie jak AIC lub BIC, są bardziej odpowiednie. –

Odpowiedz

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() 

Stosując metodę skróconą, można sprawdzić w jądrze wartości p swoimi zmiennych pisane jako „P> | t |”. Następnie sprawdź, czy zmienna ma najwyższą wartość p . Załóżmy, że x3 ma najwyższą wartość np. 0,956. Następnie usuń tę kolumnę ze swojej tablicy i powtórz wszystkie kroki.

X_opt = X[:,[0,1,3,4]] 
regressor_OLS = sm.OLS(endog = y, exog = X_opt).fit() 
regressor_OLS.summary() 

Powtarzaj te metody, dopóki nie usuniesz wszystkich kolumn, które mają wartość p wyższą niż wartość istotności (np. 0.05). W końcu twoja zmienna X_opt będzie miała wszystkie optymalne zmienne z wartościami p niższymi niż poziom istotności.

0

Można dokonać wyboru do przodu i do tyłu w oparciu o model statsmodels.api.OLS, jak pokazano in this answer.

Jednak, this answer opisuje, dlaczego nie należy w pierwszej kolejności stosować wyboru krokowego dla modeli ekonometrycznych.