Para mi investigación actual, estoy usando el método Lasso a través del paquete glmnet en R en una variable dependiente binomial.
En glmnet, el lambda óptimo se encuentra a través de la validación cruzada y los modelos resultantes se pueden comparar con varias medidas, por ejemplo, error de clasificación errónea o desviación.
Mi pregunta: ¿Cómo se define exactamente la desviación en glmnet? ¿Cómo se calcula?
(En el documento correspondiente "Rutas de regularización para modelos lineales generalizados a través del descenso coordinado" de Friedman et al. Solo encuentro este comentario sobre la desviación utilizada en cv.glmnet: "desviación media (menos el doble de la probabilidad de registro a la izquierda) datos) "(p. 17)).
glm
(o al menos, debería ser, solo hay una definición de desviación que conozco).Respuestas:
En Friedman, Hastie y Tibshirani (2010) , la desviación de un modelo binomial, con el propósito de validación cruzada, se calcula como
Dado que este es el documento citado en la documentación para
glmnet
(en las páginas 2 y 5), esa es probablemente la fórmula utilizada en el paquete.Y, de hecho, en el código fuente de la función
cvlognet
, los residuos de desviación para la respuesta se calculan comodónde
predmat
es simplementey pasó de la
cv.glmnet
función envolvente . Utilicé el código fuente disponible en la página JStatSoft para el documento , y no sé qué tan actualizado está ese código. El código para este paquete es sorprendentemente simple y legible; siempre puede verificarlo usted mismo escribiendoglmnet:::cv.glmnet
.fuente
Además de la respuesta de @shadowtalker, cuando estaba usando el paquete glmnet, siento que la desviación en la validación cruzada de alguna manera está normalizada.
Ref: documento de desviación R
porque si hago la división,
el resultado es
que está muy cerca del ajuste $ cvm.
Esto puede ser lo que dijo el comentario de @Hong Ooi sobre esta pregunta:
/programming/43468665/poisson-deviance-glmnet
fuente