Можно сравнить модели множественной регрессии с использованием оценок AIC.

Можно ли сравнить модели множественной регрессии, используя оценки AIC, с моделями, упорядоченными от наиболее поддерживаемых до наименее поддерживаемых?

Вот мой код

 library(data.table)

 Regressions<- 
 data.table(February)[, 
                      .(Lm = lapply(.SD, function(x) summary(lm(February$PPNA ~ February$Acum1 + x)))),
                      .SDcols = 80:157]

person Pablo    schedule 07.04.2020    source источник
comment
да, это работает, потому что я могу исправить нужные мне переменные, но я не могу сравнивать модели регрессии, используя оценки AIC. Я хочу ранжировать модели и могу это сделать, это моя проблема   -  person Pablo    schedule 07.04.2020


Ответы (1)


Мы можем извлечь значения AIC и order на основе значений AIC.

library(data.table)
dt <- as.data.table(February)
dt1 <- dt[, .(Lm = lapply(.SD, function(x) lm(February$PPNA ~ February$Acum1 + x))),
          .SDcols = 80:157]
dt2 <-  dt1[, .(Lm = Lm[order(unlist(lapply(Lm, AIC)))])]

Или используя воспроизводимый пример

dt1 <- as.data.table(iris)[, .(Lm = lapply(.SD, function(x) 
          lm(iris$Petal.Length ~ iris$Species + x)))]
dt2 <-  dt1[, .(Lm = Lm[order(unlist(lapply(Lm, AIC)))])]
person akrun    schedule 07.04.2020
comment
Я пробую и то, и другое, и когда вы нажимаете на dt2 в глобальной среде, он дает вам следующее обширное list (coefficients = c ( (Перехват) = .... не значение AIC для каждой регрессии - person Pablo; 07.04.2020
comment
@Pablo Для меня это дает AIC - person akrun; 07.04.2020