Schrittweise Regression in R – Wie funktioniert das?

Ich versuche, den grundlegenden Unterschied zwischen schrittweiser und rückwärts gerichteter Regression in R mithilfe der Schrittfunktion zu verstehen. Für die schrittweise Regression habe ich den folgenden Befehl verwendet:

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

Ich habe die folgende Ausgabe für den obigen Code erhalten.

vorwärts

Für die Auswahl der Rückwärtsvariablen habe ich den folgenden Befehl verwendet:

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

Und ich habe die folgende Ausgabe für rückwärts erhalten

rückwärts

Soweit ich verstanden habe, wirkt die schrittweise Auswahl, wenn kein Parameter angegeben ist, rückwärts, es sei denn, die Parameter „obere“ und „untere“ sind in R angegeben. In der Ausgabe der schrittweisen Auswahl Es gibt ein + disp, das im 2. Schritt hinzugefügt wird. Was versucht die Funktion zu erreichen, indem Sie in der schrittweisen Auswahl erneut + disp hinzufügen? Warum fügt R im 2. Schritt das + disp hinzu, während die Ergebnisse dieselben sind (AIC-Werte und Modellauswahlwerte) wie die Rückwärtsauswahl? Wie funktioniert R genau in der schrittweisen Auswahl?

Ich möchte wirklich verstehen, wie diese Funktion in R funktioniert. Vielen Dank im Voraus für die Hilfe!

Antwort

Vielleicht ist es einfacher zu verstehen, wie schrittweise Regression durchgeführt wird, wenn alle 15 möglichen lm-Modelle betrachtet werden.

Hier „ist ein Quickie zum Generieren einer Formel für alle 15 Kombinationen.

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-Werte für jedes Modell werden extrahiert mit:

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 

Kehren wir zu Ihrer Schrittregression zurück. Der extractAIC-Wert für lm (mpg ~ wt + drat + disp + qsec) beträgt 65,63 (entspricht Modell 15 in der obigen Liste).

Wenn das Modell disp (-disp) entfernt, beträgt lm (mpg ~ wt + drat + qsec) 63.891 (oder Modell 11 in der Liste).

Wenn das Modell dies tut nichts entfernen (keine), dann ist der AIC immer noch 65,63

Wenn das Modell qsec (-qsec) entfernt, dann ist lm (mpg ~ wt + drat + disp) 65,908 (Modell 12).

usw.

Grundsätzlich zeigt die Zusammenfassung die mögliche schrittweise Entfernung eines Terms aus Ihrem vollständigen Modell und vergleicht den extrahierten AIC-Wert, indem sie in aufsteigender Reihenfolge aufgelistet wird. Da der kleinere AIC-Wert eher dem TRUTH-Modell ähnelt, behalten Sie in Schritt 1 das (-disp) -Modell bei.

Der Vorgang wird erneut wiederholt, jedoch mit dem beibehaltenen (-disp) Modell als Ausgangspunkt. Begriffe werden entweder subtrahiert („rückwärts“) oder subtrahiert / addiert („beide“), um den Vergleich der Modelle zu ermöglichen. Da der niedrigste AIC-Wert im Vergleich immer noch das (-disp) -Modell ist, werden Prozessstopp- und resultierende Modelle angegeben.

In Bezug auf Ihre Abfrage: „Was versucht die Funktion zu erreichen, indem Sie das + disp erneut hinzufügen in der schrittweisen Auswahl? „, in diesem Fall macht es eigentlich nichts, denn das beste Modell unter allen 15 Modellen ist Modell 11, dh lm (mpg ~ wt + drat + qsec).

In komplizierten Modellen mit einer großen Anzahl von Prädiktoren, für deren Auflösung zahlreiche Schritte erforderlich sind, ist das Hinzufügen eines ursprünglich entfernten Begriffs entscheidend, um den umfassendsten Vergleich der Begriffe zu ermöglichen.

Hoffen Sie auf diese Hilfe in gewisser Weise.

Kommentare

  • " Da der kleinere AIC-Wert eher dem ähnelt Das WAHRHEITS-Modell " ist direkt falsch. Bei der schrittweisen Modellbildung werden etwa ebenso wahrscheinlich falsche Prädiktoren beibehalten wie echte Prädiktoren … unter einer Vielzahl anderer Probleme: stats.stackexchange.com/questions/115843/…
  • Offensichtlich ' sa Lüge. Aus diesem Grund ist ' die Modellauswahl anhand einzelner Kriterien (wie schrittweise Regression) ein wenig naiv.
  • @Alexis lieben Ihre Empfehlungen in Ihrer Antwort im Link.

Antwort

Hier eine vereinfachte Antwort. Erstens versuchen beide Verfahren, den AIC eines bestimmten Modells zu reduzieren, aber sie tun dies auf unterschiedliche Weise. Der grundlegende Unterschied besteht dann darin, dass Sie bei der Rückwärtsauswahl in jedem Schritt nur Variablen aus dem Modell verwerfen können, während Sie bei der schrittweisen Auswahl auch Variablen zum Modell hinzufügen können.

Informationen zur Ausgabe im Schritt Auswahl, im Allgemeinen zeigt die Ausgabe, dass Sie Alternativen bestellt haben, um Ihren AIC zu reduzieren, sodass die erste Zeile in jedem Schritt Ihre beste Option ist. Dann gibt es in der dritten Zeile ein +disp, da das Hinzufügen dieser Variablen zu Ihrem Modell Ihre drittbeste Option wäre, um Ihren AIC zu verringern. Da Ihre beste Alternative jedoch <none> ist, bedeutet dies, dass Sie nichts tun. Die Prozedur stoppt und liefert die gleichen Ergebnisse wie bei der Rückwärtsauswahl.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.