Fokozatos regresszió R-ben – Hogyan működik?

Megpróbálom megérteni az alapvető különbséget az R lépésenkénti és a visszafelé történő regressziója között a step függvény segítségével. A fokozatos regresszióhoz a következő parancsot használtam:

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

Az alábbi kimenetet kaptam a fenti kódhoz.

előre

Visszafelé változó kiválasztásához a következő parancsot használtam

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

És az alábbi kimenetet kaptam visszafelé

hátra

Amennyire megértettem, ha nincs megadva paraméter, a lépésenkénti kiválasztás visszafelé működik, hacsak a “felső” és az “alsó” paramétert R-ben nem adjuk meg. Mégis a lépésenkénti választás kimenetén, van egy + disz, amelyet a 2. lépésben adunk hozzá. Mi az a funkció, amelyet a + disz hozzáadásával a lépésenkénti kiválasztás során próbál elérni? Miért adja R a + diszperziót a 2. lépésben, miközben az eredmények megegyeznek (AIC értékek és modellválasztási értékek), mint a visszalépés. Hogyan működik R pontosan a lépésenkénti kiválasztásban?

Nagyon szeretném megérteni, hogy működik ez a funkció az R-ben. Előre is köszönöm a segítséget!

Válasz

Talán könnyebb megérteni, hogyan történik a lépésenkénti regresszió, ha mind a 15 lehetséges lm modellt megnézzük.

Itt gyorsan elkészítheti a képletet mind a 15 kombinációhoz.

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> 

Az egyes modellek AIC-értékeit a következővel vonjuk ki:

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 

Térjünk vissza a regresszióra. Az extract AIC értéke lm-re (mpg ~ wt + drat + disp + qsec) 65,63 (egyenértékű a fenti listában szereplő 15. modellel).

Ha a modell eltávolítja a disp (-disp) parancsot, akkor az lm (mpg ~ wt + drat + qsec) értéke 63,891 (vagy a 11. modell a listában).

Ha a modell nem nem távolít el semmit (nincs), akkor az AIC továbbra is 65,63.

Ha a modell eltávolítja a qsec (-qsec) elemet, akkor az lm (mpg ~ wt + drat + disp) 65.908 (12. modell).

stb.

Az összefoglaló alapvetően feltárja az egy kifejezés teljes lehetséges fokozatos eltávolítását a teljes modellből, és összehasonlítja az extractAIC értéket, növekvő sorrendbe sorolva őket. Mivel a kisebb AIC érték nagyobb valószínűséggel hasonlít a TRUTH modellre, az első lépésben tartsa meg a (-disp) modellt.

A folyamat megismétlődik, de a megtartott (-disp) modell kiindulópontként szolgál. A kifejezéseket vagy kivonják (“visszafelé”), vagy kivonják / hozzáadják (“mindkettőt”), hogy lehetővé tegyék a modellek összehasonlítását. Mivel az összehasonlításban a legalacsonyabb AIC-érték még mindig a (-disp) modell, a folyamat leállítása és az eredményül kapott modellek.

A lekérdezéssel kapcsolatban: “Mi az a funkció, amelyet a + disp újbóli hozzáadásával próbálunk elérni a lépésenkénti kiválasztásnál? “, ebben az esetben nem igazán csinál semmit, mivel a 15 modell közül a legjobb a 11. modell, azaz lm (mpg ~ wt + drat + qsec).

Azonban olyan bonyolult modellekben, amelyek nagyszámú prediktort tartalmaznak, és amelyek megoldásához számos lépésre van szükség, az eredetileg eltávolított kifejezés újbóli hozzáadása kritikus fontosságú a kifejezések összehasonlításának legteljesebb módjának biztosításához. valamilyen módon.

Megjegyzések

  • " Mivel a kisebb AIC-érték nagyobb valószínűséggel hasonlít a Az IGAZSÁG modell " egyenesen hamis. A lépésenkénti modellépítés nagy valószínűséggel megtartja a hamis prediktorokat, mint az igazi prediktorok elutasítását … számos egyéb probléma között: stats.stackexchange.com/questions/115843/…
  • Nyilvánvalóan ez ' hazudik. ' ezért az egy kritériumon alapuló modellválasztás (például a fokozatos regresszió) kissé naiv.
  • @Alexis imádja az ajánlásait a linkben adott válaszában.

Válasz

Itt egy egyszerűsített válasz. Először is, mindkét eljárás megpróbálja csökkenteni az adott modell AIC-jét, de különböző módon teszik. Ezután az alapvető különbség az, hogy a visszamenőleges kiválasztási eljárásban a modellből csak egy lépésben vethetünk el változókat, míg a lépésenkénti kiválasztáskor változókat is hozzáadhatunk a modellhez.

A lépésről lépésre történő kimenetről választás, általában a kimenet alternatívákat rendelt az AIC csökkentése érdekében, így bármely lépésnél az első sor a legjobb megoldás. Ezután van egy +disp a harmadik sorban, mert ennek a változónak a hozzáadása a modelljéhez a harmadik legjobb lehetőség az AIC csökkentésére. De nyilvánvalóan, mivel a legjobb alternatíva a <none>, ez azt jelenti, hogy nem csinál semmit, az eljárás leáll, és ugyanazokat az eredményeket kapja, mint a visszalépésnél.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük