如何在 R 中执行前向选择、后向选择和逐步回归?

324*_*324 5 regression r

我正在尝试对某些数据执行前向、后向和逐步回归;然而,所有这些的摘要看起来都非常相似,所以我想知道我是否做对了一切?

向前选择

#Forward Selection
regA <-  step(lm(Rut ~ Visc + Surface + Run + Voids + Visc*Run 
                  + Surface*Run + Voids*Run,data=dat),
               direction="forward")
regA
summary(regA)
Run Code Online (Sandbox Code Playgroud)

向后消除法

lmB <- step(lm(Rut ~ Visc + Surface + Run + Voids + Visc*Run 
        + Surface*Run + Voids*Run,data=dat),direction="backward")
lmB
summary(lmB)
Run Code Online (Sandbox Code Playgroud)

逐步

reg1C <-  lm(Rut ~ Visc + Surface + Run + Voids + Visc*Run 
                  + Surface*Run + Voids*Run,data=dat)
step(reg1C)
summary(reg1C)
Run Code Online (Sandbox Code Playgroud)

324*_*324 1

假设您尝试执行回归来预测房屋价格。假设我们的一些变量是卧室、浴室的数量、房子的大小、列出的日期和建造年份。请参阅下文,了解使用 R 的前向、后向和逐步自动选择技术。

#Forward
nullmod <- lm(Price ~ 1, data = dat)
fullmod <- lm(Price ~ Beds + Baths + size + Date + Year 
             + AshburnMetro,data=dat)
reg1A <- step(nullmod, scope = list(lower = nullmod, upper = fullmod),
              direction="forward")

reg1A
str(summary(reg1A))

#Backwards
fullmod <- lm(Price ~ 1, data = dat)
nullmod <- lm(Price ~ Beds + Baths + size + Date + Year 
              + AshburnMetro,data=dat)
reg1B <- step(nullmod, scope = list(lower = fullmod, upper = nullmod),
              direction="backward")

reg1B
str(summary(reg1B))
summary(reg1B)

#Stepwise
fullmod <- lm(Price ~ 1, data = dat)
nullmod <- lm(Price ~ Beds + Baths + size + Date + Year 
             + AshburnMetro,data=dat)
reg1C <- step(nullmod, scope = list(lower = fullmod, upper = nullmod),
              direction="both")

reg1C
str(summary(reg1C))
Run Code Online (Sandbox Code Playgroud)