Qué concluir de esta trama de lazo (glmnet)

19

A continuación se muestra la gráfica de glmnet con alfa predeterminado (1, por lo tanto, lazo) utilizando mtcarsdatos establecidos en R con mpgDV y otros como variables predictoras.

glmnet(as.matrix(mtcars[-1]), mtcars[,1])

ingrese la descripción de la imagen aquí

¿Qué podemos concluir de este gráfico con respecto a las diferentes variables, especialmente am, cyly wt(líneas roja, negra y azul claro)? ¿Cómo expresaríamos el resultado en un informe que se publicará?

Pensé en seguir:

  1. wtes el predictor más importante de mpg. Está afectando negativamente a la mpg.

  2. cyles un débil predictor negativo de mpg.

  3. ampuede ser un predictor positivo de mpg.

  4. Otras variables no son predictores robustos de mpg.

Gracias por sus pensamientos sobre esto.

(Nota: cyles la línea negra que no alcanza 0 hasta muy cerca de ella).

Editar: El siguiente es el diagrama (mod, xvar = 'lambda') que muestra el eje x en orden inverso al diagrama anterior:

ingrese la descripción de la imagen aquí

(PD: Si encuentra esta pregunta interesante / importante, por favor, vote a favor;)

rnso
fuente
Parece que se le olvidó una coma antes -1de glmnet(as.matrix(mtcars[-1]), mtcars[,1]).
Richard Hardy
Si no se da una coma, R asume que el número es el número de columna, por lo que funciona.
rnso
Bien, ahora no lo hice antes.
Richard Hardy
2
@ Richard Hardy ten cuidado; Este comportamiento es diferente para marcos de datos y matrices. Una trama de datos es una lista, y cada columna es un elemento de la lista, por lo que my_data_frame[1]devuelve una trama de datos con una columna, mientras que my_data_frame[[1]]y my_data_frame[, 1]tanto la rentabilidad como un vector que es no "contenido" de una trama de datos. Matrices, sin embargo, son en realidad acaba de vectores planas con un atributo especial que permite el acceso de I a ellos como una rejilla, por lo que my_matrix[1], my_matrix[1, 1]y my_matrix[[1]]todos volveremos el primer elemento de my_matrix. my_matrix[, 1] devuelve la primera columna.
shadowtalker
2
Solo menciono que la función plot_glmnet en el paquete plotmo proporciona gráficos de coeficientes ligeramente mejores porque se ocupa de la superposición de etiquetas y algunos otros detalles. Se pueden encontrar ejemplos en el Capítulo 6 en la viñeta de plotres .
Stephen Milborrow el

Respuestas:

39

λlog(λ)i|βi|

Con ese fin, creé algunos datos correlacionados y no correlacionados para demostrar:

x_uncorr <- matrix(runif(30000), nrow=10000)
y_uncorr <- 1 + 2*x_uncorr[,1] - x_uncorr[,2] + .5*x_uncorr[,3]

sigma <- matrix(c(  1, -.5,   0,
                  -.5,   1, -.5,
                    0, -.5,   1), nrow=3, byrow=TRUE
)
x_corr <- x_uncorr %*% sqrtm(sigma)
y_corr <- y_uncorr <- 1 + 2*x_corr[,1] - x_corr[,2] + .5*x_corr[,3]

Los datos x_uncorrtienen columnas no correlacionadas.

> round(cor(x_uncorr), 2)
     [,1]  [,2]  [,3]
[1,] 1.00  0.01  0.00
[2,] 0.01  1.00 -0.01
[3,] 0.00 -0.01  1.00

mientras que x_corrtiene una correlación preestablecida entre las columnas

> round(cor(x_corr), 2)
      [,1]  [,2]  [,3]
[1,]  1.00 -0.49  0.00
[2,] -0.49  1.00 -0.51
[3,]  0.00 -0.51  1.00

Ahora veamos las gráficas de lazo para ambos casos. Primero los datos no correlacionados

gnet_uncorr <- glmnet(x_uncorr, y_uncorr)
plot(gnet_uncorr)

ingrese la descripción de la imagen aquí

Un par de características se destacan

  • Los predictores entran en el modelo en el orden de su magnitud del coeficiente de regresión lineal verdadero.
  • i|βi|i|βi|
  • Cuando un nuevo predictor ingresa al modelo, afecta la pendiente de la ruta del coeficiente de todos los predictores que ya están en el modelo de manera determinista. Por ejemplo, cuando el segundo predictor ingresa al modelo, la pendiente de la ruta del primer coeficiente se reduce a la mitad. Cuando el tercer predictor ingresa al modelo, la pendiente de la ruta del coeficiente es un tercio de su valor original.

Todos estos son hechos generales que se aplican a la regresión de lazo con datos no correlacionados, y todos pueden probarse a mano (¡buen ejercicio!) O encontrarse en la literatura.

Ahora hagamos datos correlacionados

gnet_corr <- glmnet(x_corr, y_corr)
plot(gnet_corr)

ingrese la descripción de la imagen aquí

Puede leer algunas cosas de esta trama comparándolas con el caso no correlacionado

  • Las rutas de predicción primera y segunda tienen la misma estructura que el caso no correlacionado hasta que el tercer predictor ingresa al modelo, aunque estén correlacionadas. Esta es una característica especial del caso de los dos predictores, que puedo explicar en otra respuesta si hay interés, me llevaría un poco más lejos de la discusión actual.
  • |βi|

