Возможно, было бы легче понять, как осуществляется поэтапная регрессия, если посмотреть на все 15 возможных моделей ЛМ.
Вот быстрый способ создать формулу для всех 15 комбинаций.
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 для каждой модели извлекаются с помощью:
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
Давайте вернемся к вашей ступенчатой регрессии. Значение extractAIC для lm (mpg ~ wt + drat + disp + qsec) составляет 65,63 (эквивалент модели 15 в списке выше).
Если модель удаляет disp (-disp), то lm (mpg ~ wt + drat + qsec) составляет 63,891 (или модель 11 в списке).
Если модель ничего не удаляет (нет), то AIC все равно 65.63
Если модель удаляет qsec (-qsec), то lm (mpg ~ wt + drat + disp) составляет 65,908 (модель 12).
и т.п.
По сути, в сводке раскрываются все возможные пошаговые исключения однократных выражений из вашей полной модели и сравнивается значение extractAIC, перечисляя их в порядке возрастания. Поскольку меньшее значение AIC, скорее всего, будет напоминать модель TRUTH, при первом шаге сохраните модель (-disp).
Процесс повторяется снова, но с сохраненной (-disp) моделью в качестве отправной точки. Термины либо вычитаются («назад»), либо вычитаются / добавляются («оба») для сравнения моделей. Поскольку самым низким значением AIC для сравнения по-прежнему является модель (-disp), приводятся остановка процесса и результирующие модели.
Что касается вашего запроса: «Чего пытается достичь функция, снова добавив + disp в пошаговом выделении?», В этом случае она ничего не делает, потому что лучшая модель из всех 15 моделей - модель 11 то есть lm (mpg ~ wt + drat + qsec).
Однако в сложных моделях с большим количеством предикторов, для решения которых требуется множество шагов, добавление обратно термина, который был первоначально удален, имеет решающее значение для обеспечения наиболее исчерпывающего способа сравнения терминов.
Надеюсь, что это поможет в некотором роде.