【发布时间】:2015-09-24 17:54:35
【问题描述】:
在跨数据框的一个响应变量和多个解释变量之间应用模型后,我想按 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)
但这对我不起作用,我收到此警告消息。
使用方法中的错误(“logLik”):
没有适用于“summary.lm”类对象的“logLik”方法
这是原始问题的答案...
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)
【问题讨论】:
-
这个练习是徒劳的。 AIC 对于比较适合同一数据集的嵌套模型很有用。您的模型没有嵌套。
-
@Roland 感谢您的评论,有什么替代方案? p 值?在我的数据集中,我有大量 (>100) 解释变量
-
我不知道你为什么要这样做。您可能应该在 stats.stackexchange.com 上询问。
-
stats.stackexchange.com/questions/160294/… 谢谢,其实我刚放完,这里可能更清楚。
标签: r model-comparison