r-如何在循环中计算AIC和BIC



对于同一数据集,我有10个不同的模型,我想比较所有模型的AIC和BIC。

我想创建一个称为模型的字符向量,模型的名称是:

modelsnames = c("model1", "model2",...,"model10")

然后,我想用以下方式计算这两个统计数据:

for ( i in 1:length(models)){
Akaike[i] = AIC(models[i],k = 2)
BIC[i] = BIC(models[i])
}

但我得到了这个错误:

UseMethod中的错误("logLik"(:没有适用于"字符"类对象的"logLik"方法

很明显(或者至少看起来是这样(,我既不能使用字符作为参数调用AIC也不能使用BIC。

如何有效地计算我的模型的AIC和BIC,并将答案存储到一个数组中?对于10个模型,它可以通过复制、粘贴和进行小的更改来快速实现,但一旦模型数量增加,它就会变得非常麻烦。

我们将不胜感激。

Obs.:我也试着创建一个有10个位置的数组,其中每个位置都会链接到我的一个模型,但我也做不到。这就是我手工创建向量模型名称的原因。

models[i]替换为get(models[i])

大多数函数处理数据,而不是名称。使用get,R查找当前环境,并尝试根据通常的规则查找具有该名称的元素。

最新更新