Il serait peut-être plus facile de comprendre comment la régression par étapes se fait en examinant les 15 modèles de lm possibles.
Voici un quickie pour générer une formule pour les 15 combinaisons.
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>
Les valeurs AIC pour chacun des modèles sont extraites avec:
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
Revenons à votre régression par étapes. La valeur extractAIC pour lm (mpg ~ wt + drat + disp + qsec) est de 65,63 (équivalent au modèle 15 dans la liste ci-dessus).
Si le modèle supprime disp (-disp), alors lm (mpg ~ wt + drat + qsec) vaut 63.891 (ou le modèle 11 dans la liste).
Si le modèle ne supprime rien (rien), alors l'AIC est toujours 65,63
Si le modèle supprime qsec (-qsec), alors lm (mpg ~ wt + drat + disp) est 65,908 (modèle 12).
etc.
Fondamentalement, le résumé révèle la suppression possible par étapes d'un terme de votre modèle complet et compare la valeur extractAIC, en les répertoriant par ordre croissant. Étant donné que la plus petite valeur AIC est plus susceptible de ressembler au modèle TRUTH, l'étape conserve le modèle (-disp) à l'étape un.
Le processus est répété à nouveau, mais avec le modèle retenu (-disp) comme point de départ. Les termes sont soit soustraits ("en arrière"), soit soustraits / ajoutés ("les deux") pour permettre la comparaison des modèles. Étant donné que la valeur AIC la plus faible en comparaison est toujours le modèle (-disp), les modèles d'arrêt de processus et résultants sont donnés.
En ce qui concerne votre requête: "Quelle est la fonction essayant d'atteindre en ajoutant à nouveau le + disp dans la sélection pas à pas?", Dans ce cas, cela ne fait vraiment rien, car le meilleur modèle parmi les 15 modèles est le modèle 11 , c'est-à-dire lm (mpg ~ wt + drat + qsec).
Cependant, dans les modèles complexes avec un grand nombre de prédicteurs qui nécessitent de nombreuses étapes à résoudre, l'ajout d'un terme qui a été supprimé initialement est essentiel pour fournir la façon la plus exhaustive de comparer les termes.
J'espère que cette aide d'une certaine manière.
Voici une réponse simplifiée. Premièrement, les deux procédures tentent de réduire l'AIC d'un modèle donné, mais elles le font de différentes manières. Ensuite, la différence fondamentale est que dans la procédure de sélection en arrière, vous ne pouvez supprimer que les variables du modèle à n'importe quelle étape, tandis que dans la sélection pas à pas, vous pouvez également ajouter des variables au modèle.
À propos de la sortie dans la sélection pas à pas, en général, la sortie vous montre des alternatives ordonnées pour réduire votre AIC, donc la première ligne à n'importe quelle étape est votre meilleure option. Ensuite, il y a un
+disp
dans la troisième ligne parce que l'ajout de cette variable à votre modèle serait votre troisième meilleure option pour diminuer votre AIC. Mais évidemment, comme votre meilleure alternative est<none>
, cela signifie ne rien faire, la procédure s'arrête et vous donne les mêmes résultats qu'en sélection arrière.la source