Así que ahora veamos su trama del conjunto de datos de los autos y leamos algunas cosas interesantes (reproduje su trama aquí, así que esta discusión es más fácil de leer):

Una advertencia : escribí el siguiente análisis basado en el supuesto de que las curvas muestran los coeficientes estandarizados , en este ejemplo no lo hacen. Los coeficientes no estandarizados no son adimensionales y no son comparables, por lo que no se pueden sacar conclusiones de ellos en términos de importancia predictiva. Para que el siguiente análisis sea válido, simule que el gráfico es de los coeficientes estandarizados y realice su propio análisis en las rutas de coeficientes estandarizados.

ingrese la descripción de la imagen aquí

  • Como dices, el wtpredictor parece muy importante. Primero ingresa al modelo y tiene un descenso lento y constante hasta su valor final. Tiene algunas correlaciones que lo hacen un viaje ligeramente irregular, amen particular parece tener un efecto drástico cuando entra.
  • amTambién es importante. Llega más tarde y está correlacionado con él wt, ya que afecta la pendiente de wtuna manera violenta. También está correlacionado con carby qsec, porque no vemos el ablandamiento predecible de la pendiente cuando entran. Después de estas cuatro variables han entrado sin embargo, que vemos el patrón no correlacionado agradable, por lo que parece ser correlacionado con todos los predictores en el extremo.
  • Algo entra alrededor de 2.25 en el eje x, pero su camino en sí es imperceptible, solo puede detectarlo por su efecto en los parámetros cyly wt.
  • cylEs bastante fascinante. Entra en segundo lugar, por lo que es importante para modelos pequeños. Después de otras variables, y especialmente de amingresar, ya no es tan importante, y su tendencia se invierte, y finalmente se elimina. Parece que el efecto de cylpuede ser capturado completamente por las variables que ingresan al final del proceso. Si es más apropiado de usar cyl, o el grupo complementario de variables, realmente depende de la compensación de sesgo-varianza. Tener el grupo en su modelo final aumentaría significativamente su varianza, ¡pero puede ser que el sesgo más bajo lo compense!

Esa es una pequeña introducción a cómo aprendí a leer información de estas tramas. ¡Creo que son muy divertidos!

Gracias por un gran análisis. Para informar en términos simples, diría que wt, am y cyl son los 3 predictores más importantes de mpg. Además, si desea crear un modelo para la predicción, ¿cuáles incluirá según esta figura: wt, am y cyl? O alguna otra combinación. Además, no parece necesitar la mejor lambda para el análisis. ¿No es importante como en la regresión de cresta?

Diría que el caso wty amson claros, son importantes. cyles mucho más sutil, es importante en un modelo pequeño, pero nada relevante en uno grande.

No sería capaz de determinar qué incluir en función de la figura, que realmente debe responderse al contexto de lo que está haciendo. Podría decir que si desea un modelo de tres predictores, entonces wt, amy cylson buenas opciones, ya que son relevantes en el gran esquema de las cosas, y deberían terminar teniendo tamaños de efectos razonables en un modelo pequeño. Sin embargo, esto se basa en el supuesto de que tiene alguna razón externa para desear un pequeño modelo de tres predictores.

Es cierto, este tipo de análisis analiza todo el espectro de lambdas y le permite seleccionar relaciones en una variedad de complejidades del modelo. Dicho esto, para un modelo final, creo que ajustar una lambda óptima es muy importante. En ausencia de otras restricciones, definitivamente usaría la validación cruzada para encontrar dónde está este lambda más predictivo, y luego usaría esa lambda para un modelo final y un análisis final.

λ

En la otra dirección, a veces hay restricciones externas sobre cuán complejo puede ser un modelo (costos de implementación, sistemas heredados, minimalismo explicativo, interpretabilidad comercial, patrimonio estético) y este tipo de inspección realmente puede ayudarlo a comprender la forma de sus datos, y las compensaciones que está haciendo al elegir un modelo más pequeño que óptimo.

Matthew Drury
fuente
Gracias por un gran análisis. Para informar en términos simples, ¿diría que wt, am y cyl son los 3 predictores más importantes de mpg. Además, si desea crear un modelo para la predicción, ¿cuáles incluirá según esta figura: wt, am y cyl? O alguna otra combinación. Además, no parece necesitar la mejor lambda para el análisis. ¿No es importante como en la regresión de cresta?
rnso
@rnso Agregué una respuesta a mi respuesta.
Matthew Drury
¿Quizás se supone que 'patrimonio' ​​es 'parsimonia'?
Hatshepsut
@Matthew Drury, tengo algunas cosas de las que no estoy seguro, le agradecería su aclaración, # escribió "por ejemplo, cuando entra el segundo predictor", ¿cómo puedo saber de la trama los segundos predictores o terceros predictores / ingresa? . ## cuando puedo decir que estos predictores son importantes o no. ### finalmente, ¿cómo puedo elegir el mejor modelo de este accesorio? Además, la leyenda / etiqueta se incluye automáticamente. (He implementado este ejemplo en R)
jeza
55
+6, evidentemente me perdí esto cuando salió. Muy buen trabajo.
gung - Restablece a Monica