Jeg prøver at forstå den grundlæggende forskel mellem trinvis og bagudvendt regression i R ved hjælp af trinfunktionen. Til trinvis regression brugte jeg følgende kommando
step(lm(mpg~wt+drat+disp+qsec,data=mtcars),direction="both")
Jeg fik nedenstående output til ovenstående kode.
Til bagudgående variabelvalg brugte jeg følgende kommando
step(lm(mpg~wt+drat+disp+qsec,data=mtcars),direction="backward")
Og jeg har nedenstående output til bagud
Så meget som jeg har forstået, når ingen parameter er specificeret, fungerer trinvis markering som bagud, medmindre parameteren “øvre” og “nedre” er specificeret i R. Alligevel i output af trinvis markering, der er en + disp, der tilføjes i 2. trin. Hvad forsøger funktionen at opnå ved at tilføje + disp igen i det trinvise valg? Hvorfor tilføjer R + disp i 2. trin, mens resultaterne er de samme (AIC-værdier og modeludvælgelsesværdier) som det bagudgående valg. Hvordan fungerer R nøjagtigt i det trinvise valg?
Jeg vil virkelig forstå, hvordan denne funktion fungerer i R. På forhånd tak for hjælpen!
Svar
Måske ville det være lettere at forstå, hvordan trinvis regression sker ved at se på alle 15 mulige lm-modeller.
Her er “en quickie til at generere formel for alle 15 kombinationer.
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>
AIC-værdier for hver af modellen ekstraheres med:
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
Lad os gå tilbage til din trinregression. ExtractAIC-værdien for lm (mpg ~ wt + drat + disp + qsec) er 65,63 (svarende til model 15 i listen ovenfor).
Hvis modellen fjerner disp (-disp), er lm (mpg ~ wt + drat + qsec) 63.891 (eller model 11 på listen).
Hvis modellen gør ikke fjerne noget (ingen), så er AIC stadig 65.63
Hvis modellen fjerner qsec (-qsec), så er lm (mpg ~ wt + drat + disp) 65.908 (model 12).
osv.
Grundlæggende afslører resuméet alle mulige trinvise fjernelser af en periode fra din fulde model og sammenlign extractAIC-værdien ved at angive dem i stigende rækkefølge. Da den mindre AIC-værdi er mere tilbøjelig til at ligne TRUTH-modellen, skal du fastholde (-disp) -modellen i trin 1.
Processen gentages igen, men med den bevarede (-disp) model som udgangspunkt. Vilkårene trækkes enten (“bagud”) eller trækkes / tilføjes (“begge”) for at muliggøre sammenligning af modellerne. Da den laveste AIC-værdi i sammenligning stadig er (-disp) -modellen, gives processtop og resulterende modeller.
Med hensyn til din forespørgsel: “Hvad forsøger funktionen at opnå ved at tilføje + disp igen i det trinvise valg? “, i dette tilfælde gør det ikke rigtig noget, for den bedste model på tværs af alle 15 modeller er model 11, dvs. lm (mpg ~ wt + drat + qsec).
I komplicerede modeller med stort antal forudsigere, der kræver adskillige trin for at løse, er tilføjelsen af et udtryk, der oprindeligt blev fjernet, imidlertid afgørende for at give den mest udtømmende måde at sammenligne termerne på.
Håber denne hjælp på en eller anden måde.
Kommentarer
- " Da den mindre AIC-værdi er mere tilbøjelig til at ligne SANDHEDSMODEL " er ligefrem falsk. Trinvis modelopbygning handler omtrent lige så sandsynligt om at beholde falske forudsigere som at afvise sande forudsigere … blandt en lang række andre problemer: stats.stackexchange.com/questions/115843/…
- Det er åbenbart ' en løgn. Derfor er ' modelvalg baseret på enkelte kriterier (som trinvis regression) en smule naiv.
- @Alexis elsker dine anbefalinger i dit svar i linket.
Svar
Her er et forenklet svar. For det første forsøger begge procedurer at reducere AIC for en given model, men de gør det på forskellige måder. Derefter er den grundlæggende forskel, at man i den tilbagevendende udvælgelsesprocedure kun kan kassere variabler fra modellen på ethvert trin, mens man i trinvis markering også kan tilføje variabler til modellen.
Om output i trinvis valg, generelt viser output, at du har bestilt alternativer til at reducere din AIC, så den første række på ethvert trin er din bedste mulighed. Derefter er der en +disp
i tredje række, fordi tilføjelse af denne variabel til din model ville være din tredje bedste mulighed for at mindske din AIC. Men selvfølgelig, da dit bedste alternativ er <none>
, betyder det ikke at gøre noget, proceduren stopper og giver dig de samme resultater som i bagudvalg.