library(tidyverse)
library(caret)
library(leaps)
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)
Call:
lm(formula = Fertility ~ Agriculture + Education + Catholic +
Infant.Mortality, data = swiss)
Residuals:
Min 1Q Median 3Q Max
-14.6765 -6.0522 0.7514 3.1664 16.1422
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 62.10131 9.60489 6.466 8.49e-08 ***
Agriculture -0.15462 0.06819 -2.267 0.02857 *
Education -0.98026 0.14814 -6.617 5.14e-08 ***
Catholic 0.12467 0.02889 4.315 9.50e-05 ***
Infant.Mortality 1.07844 0.38187 2.824 0.00722 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 7.168 on 42 degrees of freedom
Multiple R-squared: 0.6993, Adjusted R-squared: 0.6707
F-statistic: 24.42 on 4 and 42 DF, p-value: 1.717e-10
models <- regsubsets(Fertility~., data = swiss, nvmax = 5,
method = "forward")
summary(models)
Subset selection object
Call: regsubsets.formula(Fertility ~ ., data = swiss, nvmax = 5, method = "forward")
5 Variables (and intercept)
Forced in Forced out
Agriculture FALSE FALSE
Examination FALSE FALSE
Education FALSE FALSE
Catholic FALSE FALSE
Infant.Mortality FALSE FALSE
1 subsets of each size up to 5
Selection Algorithm: forward
Agriculture Examination Education Catholic Infant.Mortality
1 ( 1 ) " " " " "*" " " " "
2 ( 1 ) " " " " "*" "*" " "
3 ( 1 ) " " " " "*" "*" "*"
4 ( 1 ) "*" " " "*" "*" "*"
5 ( 1 ) "*" "*" "*" "*" "*"
# 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 = "leapForward",
tuneGrid = data.frame(nvmax = 1:5),
trControl = train.control
)
step.model$results
step.model$bestTune
summary(step.model$finalModel)
Subset selection object
5 Variables (and intercept)
Forced in Forced out
Agriculture FALSE FALSE
Examination FALSE FALSE
Education FALSE FALSE
Catholic FALSE FALSE
Infant.Mortality FALSE FALSE
1 subsets of each size up to 5
Selection Algorithm: forward
Agriculture Examination Education Catholic Infant.Mortality
1 ( 1 ) " " " " "*" " " " "
2 ( 1 ) " " " " "*" "*" " "
3 ( 1 ) " " " " "*" "*" "*"
4 ( 1 ) "*" " " "*" "*" "*"
5 ( 1 ) "*" "*" "*" "*" "*"
coef(step.model$finalModel, 4)
(Intercept) Agriculture Education Catholic Infant.Mortality
62.1013116 -0.1546175 -0.9802638 0.1246664 1.0784422
lm(Fertility ~ Agriculture + Education + Catholic + Infant.Mortality,
data = swiss)
Call:
lm(formula = Fertility ~ Agriculture + Education + Catholic +
Infant.Mortality, data = swiss)
Coefficients:
(Intercept) Agriculture Education Catholic Infant.Mortality
62.1013 -0.1546 -0.9803 0.1247 1.0784
LS0tDQp0aXRsZTogIkhvamEgZGUgVHJhYmFqbyAjIDYgRmlhYmlsaWRhZCAtIE9zY2FyIFBhZGlsbGEiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoNCg0KYGBge3J9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoY2FyZXQpDQpsaWJyYXJ5KGxlYXBzKQ0KbGlicmFyeShNQVNTKQ0KIyBGaXQgdGhlIGZ1bGwgbW9kZWwgDQpmdWxsLm1vZGVsIDwtIGxtKEZlcnRpbGl0eSB+LiwgZGF0YSA9IHN3aXNzKQ0KIyBTdGVwd2lzZSByZWdyZXNzaW9uIG1vZGVsDQpzdGVwLm1vZGVsIDwtIHN0ZXBBSUMoZnVsbC5tb2RlbCwgZGlyZWN0aW9uID0gImJvdGgiLCANCiAgICAgICAgICAgICAgICAgICAgICB0cmFjZSA9IEZBTFNFKQ0Kc3VtbWFyeShzdGVwLm1vZGVsKQ0KbW9kZWxzIDwtIHJlZ3N1YnNldHMoRmVydGlsaXR5fi4sIGRhdGEgPSBzd2lzcywgbnZtYXggPSA1LA0KICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gImZvcndhcmQiKQ0Kc3VtbWFyeShtb2RlbHMpDQojIFNldCBzZWVkIGZvciByZXByb2R1Y2liaWxpdHkNCnNldC5zZWVkKDEyMykNCiMgU2V0IHVwIHJlcGVhdGVkIGstZm9sZCBjcm9zcy12YWxpZGF0aW9uDQp0cmFpbi5jb250cm9sIDwtIHRyYWluQ29udHJvbChtZXRob2QgPSAiY3YiLCBudW1iZXIgPSAxMCkNCiMgVHJhaW4gdGhlIG1vZGVsDQpzdGVwLm1vZGVsIDwtIHRyYWluKEZlcnRpbGl0eSB+LiwgZGF0YSA9IHN3aXNzLA0KICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSAibGVhcEZvcndhcmQiLCANCiAgICAgICAgICAgICAgICAgICAgdHVuZUdyaWQgPSBkYXRhLmZyYW1lKG52bWF4ID0gMTo1KSwNCiAgICAgICAgICAgICAgICAgICAgdHJDb250cm9sID0gdHJhaW4uY29udHJvbA0KICAgICAgICAgICAgICAgICAgICApDQpzdGVwLm1vZGVsJHJlc3VsdHMNCnN0ZXAubW9kZWwkYmVzdFR1bmUNCnN1bW1hcnkoc3RlcC5tb2RlbCRmaW5hbE1vZGVsKQ0KY29lZihzdGVwLm1vZGVsJGZpbmFsTW9kZWwsIDQpDQpsbShGZXJ0aWxpdHkgfiBBZ3JpY3VsdHVyZSArIEVkdWNhdGlvbiArIENhdGhvbGljICsgSW5mYW50Lk1vcnRhbGl0eSwgDQogICBkYXRhID0gc3dpc3MpDQpgYGANCg0KDQo=