2

在跨数据框的一个响应变量和几个解释变量之间应用模型后,我想按 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)
4

1 回答 1

1

你应该删除summary这样的

lm_multiple <- lapply(mtcars[,-1], function(x) lm(mtcars$mpg ~ x))
sapply(X = lm_multiple, FUN = AIC)
于 2015-07-07T09:54:52.587 回答