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

时间:2019-04-24 02:16:56

标签: r regression

我正在尝试对某些数据进行正向,反向和逐步回归;但是,所有这些摘要看起来都非常相似,所以我想知道我是否做对了所有事情?

转发选择

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

向后淘汰

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

逐步

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

1 个答案:

答案 0 :(得分: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))