Tal vez sería más fácil comprender cómo se realiza la regresión por pasos si se observan los 15 modelos lm posibles.
Aquí tienes una fórmula rápida para generar las 15 combinaciones.
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>
Los valores AIC para cada uno de los modelos se extraen con:
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
Volvamos a tu paso-regresión. El valor de extractAIC para lm(mpg ~ wt + drat + disp + qsec) es 65,63 (equivalente al modelo 15 de la lista anterior).
Si el modelo elimina disp (-disp), entonces lm(mpg ~ wt + drat + qsec) es 63.891 (o el modelo 11 de la lista).
Si el modelo no elimina nada (ninguno), entonces el AIC sigue siendo 65.63
Si el modelo elimina qsec (-qsec), entonces lm(mpg ~ wt + drat + disp) es 65,908 (modelo 12).
etc.
Básicamente, el resumen revela todas las posibles eliminaciones escalonadas de un término de su modelo completo y compara el valor de extractAIC, enumerándolas en orden ascendente. Dado que el valor AIC más pequeño es más probable que se parezca al modelo TRUTH, mantenga el modelo (-disp) en el paso uno.
El proceso se repite de nuevo, pero con el modelo conservado (-disp) como punto de partida. Los términos se restan ("hacia atrás") o se restan/añaden ("ambos") para permitir la comparación de los modelos. Dado que el valor AIC más bajo de la comparación sigue siendo el modelo (-disp), el proceso se detiene y se dan los modelos resultantes.
En relación con su pregunta "¿Qué intenta conseguir la función añadiendo el +disp de nuevo en la selección por pasos?", en este caso, realmente no hace nada, porque el mejor modelo de los 15 modelos es el modelo 11, es decir, lm(mpg ~ wt + drat + qsec).
Sin embargo, en modelos complicados con un gran número de predictores que requieren numerosos pasos para resolverse, volver a añadir un término que se eliminó inicialmente es fundamental para proporcionar la forma más exhaustiva de comparar los términos.
Espero que esto ayude de alguna manera.