So verwenden sie stepaic in r zur funktionsauswahl
Das Akaike Information Criterion ( AIC ) ist eine Metrik zur Quantifizierung, wie gut ein Modell zu einem Datensatz passt.
Es wird wie folgt berechnet:
AIC = 2K – 2 ln (L)
Gold:
- K: Die Anzahl der Modellparameter. Der Standardwert von K ist 2, sodass ein Modell mit nur einer Prädiktorvariablen einen K-Wert von 2+1 = 3 hat.
- ln (L) : Die Log-Likelihood des Modells. Die meisten Statistikprogramme können diesen Wert automatisch für Sie berechnen.
AIC soll das Modell finden, das die größte Variation in den Daten erklärt, und gleichzeitig Modelle bestrafen, die eine übermäßige Anzahl von Parametern verwenden.
Sie können die Funktion „stepAIC()“ aus dem MASS- Paket in R verwenden, um einem Regressionsmodell iterativ Prädiktorvariablen hinzuzufügen und daraus zu entfernen, bis Sie den Satz von Prädiktorvariablen (oder „Features“) gefunden haben, der das Modell mit dem niedrigsten AIC-Wert erzeugt.
Diese Funktion verwendet die folgende grundlegende Syntax:
stepAIC(Objekt, Richtung, …)
Gold:
- Objekt : Der Name eines angepassten Modells
- Richtung : die Art der zu verwendenden Schrittsuche („rückwärts“, „vorwärts“ oder „beide“)
Das folgende Beispiel zeigt, wie Sie diese Funktion in der Praxis nutzen können.
Beispiel: Verwendung von stepAIC() zur Funktionsauswahl in R
Für dieses Beispiel verwenden wir den in R integrierten mtcars- Datensatz, der Messungen zu 11 verschiedenen Attributen für 32 verschiedene Autos enthält:
#view first six rows of mtcars dataset
head(mtcars)
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3,460 20.22 1 0 3 1
Angenommen, wir möchten ein Regressionsmodell anpassen, das hp als Antwortvariable und die folgenden potenziellen Prädiktorvariablen verwendet:
- mpg
- Gewicht
- Scheisse
- qsec
Wir können die Funktion „stepAIC()“ aus dem MASS- Paket verwenden, um verschiedene Prädiktorvariablen zum Modell zu addieren und davon zu subtrahieren, bis wir das Modell mit dem niedrigstmöglichen AIC-Wert erreichen:
library (MASS)
#fit initial multiple linear regression model
model <- lm(hp ~ mpg + wt + drat + qsec, data=mtcars)
#use both forward and backward selection to find model with lowest AIC
stepAIC(model, direction=" both ")
Start: AIC=226.88
hp ~ mpg + wt + drat + qsec
Df Sum of Sq RSS AIC
- drat 1 94.9 28183 224.98
- mpg 1 1519.4 29608 226.56
none 28088 226.88
- wt 1 3861.9 31950 229.00
-qsec 1 28102.2 56190 247.06
Step: AIC=224.98
hp ~ mpg + wt + qsec
Df Sum of Sq RSS AIC
- mpg 1 1424.5 29608 224.56
none 28183 224.98
+ drat 1 94.9 28088 226.88
- wt 1 3797.9 31981 227.03
-qsec 1 29625.1 57808 245.97
Step: AIC=224.56
hp ~ wt + qsec
Df Sum of Sq RSS AIC
none 29608 224.56
+ mpg 1 1425 28183 224.98
+ drat 1 0 29608 226.56
- wt 1 43026 72633 251.28
-qsec 1 52881 82489 255.35
Call:
lm(formula = hp ~ wt + qsec, data = mtcars)
Coefficients:
(Intercept) wt qsec
441.26 38.67 -23.47
So interpretieren Sie das Ergebnis:
(1) Zunächst beginnen wir mit der Anpassung eines Regressionsmodells mit den vier Prädiktorvariablen. Dieses Modell hat einen AIC-Wert von 226,88 .
(2) Als nächstes bestimmt stepAIC, dass das Entfernen von drat als Prädiktorvariable den AIC-Wert weiter auf 224,98 reduzieren wird.
(3) Als nächstes bestimmt das stepAIC-Modell, dass das Entfernen von mpg als Prädiktorvariable den AIC-Wert weiter auf 224,56 reduzieren wird.
(4) Schließlich stellt StepAIC fest, dass es keine Möglichkeit gibt, den AIC-Wert durch Hinzufügen oder Entfernen von Variablen weiter zu reduzieren.
Das endgültige Modell lautet daher:
PS = 441,26 + 38,67 (Gewicht) – 23,47 (qsec)
Dieses Modell hat einen AIC-Wert von 224,56 .
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in R ausführen:
So führen Sie eine multiple lineare Regression in R durch
So führen Sie eine stückweise Regression in R durch
So führen Sie eine Spline-Regression in R durch