Athomas hatte irgendwann mal eine Simulation in der folgende Art gemacht:
Wir nehmen eine Matrix mit ganz zufälligen Beobachtungen. Je 1000 Beobachtungen von 100 Variablen:
Code: Alles auswählen
set.seed(4711)
bsp <- as.data.frame(matrix(rnorm(100000), nrow=1000))
Jetzt stellen wir ein lineares Modell auf, das die erste Spalte durch die 99 anderen vorhersagt:
Davon nehmen wir jetzt die Koeffizienten und sortieren die mit dem niedrigsten p-Wert nach oben. Wir schauen uns die 10 besten an:
Code: Alles auswählen
co <- summary(model1)$coefficients
head(co[order(co[,4]),],10)
Das Ergebnis:
Code: Alles auswählen
> head(co[order(co[,4]),],10)
Estimate Std. Error t value Pr(>|t|)
V87 0.11330660 0.03126428 3.624155 0.0003061565
V73 -0.09956095 0.03050163 -3.264119 0.0011394572
V10 -0.08610537 0.03121777 -2.758216 0.0059295837
V91 0.08026375 0.03214044 2.497282 0.0126925862
V61 -0.07951723 0.03194038 -2.489552 0.0129700056
V89 -0.07187542 0.03212909 -2.237082 0.0255250979
V24 0.06063133 0.03182597 1.905090 0.0570868552
V4 0.05825938 0.03156337 1.845791 0.0652508491
V45 -0.05552266 0.03119715 -1.779735 0.0754566842
V72 0.05515997 0.03135250 1.759348 0.0788581052
Gut, sechs signifikante Prädiktoren sind identifiziert, V87 ist mit p < 0,001 über jeden Zweifel erhaben, V24 verfehlt Signifikanz ganz knapp mit p = 0,057.
AIC des Ausgangswerts und des auf die signifikanten Prädiktoren begrenzten Modells:
Code: Alles auswählen
> model2 <- lm(V1 ~ V87+V73+V10+V91+V61+V89, data = bsp)
> AIC(model1)
[1] 2842.387
> AIC(model2)
[1] 2734.049
Wir konnten also die signifikanten Variablen identifizieren und den AIC damit senken. Das Model zwei war höchst signifikant besser als das Nullmodell mit p-value: 6.718e-08 ! Schade nur, dass wir auch ohne CrossValidation in diesem Fall wissen, dass es
überhaupt gar keinen Zusammenhang gibt. Nur zuviele Prädiktoren und eine automatisierte Modellauswahl. Wenn wir da jetzt noch alle quadratischen, kubischen und Interaktionsterme drin hätten würde die Kombinatorik ihr übriges tun.
LG,
Bernhard