La función R cv.glm (biblioteca: arranque) calcula el error estimado de predicción de validación cruzada K-fold para modelos lineales generalizados y devuelve delta. ¿Tiene sentido usar esta función para una regresión de lazo (biblioteca: glmnet) y, de ser así, ¿cómo se puede llevar a cabo? La biblioteca glmnet utiliza una validación cruzada para obtener el mejor parámetro de giro, pero no encontré ningún ejemplo que valide la ecuación glmnet final.
r
regression
cross-validation
lasso
glmnet
kalakaru
fuente
fuente

Respuestas:
Un ejemplo sobre cómo hacer una validación cruzada simple para el lazo en
glmnetelmtcarsconjunto de datos.Cargar conjunto de datos.
Preparar características (variables independientes). Deberían ser de
matrixclase. La forma más fácil de convertir quedfcontiene variables categóricasmatrixes a través demodel.matrix. Eso sí, por defecto seglmnetajusta a la intercepción, por lo que será mejor que elimine la intercepción de la matriz del modelo.Preparar respuesta (variable dependiente). Codifiquemos los automóviles con un promedio superior
mpgal eficiente ('1') y el resto como ineficiente ('0'). Convierta esta variable en factor.Ejecute la validación cruzada a través de
cv.glmnet. Se recogeráalpha=1de losglmnetparámetros predeterminados , que es lo que solicitó: regresión de lazo.Al examinar el resultado de la validación cruzada, puede estar interesado en al menos 2 piezas de información:
lambda, que minimiza el error de validación cruzada.
glmneten realidad proporciona 2 lambdas:lambda.minylambda.1se. Es su criterio, como estadístico en ejercicio, cuál usar.coeficientes regularizados resultantes.
Consulte el código R según las instrucciones anteriores:
Comentarios finales:
tenga en cuenta que la salida del modelo no dice nada sobre la significación estadística de los coeficientes, solo valores.
l1 penalizer (lazo), que solicitó, es notorio por la inestabilidad como se evidencia en esta publicación de blog y esta pregunta de intercambio de pila . Una mejor manera podría ser la validación cruzada
alphatambién, lo que le permitiría decidir sobre la combinación adecuada de penalizadores l1 y l2.una forma alternativa de hacer una validación cruzada podría ser recurrir a caret's
train( ... method='glmnet')y finalmente, la mejor manera de aprender más
cv.glmnety sus valores predeterminados provienen, porglmnetsupuesto,?glmnetde la consola de R)))fuente