บางทีมันอาจจะง่ายกว่าที่จะเข้าใจวิธีการถดถอยแบบขั้นตอนโดยดูที่โมเดล lm ที่เป็นไปได้ทั้งหมด 15 แบบ
นี่คือ quickie เพื่อสร้างสูตรสำหรับชุดค่าผสมทั้ง 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 อีกครั้งในการเลือกแบบขั้นตอน?" ในกรณีนี้มันไม่ได้ทำอะไรเลย คือ lm (mpg ~ wt + drat + qsec)
อย่างไรก็ตามในโมเดลที่ซับซ้อนที่มีตัวทำนายจำนวนมากที่ต้องการขั้นตอนมากมายในการแก้ไขการเพิ่มคำศัพท์ที่ถูกลบออกในตอนแรกนั้นเป็นสิ่งสำคัญเพื่อให้วิธีการเปรียบเทียบเงื่อนไขครบถ้วนสมบูรณ์ที่สุด
หวังว่าจะช่วยได้บ้าง