library(mlbench)
data("BostonHousing")
ss <- lm(medv ~ .,data=BostonHousing)
# 전진선택법
ss1 <- step(ss, direction = "forward")
formula(ss1)
# 후진제거법
ss2 <- step(ss, direction = "backward")
formula(ss2)
data(attitude)
head(attitude)
model <- lm(rating~. , data=attitude)
summary(model)
# p-value가 <0.05 이므로 통계적으로 의미가 있음. 수정결정계수는 0.6628.
# 변수중 통계적으로 유의한 것은 complaints, learnings
reduced <- step(model, direction="backward")
# step에서 critical 제거 --> raise 제거 --> privileges 제거 --> advance 제거
summary(reduced)
# p-value가 < 0.05 이므로 통계적으로 의미가 있음. 수정결정계수: 0.6864
# 단계적 선택방법
ss3 <- step(ss, direction = "both")
formula(ss3)
# 13개의 독립변수로 시작 (AIC값: 1,589.64) --> age변수 제거(AIC값: 1587.65)
# --> indus변수 제거(AIC값: 1,586.75) --> 최종 회귀식