Być może łatwiej byłoby zrozumieć, w jaki sposób dokonuje się regresji krokowej, patrząc na wszystkie 15 możliwych modeli lm.
Oto szybki sposób na wygenerowanie formuły dla wszystkich 15 kombinacji.
library(leaps)
tmp<-regsubsets(mpg ~ wt + drat + disp + qsec, data=mtcars, nbest=1000, really.big=T, intercept=F)
all.mods <- summary(tmp)[[1]]
all.mods <- lapply(1:nrow(all.mods, function(x)as.formula(paste("mpg~", paste(names(which(all.mods[x,])), collapse="+"))))
head(all.mods)
[[1]]
mpg ~ drat
<environment: 0x0000000013a678d8>
[[2]]
mpg ~ qsec
<environment: 0x0000000013a6b3b0>
[[3]]
mpg ~ wt
<environment: 0x0000000013a6df28>
[[4]]
mpg ~ disp
<environment: 0x0000000013a70aa0>
[[5]]
mpg ~ wt + qsec
<environment: 0x0000000013a74540>
[[6]]
mpg ~ drat + disp
<environment: 0x0000000013a76f68>
Wartości AIC dla każdego modelu są wyodrębniane za pomocą:
all.lm<-lapply(all.mods, lm, mtcars)
sapply(all.lm, extractAIC)[2,]
[1] 97.98786 111.77605 73.21736 77.39732 63.90843 77.92493 74.15591 79.02978 91.24052 71.35572
[11] 63.89108 65.90826 78.68074 72.97352 65.62733
Wróćmy do regresji krokowej. Wartość extractAIC dla lm (mpg ~ wt + drat + disp + qsec) wynosi 65,63 (odpowiednik modelu 15 z powyższej listy).
Jeśli model usunie disp (-disp), wówczas lm (mpg ~ wt + drat + qsec) wynosi 63.891 (lub model 11 na liście).
Jeśli model niczego nie usuwa (brak), AIC nadal wynosi 65,63
Jeśli model usunie qsec (-qsec), wówczas lm (mpg ~ wt + drat + disp) wynosi 65,908 (model 12).
itp.
Zasadniczo podsumowanie ujawnia wszystkie możliwe stopniowe usuwanie jednego terminu z pełnego modelu i porównuje wartość extractAIC, umieszczając je w kolejności rosnącej. Ponieważ mniejsza wartość AIC jest bardziej podobna do modelu PRAWDA, krok zachowaj model (-disp) w kroku pierwszym.
Proces powtarza się ponownie, ale z zachowanym (-disp) modelem jako punktem początkowym. Warunki są odejmowane („wstecz”) lub odejmowane / dodawane („oba”), aby umożliwić porównanie modeli. Ponieważ najniższą wartością AIC w porównaniu jest nadal model (-disp), podano zatrzymanie procesu i modele wynikowe.
W odniesieniu do zapytania: „Jaką funkcję próbuje osiągnąć dodając ponownie znak + disp w krokowym wyborze?”, W tym przypadku tak naprawdę nic nie robi, ponieważ najlepszym modelem we wszystkich 15 modelach jest model 11 , tj. lm (mpg ~ wt + drat + qsec).
Jednak w skomplikowanych modelach z dużą liczbą predyktorów, których rozwiązanie wymaga wielu kroków, dodanie terminu, który został początkowo usunięty, ma kluczowe znaczenie dla zapewnienia najbardziej wyczerpującego sposobu porównywania warunków.
Mam nadzieję, że ta pomoc w jakiś sposób.
Oto uproszczona odpowiedź. Po pierwsze, obie procedury starają się zmniejszyć AIC danego modelu, ale robią to na różne sposoby. Następnie podstawową różnicą jest to, że w procedurze selekcji wstecznej można odrzucić zmienne z modelu tylko na dowolnym etapie, podczas gdy w selekcji krokowej można również dodawać zmienne do modelu.
Jeśli chodzi o dane wyjściowe wybierane krokowo, generalnie dane wyjściowe pokazują zamówione alternatywy w celu zmniejszenia AIC, więc pierwszy wiersz na dowolnym etapie jest najlepszą opcją. Następnie jest
+disp
trzeci wiersz, ponieważ dodanie tej zmiennej do modelu byłoby trzecią najlepszą opcją zmniejszenia AIC. Ale oczywiście, ponieważ twoją najlepszą alternatywą jest to<none>
, że nic nie robisz, procedura zatrzymuje się i daje ci takie same wyniki, jak przy selekcji wstecznej.źródło