Trayectorias de coeficientes: comparación de cresta, lazo y regresión neta elástica

13

Me gustaría comparar modelos seleccionados con cresta, lazo y red elástica. La figura a continuación muestra las rutas de los coeficientes utilizando los 3 métodos: cresta (Fig. A, alfa = 0), lazo (Fig. B; alfa = 1) y red elástica (Fig. C; alfa = 0.5). La solución óptima depende del valor seleccionado de lambda, que se elige en función de la validación cruzada.

Perfiles de coeficientes para la regresión de cresta (A, alfa = 0), lazo (B, alfa = 1) y red elástica (C, alfa = 0.5).  Los números en la parte superior de la gráfica representan el tamaño de los modelos. La solución óptima depende del valor seleccionado de lambda.  La selección de lambda se basa en la validación cruzada.

Al mirar estas parcelas, esperaría que la red elástica (Fig. C) exhibiera un efecto de agrupación. Sin embargo, no está claro en el caso presentado. La ruta de los coeficientes para el lazo y la red elástica son muy similares. Cuál podría ser la razón de ésto ? ¿Es solo un error de codificación? Usé el siguiente código en R:

library(glmnet)
X<- as.matrix(mydata[,2:22])
Y<- mydata[,23]
par(mfrow=c(1,3))
ans1<-cv.glmnet(X, Y, alpha=0) # ridge
plot(ans1$glmnet.fit, "lambda", label=FALSE)
text (6, 0.4, "A", cex=1.8, font=1)
ans2<-cv.glmnet(X, Y, alpha=1) # lasso
plot(ans2$glmnet.fit, "lambda", label=FALSE)
text (-0.8, 0.48, "B", cex=1.8, font=1)
ans3<-cv.glmnet(X, Y, alpha=0.5) # elastic net 
plot(ans3$glmnet.fit, "lambda", label=FALSE)
text (0, 0.62, "C", cex=1.8, font=1)

El código utilizado para trazar rutas de coeficientes netos elásticos es exactamente el mismo que para cresta y lazo. La única diferencia está en el valor de alfa. El parámetro alfa para la regresión neta elástica se seleccionó en base al MSE más bajo (error cuadrático medio) para los valores lambda correspondientes.

Gracias por tu ayuda !

principiante
fuente

Respuestas:

5

p<npn

Si las características originales no están muy correlacionadas, diría que es razonable que Lasso funcione de manera similar a Elastic Net en términos de ruta de coeficientes. Mirando la documentación del paquete glmnet , tampoco puedo ver ningún error en su código.

skd
fuente
Muchas gracias por tu comentario. Empecé a pensar en el enfoque de regularización para seleccionar el mejor modelo, porque he observado una multicolinealidad severa entre mis variables (VIF >> 10). Muchos de ellos estaban correlacionados a un nivel de> 0.8. Por lo tanto, esperaba que la red elástica tuviera un rendimiento diferente al lazo y mostrara un efecto de agrupación (en el caso de variables correlacionadas).
Principiante
¿Es posible que tenga que usar una penalización de cresta más fuerte?
dcl
¿comprobó la multicolinealidad ajustada df? Las variables de factor tienen normalmente multicolinealidad porque son mutuamente excluyentes. No sé si este tipo de multicolinealidad da problemas con el lazo.
Bakaburg