通过查看所有15种可能的lm模型,可能会更容易理解逐步回归的方式。
这是为所有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
让我们回到您的逐步回归。lm(mpg〜wt + drat + disp + qsec)的extractAIC值为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模型,因此请在步骤1中保留(-disp)模型。
再次重复该过程,但以保留的(-disp)模型为起点。可以将术语相减(“向后”)或相减/相加(“两者”)以进行模型比较。由于相比较而言,最低的AIC值仍是(-disp)模型,因此将给出过程停止和结果模型。
关于您的查询:“通过在逐步选择中再次添加+ disp来实现的功能是什么?”,在这种情况下,它实际上什么也没做,因为在所有15个模型中,最佳模型是11 ,即lm(mpg〜wt + drat + qsec)。
但是,在具有大量预测变量的复杂模型中,需要大量步骤来解决,将最初删除的项加回来对于提供最详尽的比较项方法至关重要。
希望以某种方式提供帮助。