Как рассчитать AIC в R (включая примеры)


Информационный критерий Акаике (AIC) — это показатель, который используется для сравнения соответствия нескольких регрессионных моделей.

Он рассчитывается как:

АИК = 2К – 2 лн (Л)

куда:

  • K: Количество параметров модели. Значение K по умолчанию равно 2, поэтому модель только с одной переменной-предиктором будет иметь значение K, равное 2+1 = 3.
  • ln (L) : логарифмическая вероятность модели. Большинство статистических программ могут автоматически рассчитать это значение для вас.

AIC предназначен для поиска модели, которая объясняет наибольшую изменчивость данных, и наказывает модели, использующие чрезмерное количество параметров.

После подбора нескольких регрессионных моделей можно сравнить значение AIC каждой модели. Чем ниже AIC, тем лучше подходит модель.

Чтобы вычислить AIC нескольких регрессионных моделей в R, мы можем использовать функцию aictab() из пакета AICcmodavg .

В следующем примере показано, как использовать эту функцию для расчета и интерпретации AIC для различных моделей регрессии в R.

Пример: расчет и интерпретация AIC в R

Предположим, мы хотели бы подобрать три разные модели множественной линейной регрессии, используя переменные из набора данных mtcars .

Вот переменные-предикторы, которые мы будем использовать в каждой модели:

  • Переменные-предикторы в модели 1: disp, hp, wt, qsec.
  • Переменные-предикторы в модели 2: disp, qsec
  • Переменные-предикторы в модели 3: disp, wt

В следующем коде показано, как подобрать каждую из этих моделей регрессии:

#fit three models
model1 <- lm(mpg ~ disp + hp + wt + qsec, data = mtcars)
model2 <- lm(mpg ~ disp + qsec, data = mtcars)
model3 <- lm(mpg ~ disp + wt, data = mtcars)

Затем мы поместим модели в список и воспользуемся функцией aictab() для расчета AIC каждой модели:

library (AICcmodavg)

#define list of models
models <- list(model1, model2, model3)

#specify model names
mod.names <- c('disp.hp.wt.qsec', 'disp.qsec', 'disp.wt')

#calculate AIC of each model
aictab(cand.set = models, modnames = mod.names)

Model selection based on AICc:

 K AICc Delta_AICc AICcWt Cum.Wt LL
disp.hp.wt.qsec 6 162.43 0.00 0.83 0.83 -73.53
disp.wt 4 165.65 3.22 0.17 1.00 -78.08
disp.qsec 4 173.32 10.89 0.00 1.00 -81.92

Вот как интерпретировать вывод:

  • K: Количество параметров в модели.
  • AICc: значение AIC модели. Строчная буква «с» указывает на то, что AIC был рассчитан на основе AIC с поправкой на небольшие размеры выборки.
  • Delta_AICc: разница между AIC лучшей модели по сравнению с текущей сравниваемой моделью.
  • AICcWt: Доля общей прогностической способности, которую можно найти в модели.
  • Cum.Wt : Суммарная сумма весов AIC.
  • LL: Логарифмическое правдоподобие модели. Это говорит нам, насколько вероятна модель, учитывая данные, которые мы использовали.

Модель с наименьшим значением AIC всегда указывается первой. Из вывода видно, что следующая модель имеет наименьшее значение AIC и, следовательно, является наиболее подходящей моделью:

миль на галлон = β 0 + β 1 (расход) + β 2 (л.с.) + β 3 (масса) + β 4 (qsec)

После того, как мы определили эту модель как лучшую, мы можем приступить к подбору модели и проанализировать результаты, включая значение R-квадрата и бета-коэффициенты, чтобы определить точную взаимосвязь между набором переменных-предикторов и переменной отклика .

Дополнительные ресурсы

Как выполнить простую линейную регрессию в R
Как выполнить множественную линейную регрессию в R
Как рассчитать скорректированный R-квадрат в R
Как рассчитать Cp Маллоуса в R