Sí, una intercepción se incluye en un glmnet modelo, pero no regularizados (cf. La regularización de las Rutas de acceso para los Modelos Lineales Generalizados a través de Coordenadas Descenso, p. 13). Más detalles acerca de la aplicación sin duda podría obtenerse observando detenidamente el código (por una gaussiana de la familia, es la elnet()
función que es llamada por glmnet()
), pero es en Fortran.
Usted podría tratar de la penalizado paquete, que permite la eliminación de la intersección por la que pasaba unpenalized = ~0
a penalized()
.
> x <- matrix(rnorm(100*20),100,20)
> y <- rnorm(100)
> fit1 <- penalized(y, penalized=x, unpenalized=~0,
standardize=TRUE)
> fit2 <- lm(y ~ 0+x)
> plot((coef(fit1) + coef(fit2))/2, coef(fit2)-coef(fit1))
Para obtener Lazo de regularización, podría intentar algo como
> fit1b <- penalized(y, penalized=x, unpenalized=~0,
standardize=TRUE, lambda1=1, steps=20)
> show(fit1b)
> plotpath(fit1b)
Como se puede observar en la siguiente figura, hay pocas diferencias entre los parámetros de regresión calculadas con ambos métodos (a la izquierda), y se puede trazar el Lazo de la ruta solución muy sencilla (a la derecha).