He descubierto cómo realizar la conversión requerida.
Suponga que las entradas están estandarizadas (media cero, varianza unitaria) y las respuestas están centradas.Xy
Sabemos que el algoritmo LARS modificado proporciona la ruta completa de regularización de LASSO, cf. documento original de Efron et al .
Esto significa que, en cada iteración , el algoritmo anterior encuentra una pareja óptima minimizando la función de pérdida regularizada:
k(β∗,λ∗)
(β∗,λ∗)L ( β, λ )=argmin( β, λ )L ( β, λ )= ∥ y- Xβ∥22+ λ ∥ β∥1=∑i = 1norte(yyo-∑j = 1pagsβjXyo j)2+ λ∑j = 1pagsEl |βjEl |
Para todos los componentes activos en el conjunto activo
al final del paso , la aplicación de la condición de estacionariedad KKT da
a = { 1 , . . . , q}UNAkk
0 0=∂L∂βuna(β∗,λ∗)= - 2∑i = 1norteXyo un(yyo-∑j = 1qβ∗jXyo j) +λ∗ signo (β∗una)
En otras palabras,
o en anotaciones matriciales (notando que dividir / multiplicar por es el mismo) la siguiente ecuación se cumple para cualquier componente activo :
λ∗= 2∑nortei = 1Xyo un(yyo-∑qj = 1β∗jXyo j)signo (β∗una)
signo ( x )unaλ∗= 2 signo ( β∗una)XTunar
En el artículo original, los autores mencionan que para cualquier solución al problema LASSO, el signo de un peso de regresión activo ( ) debe ser idéntico al signo de la correlación del predictor activo correspondiente con el residuo de regresión actual ( ), que es solo lógica ya que debe ser positivo. Así también podemos escribir:β∗unaXTunarλ∗
λ∗= 2 |XTunar |
Además, vemos que en el paso final (ajuste OLS, ), obtenemos debido al lema de ortogonalidad. El uso de la mediana en la implementación de MATLAB que encontré en mi humilde opinión parece un esfuerzo por 'promediar' los errores numéricos sobre todos los componentes activos:kβ∗= (XTX)- 1XTyλ∗= 0
λ∗= mediana ( 2 |XTUNAkrUNAkEl | ) , ∀ k > 1
Para calcular el valor de cuando no hay componentes activos (paso ), se puede usar el mismo truco que el anterior pero en el límite infinitesimal donde todos los pesos de regresión son cero y solo el signo del primer componente convertirá activo (en el paso ) importa. Esto produce:λk = 1sik = 2
λ∗= 2 signo ( β∗si)XTsiy
que es estrictamente equivalente a
λ∗= max ( 2 |XTyEl | ) , para k = 1
porque (i) la misma observación que antes sobre el signo de los pesos de regresión; (ii) el algoritmo LARS determina el siguiente componente para ingresar al conjunto activo como el que está más correlacionado con el residual actual , que en el paso es simplemente .sik = 1y