Это пример данных.
ind1 <- rnorm(99)
ind2 <- rnorm(99)
ind3 <- rnorm(99)
ind4 <- rnorm(99)
ind5 <- rnorm(99)
dep <- rnorm(99, mean=ind1)
group <- rep(c("A", "B", "C"), each=33)
df <- data.frame(dep,group, ind1, ind2, ind3, ind4, ind5)
Здесь простая линейная регрессионная модель была установлена для каждой комбинации переменных в df после группировки по категориальной переменной.Результатом доволен.Но мои исходные данные имеют более 5 переменных.Трудно увидеть и сравнить результаты в этом списке.Поэтому я хотел бы выбрать 5 лучших моделей для каждой группы из результирующего списка (tibble_list) на основе значения AIC.Буду очень признателен, если кто-нибудь поможет мне в этом.
indvar_list <- lapply(1:5, function(x)
combn(paste0("ind", 1:5), x, , simplify = FALSE))
formulas_list <- rapply(indvar_list, function(x)
as.formula(paste("dep ~", paste(x, collapse="+"))))
run_model <- function(f) {
df %>%
nest(-group) %>%
mutate(fit = map(data, ~ lm(f, data = .)),
results1 = map(fit, glance),
results2 = map(fit, tidy)) %>%
unnest(results1) %>%
unnest(results2) %>%
select(group, term, estimate, r.squared, p.value, AIC) %>%
mutate(estimate = exp(estimate))
}
tibble_list <- lapply(formulas_list, run_model)
tibble_list