在跨数据框的一个响应变量和几个解释变量之间应用模型后,我想按 AIC 分数对每个模型进行排名。我遇到了一个非常相似的问题,它正是我想做的。 在模型列表上使用 lapply,但它似乎对我不起作用,我不知道为什么。这是使用 mtcars 数据集的示例:
lm_multiple <- lapply(mtcars[,-1], function(x) summary(lm(mtcars$mpg ~ x)))
来自上述链接的批准答案建议:
sapply(X = lm_multiple, FUN = AIC)
但这对我不起作用,我收到此警告消息。
UseMethod(“logLik”)中的错误:
没有适用于“logLik”的方法应用于“summary.lm”类的对象
这是原始问题的答案...
x <- seq(1:10)
y <- sin(x)^2
model.list <- list(model1 = lm(y ~ x),
model2 = lm(y ~ x + I(x^2) + I(x^3)))
sapply(X = model.list, FUN = AIC)