Можно ли рассчитать AIC и BIC для моделей лассо-регрессии?

31

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

Я использую R для подбора моделей регрессии Лассо с помощью glmnet()функции из glmnetпакета, и я хотел бы знать, как рассчитать значения AIC и BIC для модели. Таким образом, я мог бы сравнить значения с моделями, подходящими без регуляризации. Возможно ли это сделать?

Jota
источник
1
Да, вы можете сделать это, но это, скорее всего, потребует от вас правильного исправления. Исправление выводится в этой статье ncbi.nlm.nih.gov/pmc/articles/PMC2629611 в контексте моделирования конечных смесей, о которых идет речь , но аналогичного аргумента было бы достаточно в других моделях, подвергнутых наказанию.
Макрос

Ответы:

12

Вы также можете найти следующие документы, представляющие интерес:

RJ Tibshirani и J. Taylor (2011), Степени свободы в задачах лассо , препринт arXiv: 1111.0653 .

Х. Зоу, Т. Хасти и Р. Тибширани (2007), О степенях свободы лассо , Annals of Statistics 35 (5), 2173–2192.

Александра
источник
14
было бы неплохо, если бы в окончательном ответе было немного объяснений;
user4581
10

Я много боролся с тем, как рассчитать AIC и BIC для моделей glmnet. Однако после долгих поисков я нашел ответ на третьей странице Google. Это можно найти здесь . Я публикую его здесь для будущих читателей, так как считаю, что не могу быть единственным.

В итоге я реализовал AIC и BIC следующим образом:

fit <- glmnet(x, y, family = "multinomial") 

tLL <- fit$nulldev - deviance(fit)
k <- fit$df
n <- fit$nobs
AICc <- -tLL+2*k+2*k*(k+1)/(n-k-1)
AICc

BIC<-log(n)*k - tLL
BIC
johnnyheineken
источник
2

В ссылке, на которую ссылается johnnyheineken, автор заявляет:

Боюсь, что двух величин, доступных из объекта glmnet (dev.ratio, nulldev), недостаточно для получения вероятности для модели, которую вам нужно вычислить AICc. У вас есть два уравнения с тремя неизвестными: вероятность (ноль), вероятность (модель) и вероятность (насыщенный). Я не могу получить правдоподобие (модель) от правдоподобия (ноль).

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

  1. Данные одинаковы в обеих моделях (все равно необходимо сравнение AIC)
  2. Я не забываю что-либо из Stat101 или алгебры средней школы (сильное предположение, учитывая мое текущее потребление кофеина)
naturalBlogarithm
источник