Stopniowa regresja w R - Krytyczna wartość p


12

Jaka jest krytyczna wartość p używana przez step()funkcję w R do regresji krokowej? Zakładam, że jest to 0,15, ale czy moje założenie jest prawidłowe? Jak mogę zmienić krytyczną wartość p?


7
Funkcja „kroku” R jest oparta na AIC.
Michael M

7
Najlepiej nie używać w ogóle procedur stopniowego wyboru modelu. Aby zrozumieć dlaczego, może pomóc ci przeczytać moją odpowiedź tutaj: Algorytmy automatycznego wyboru modelu .
gung - Przywróć Monikę

3
W nawiązaniu do komentarza @ MichaelMayer: Descriptionczęść strony pomocy ?stepmówi w całości: Wybierz model oparty na formule przez AIC.
Stephan Kolassa

Odpowiedzi:


27

Jak wyjaśniłem w moim komentarzu do twojego drugiego pytania, stepużywa AIC zamiast wartości p.

Jednakże, dla pojedynczej zmiennej w czasie AIC nie odpowiadają za pomocą wartości p 0.15 (lub dokładniej, 0.1573)

Rozważ porównanie dwóch modeli, które różnią się jedną zmienną. Zadzwoń do modeli (mniejszy model) i (większy model) i pozwól, aby ich AIC to odpowiednio i .M 1 AIC 0 AIC 1M.0M.1AIC0AIC1

Korzystając z kryterium AIC, użyłbyś większego modelu, jeśli . Tak będzie, gdy . - 2 log L 0 - ( - 2 log L 1 ) > 2AIC1<AIC0-2)logL.0-(-2)logL.1)>2)

Ale to po prostu statystyka w teście współczynnika wiarygodności. Z twierdzenia Wilksa odrzucimy zero, jeśli statystyka przekroczy górne kwantyle . Jeśli więc skorzystamy z testu hipotez, aby wybrać między mniejszym a większym modelem, wybieramy większy model, gdy .χ 2 1 - 2 log L 0 - ( - 2 log L 1 ) > C ααχ12)-2)logL.0-(-2)logL.1)>doα

Teraz leży na 84,27 percentyla . Dlatego jeśli wybieramy większy model, gdy ma mniejszy AIC, odpowiada to odrzuceniu hipotezy zerowej dla testu dodatkowego składnika o wartości p lubχ 2 1 1 - 0,843 = 0,157 15,7 %2)χ12)1-0,843=0,15715.7%


Jak to zmodyfikować?

Łatwy. Zmień kparametr stepz 2 na coś innego. Chcesz zamiast tego 10%? Zrób to 2.7:

qchisq(0.10,1,lower.tail=FALSE)
[1] 2.705543

Chcesz 2,5%? Zestaw k=5:

qchisq(0.025,1,lower.tail=FALSE)
[1] 5.023886

i tak dalej.


Jednak pomimo tego, że to rozwiązuje twoje pytanie, radzę uważnie zwrócić uwagę na odpowiedź Franka Harrella na drugie pytanie i poszukać odpowiedzi od wielu statystyk na inne pytania dotyczące regresji stopniowej tutaj, która rada bywa bardzo bardzo konsekwentnie, aby w ogóle unikać stopniowych procedur.


Ładne wyjaśnienie. Czy wiesz, czy byłoby to w przybliżeniu prawdziwe dla wartości p zwykłych testów t regresji?
Ben Ogorek

α=0,05

(ctd) ... mnóstwo poważnych problemów ze stopniowaniem. Inne obejmują stronnicze szacunki i standardowe błędy, które są zdecydowanie zbyt małe.
Glen_b

1
Chwilowo odsuwając problemy z krokowym wyborem modelu, jestem zainteresowany uogólnieniem mniejszej reguły AIC => .1573 wartości p. Opisana wartość p współczynnika prawdopodobieństwa jest dobra, ale w procedurach takich jak lm R, szacunek / std.err jest porównywany z rozkładem t. To jest inny test i zastanawiałem się, czy twój wynik .1573 może utrzymać się w przybliżeniu.
Ben Ogorek

2
tk

4

Jak powiedziano powyżej, stepfunkcja w R opiera się na kryteriach AIC. Ale myślę, że przez wartość p masz na myśli alfa, aby wejść i alfa, aby wyjść. Możesz użyć funkcji stepwisenapisanej przez Paula Rubina i dostępnej tutaj . Jak widać masz argumenty alpha.to.enter i alpha.to.leave, które możesz zmienić. Należy pamiętać, że ta funkcja używa testu F lub równoważnie testu t do wyboru modeli. Co więcej, może obsłużyć nie tylko regresję stopniową, ale także selekcję do przodu i eliminację wsteczną, jeśli poprawnie zdefiniujesz argumenty.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.