Trinnvis regresjon i R – Hvordan fungerer det?

Jeg prøver å forstå den grunnleggende forskjellen mellom trinnvis og bakovergående regresjon i R ved hjelp av trinnfunksjonen. For trinnvis regresjon brukte jeg følgende kommando

 step(lm(mpg~wt+drat+disp+qsec,data=mtcars),direction="both") 

Jeg fikk utdataene nedenfor for ovennevnte kode.

fremover

For tilbakevendende variabelvalg brukte jeg følgende kommando

 step(lm(mpg~wt+drat+disp+qsec,data=mtcars),direction="backward") 

Og jeg fikk utdataene nedenfor for bakover

bakover

Så mye som jeg har forstått, når ingen parameter er spesifisert, fungerer trinnvis valg som bakover med mindre parameteren «øvre» og «nedre» er spesifisert i R. Likevel i utgangen av trinnvis valg, det er en + disp som legges til i 2. trinn. Hva prøver funksjonen å oppnå ved å legge til + disp igjen i trinnvis valg? Hvorfor legger R til + disp i andre trinn, mens resultatene er de samme (AIC-verdier og modellvalgverdier) som det bakoverliggende valget. Hvordan fungerer R akkurat i trinnvis valg?

Jeg vil virkelig forstå hvordan denne funksjonen fungerer i R. Takk på forhånd for hjelpen!

Svar

Kanskje ville det være lettere å forstå hvordan trinnvis regresjon gjøres ved å se på alle de 15 mulige lm-modellene.

Her er «en quickie for å generere formel for alle 15 kombinasjoner.

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-verdier for hver av 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 

La oss gå tilbake til trinnregresjonen. ExtractAIC-verdien for lm (mpg ~ wt + drat + disp + qsec) er 65,63 (tilsvarer modell 15 i listen ovenfor).

Hvis modellen fjerner disp (-disp), er lm (mpg ~ wt + drat + qsec) 63.891 (eller modell 11 i listen).

Hvis modellen gjør det ikke fjerne noe (ingen), så er AIC fortsatt 65.63

Hvis modellen fjerner qsec (-qsec), er lm (mpg ~ wt + drat + disp) 65,908 (modell 12).

osv.

I utgangspunktet avslører sammendraget den mulige trinnvise fjerningen av en periode fra hele modellen din og sammenlign extractAIC-verdien ved å føre dem opp i stigende rekkefølge. Siden det er mer sannsynlig at den mindre AIC-verdien ligner på SANNHET-modellen, må du beholde (-disp) -modellen i trinn en.

Prosessen gjentas igjen, men med den beholdte (-disp) modellen som utgangspunkt. Begrepene blir enten trukket fra («bakover») eller trukket / lagt til («begge») for å tillate sammenligning av modellene. Siden den laveste AIC-verdien i sammenligning fremdeles er (-disp) -modellen, er prosessstopp og resulterende modeller gitt.

Når det gjelder spørsmålet ditt: «Hva prøver du å oppnå ved å legge til + disp igjen i trinnvis valg? «, i dette tilfellet gjør det ikke noe, for den beste modellen på tvers av alle 15 modellene er modell 11, dvs. lm (mpg ~ wt + drat + qsec).

I kompliserte modeller med stort antall prediktorer som krever mange trinn for å løse, er det imidlertid viktig å legge til et begrep som ble fjernet i begynnelsen for å gi den mest uttømmende måten å sammenligne vilkårene på.

Håper dette på en eller annen måte.

Kommentarer

  • " Siden den mindre AIC-verdien er mer sannsynlig å ligne SANNHETSMODELL " er rett opp falsk. Trinnvis modellbygging er omtrent like sannsynlig å beholde falske prediktorer som å avvise ekte prediktorer … blant en rekke andre problemer: stats.stackexchange.com/questions/115843/…
  • Det er åpenbart ' en løgn. Det er ' hvorfor modellvalg basert på enkle kriterier (som trinnvis regresjon) er litt naivt.
  • @Alexis elsker anbefalingene dine i svaret ditt i lenken.

Svar

Her et forenklet svar. For det første prøver begge prosedyrer å redusere AIC for en gitt modell, men de gjør det på forskjellige måter. Deretter er den grunnleggende forskjellen at i tilbakevendingsprosedyren kan du bare forkaste variabler fra modellen i hvilket som helst trinn, mens du i trinnvis markering også kan legge til variabler i modellen.

Om utgangen i trinnvis valg, generelt viser utdataene at du har bestilt alternativer for å redusere AIC, så den første raden på et hvilket som helst trinn er det beste alternativet. Deretter er det en +disp i den tredje raden, fordi å legge den variabelen til modellen din ville være det tredje beste alternativet for å redusere AIC. Men tydeligvis, som ditt beste alternativ er <none>, betyr det at du ikke gjør noe, prosedyren stopper og gir deg de samme resultatene som i tilbakevalg.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *