根据AIC值排列模型列表

时间:2015-07-07 09:51:06

标签: r model-comparison

在数据框架中的一个响应变量和几个exlanatory变量之间应用模型后,我想按AIC分数对每个模型进行排名。 我遇到了一个非常类似的问题,它完全符合我的要求。 Using lapply on a list of models,但它似乎对我不起作用,我不知道为什么。以下是使用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)

1 个答案:

答案 0 :(得分:1)

你应该删除summary这样的

lm_multiple <- lapply(mtcars[,-1], function(x) lm(mtcars$mpg ~ x))
sapply(X = lm_multiple, FUN = AIC)