Me gustaría comparar los modelos seleccionados con ridge, lazo y red elástica. Fig. a continuación se muestra los coeficientes de caminos, con todos los 3 métodos: ridge (Fig Una, alfa=0), lazo (Fig B; alfa=1) y una 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.
Cuando se busca en estas parcelas, yo esperaría que la red elástica (Fig C) exhibir una agrupación efecto. Sin embargo, no está claro en el caso presentado. Los coeficientes de ruta para el lazo y red elástica son muy similares. ¿Cuál podría ser la razón para esto ? Es simplemente un error de codificación ? He utilizado 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 una red elástica de los coeficientes de los caminos es exactamente el mismo que el de la cadena y lazo. La única diferencia está en el valor de alfa. Parámetro alfa de red elástica de regresión fue seleccionada en base a la menor MSE (error cuadrático medio) de los correspondientes valores de lambda.
Gracias por su ayuda !