Для моего текущего исследования я использую метод Лассо через пакет glmnet в R для биномиальной зависимой переменной.
В glmnet оптимальная лямбда определяется путем перекрестной проверки, и полученные модели можно сравнивать с различными показателями, например, ошибочной классификацией или отклонением.
Мой вопрос: как именно определяется девиация в glmnet? Как рассчитывается?
(В соответствующей статье «Пути регуляризации для обобщенных линейных моделей с помощью координатного спуска» Фридмана и др. Я нахожу только этот комментарий об отклонении, использованном в cv.glmnet: «среднее отклонение (минус двойное логарифмическое правдоподобие слева»). данные) "(стр. 17)).
glm
(или, по крайней мере, так и должно быть - есть только одно определение девиации, о котором я знаю).Ответы:
В работе Friedman, Hastie и Tibshirani (2010) отклонение биномиальной модели для перекрестной проверки рассчитывается как
Учитывая, что это документ, цитируемый в документации для
glmnet
(на стр. 2 и 5), это, вероятно, формула, использованная в пакете.И действительно, в исходном коде функции
cvlognet
остатки отклонения для ответа рассчитываются какгде
predmat
простои передан из
cv.glmnet
функции включения . Я использовал исходный код, доступный на странице JStatSoft для статьи , и я не знаю, насколько актуален этот код. Код для этого пакета удивительно прост и читабелен; Вы всегда можете проверить сами, набравglmnet:::cv.glmnet
.источник
В дополнение к ответу @shadowtalker, когда я использовал пакет glmnet, я чувствую, что отклонение в перекрестной проверке как-то нормализуется.
Ссылка: девиант R документ
потому что если я сделаю разделение,
результат
что очень близко к подгонке $ cvm.
Это может быть то, что сказал комментарий @Hong Ooi по этому вопросу:
/programming/43468665/poisson-deviance-glmnet
источник