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


31

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

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


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

2

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

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

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

  1. Данные одинаковы в обеих моделях (все равно необходимо сравнение AIC)
  2. Я не забываю что-либо из Stat101 или алгебры средней школы (сильное предположение, учитывая мое текущее потребление кофеина)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.