He estado implementando la versión GLMNET de red elástica para regresión lineal con otro software que no sea R. Comparé mis resultados con la función R glmnet en modo lazo con datos de diabetes .
La selección de variables está bien cuando se varía el valor del parámetro (lambda) pero obtengo valores de coeficientes ligeramente diferentes. Por esta y otras razones, creo que proviene de la intercepción en el ciclo de actualización, cuando calculo el ajuste actual, porque no varío la intercepción (que tomo como la media de la variable objetivo) en todo el algoritmo: como explicado en el artículo de Trevor Hastie ( Rutas de regularización para modelos lineales generalizados a través del descenso coordinado , página 7, sección 2.6):
la intersección no está regularizada, [...] para todos los valores de [...] lambda [el parámetro de restricción L1]
Pero a pesar del artículo, la función R glmnet proporciona diferentes valores para la intercepción a lo largo de la ruta de regularización (los diferentes valores lambda). ¿Alguien tiene idea de cómo se calculan los valores de la intercepción?
glmnet
. Ellos usan lo mismoCreo que aquí es donde te estás equivocando: a diferencia del modelo lineal, no puedes volver a parametrizar los predictores de modo que siempre sean ortogonales a la intersección, por lo tanto, la intersección no puede calcularse simplemente como la media.
fuente