Interpretación de gráficos de traza variable LASSO

15

Soy nuevo en el glmnetpaquete y todavía no estoy seguro de cómo interpretar los resultados. ¿Podría alguien ayudarme a leer el siguiente diagrama de seguimiento?

El gráfico se estaba obteniendo ejecutando lo siguiente:

library(glmnet)
return <- matrix(ret.ff.zoo[which(index(ret.ff.zoo)==beta.df$date[2]), ])
data   <- matrix(unlist(beta.df[which(beta.df$date==beta.df$date[2]), ][ ,-1]), 
                 ncol=num.factors)
model  <- cv.glmnet(data, return, standardize=TRUE)

op <- par(mfrow=c(1, 2))
plot(model$glmnet.fit, "norm",   label=TRUE)
plot(model$glmnet.fit, "lambda", label=TRUE)
par(op)

ingrese la descripción de la imagen aquí

Mayou
fuente

Respuestas:

20

En ambas parcelas, cada línea de color representa el valor tomado por un coeficiente diferente en su modelo. Lambda es el peso dado al término de regularización (la norma L1), por lo que cuando lambda se acerca a cero, la función de pérdida de su modelo se acerca a la función de pérdida de OLS. Aquí hay una forma en que podría especificar la función de pérdida LASSO para hacer esto concreto:

βlunsso=argmin [RSS(β)+λNorma L1(β)]

Por lo tanto, cuando lambda es muy pequeño, la solución LASSO debe estar muy cerca de la solución OLS, y todos sus coeficientes están en el modelo. A medida que crece lambda, el término de regularización tiene un mayor efecto y verá menos variables en su modelo (porque cada vez más coeficientes serán de valor cero).

Como mencioné anteriormente, la norma L1 es el término de regularización para LASSO. Quizás una mejor manera de verlo es que el eje x es el valor máximo permitido que puede tomar la norma L1 . Entonces, cuando tienes una pequeña norma L1, tienes mucha regularización. Por lo tanto, una norma L1 de cero da un modelo vacío y, a medida que aumenta la norma L1, las variables "entrarán" en el modelo a medida que sus coeficientes tomen valores distintos de cero.

El diagrama de la izquierda y el diagrama de la derecha básicamente le muestran lo mismo, solo en diferentes escalas.

David Marx
fuente
2
Muy buena respuesta, gracias! ¿Es posible deducir los "mejores predictores" de los gráficos anteriores, es decir, un modelo final?
Mayou
44
No, necesitará una validación cruzada o algún otro procedimiento de validación para eso; le dirá qué valor de la norma L1 (o equivalente, qué log (lambda)) produce el modelo con la mejor capacidad predictiva.
JAW
11
Si está tratando de determinar sus predictores más fuertes, podría interpretar la gráfica como evidencia de que las variables que ingresan al modelo temprano son las más predictivas y las variables que ingresan al modelo más tarde son menos importantes. Si desea el "mejor modelo", generalmente se encuentra a través de la validación cruzada. Aquí se le sugirió un método común para lograr esto usando el paquete glmnet : stats.stackexchange.com/a/68350/8451 . Le recomiendo encarecidamente que lea el breve capítulo de Lasso en ESLII (3.4.2 y 3.4.3), que se puede descargar gratis: www-stat.stanford.edu/~tibs/ElemStatLearn
David Marx
@David Marx, ¿a qué se refieren los números en la parte superior de la trama? cómo elegir el mejor modelo mediante validación cruzada.
jeza
@DavidMarx ha pasado un tiempo, pero para cualquiera que se pregunte esto, ese es el número de coeficientes en ese peso que no tienen valor cero.
Ian Belcher