R Regression: stepwise regression essentials
Jump to navigation
Jump to search
# Ref: http://www.sthda.com/english/articles/37-model-selection-essentials-in-r/154-stepwise-regression-essentials-in-r/
library(tidyverse) library(caret) library(leaps)
# Computing stepwise regression library(MASS) # Fit the full model full.model <- lm(Fertility ~., data = swiss) # Stepwise regression model step.model <- stepAIC(full.model, direction = "both", trace = FALSE) summary(step.model)
models <- regsubsets(Fertility~., data = swiss, nvmax = 5, method = "seqrep") summary(models)
# Set seed for reproducibility set.seed(123) # Set up repeated k-fold cross-validation train.control <- trainControl(method = "cv", number = 10) # Train the model step.model <- train(Fertility ~., data = swiss, method = "leapBackward", tuneGrid = data.frame(nvmax = 1:5), trControl = train.control ) step.model$results
# best tuning values (nvmax) step.model$bestTune
summary(step.model$finalModel)
# regression coefficients of the final model (id = 4) coef(step.model$finalModel, 4) lm(Fertility ~ Agriculture + Education + Catholic + Infant.Mortality, data = swiss)
# ALTERNATIVE library(MASS) res.lm <- lm(Fertility ~., data = swiss) step <- stepAIC(res.lm, direction = "both", trace = FALSE) step
# Train the model step.model <- train(Fertility ~., data = swiss, method = "lmStepAIC", trControl = train.control, trace = FALSE ) # Model accuracy step.model$results # Final model coefficients step.model$finalModel # Summary of the model summary(step.model$finalModel)