【发布时间】:2017-12-28 11:59:28
【问题描述】:
我正在尝试寻找 AIC 最低的模型。模型从两个 for 循环中返回,这些循环可以组合列。我无法制作具有最低 AIC 的函数返回模型。下面的代码演示了我卡在哪里:
rm(list = ls())
data <- iris
data <- data[data$Species %in% c("setosa", "virginica"),]
data$Species = ifelse(data$Species == 'virginica', 0, 1)
mod_headers <- names(data[1:ncol(data)-1])
f <- function(mod_headers){
for(i in 1:length(mod_headers)){
tab <- combn(mod_headers,i)
for(j in 1:ncol(tab)){
tab_new <- c(tab[,j])
mod_tab_new <- c(tab_new, "Species")
model <- glm(Species ~., data=data[c(mod_tab_new)], family = binomial(link = "logit"))
}
}
best_model <- model[which(AIC(model)[order(AIC(model))][1])]
print(best_model)
}
f(mod_headers)
有什么建议吗?谢谢!
【问题讨论】:
标签: r for-loop glm model-comparison