Простой пример работы с mtcars
данными с mpg
в качестве зависимой переменной и коллекцией AIC для выбора модели.Я согласен, что существует множество пакетов R для тестирования нескольких моделей по некоторому критерию (bestglm
, leaps
, glmulti
, MASS
).
mtcars_exp <- mtcars %>%
select(-mpg)
vars <- ggm::powerset(names(mtcars_exp), sort = T, nonempty = T)
results <- data.frame(AIC_lm_fit = vector("numeric"),
model = vector("character"))
Для петли для подгонки линейных моделей
for (j in 1:length(vars)){
lm_fit <- lm(mpg ~ ., data = mtcars[,c("mpg", vars[[j]])])
results <- rbind(results,
data.frame(AIC_lm_fit = AIC(lm_fit),
model = toString(vars[[j]])))
}
Выбор модели с минимальным AIC
results[AIC_lm_fit==min(AIC_lm_fit),]
AIC_lm_fit model
105 154.1194 wt, qsec, am
Сравнение с результатами функции MASS :: stepAIC
library(MASS)
lm_fit <- lm(mpg ~ ., data = mtcars)
lm_fit_2 <- stepAIC(lm_fit)
lm_fit_2$call
lm(formula = mpg ~ wt + qsec + am, data = mtcars)