¿LASSO sufre los mismos problemas que la regresión gradual?

18

Los métodos de selección de variables algorítmicas escalonadas tienden a seleccionar modelos que sesgan más o menos todas las estimaciones en los modelos de regresión ( β y sus SE, valores p , estadísticas F , etc.), y tienen la misma probabilidad de excluir predictores verdaderos como incluir predictores falsos de acuerdo con una literatura de simulación razonablemente madura.

¿El LASSO sufre de las mismas formas específicas cuando se usa para seleccionar variables?

Alexis
fuente
3
Creo que si. Frank Harrell tiene algunas publicaciones sobre eso, creo, y podría haber material relevante en su libro "Estrategias de modelado de regresión".
Richard Hardy
2
@RichardHardy +1 Me encantaría que FrankHarrell pasara y comentara o respondiera. :)
Alexis
55
Tengo una nueva charla que aborda esto. En pocas palabras: el lazo tiene una baja probabilidad de seleccionar las variables "correctas". Las diapositivas están en fharrell.com/talk/stratos19
Frank Harrell
44
Relacionado con "En pocas palabras: el lazo tiene una baja probabilidad de seleccionar las variables" correctas ": hay una sección sobre el mismo tema en Estadística de aprendizaje con dispersión ( web.stanford.edu/~hastie/StatLearnSparsity_files/… ),11.4.1 Variable-Selection Consistency for the Lasso
Adrian
2
También relacionado con "En pocas palabras : el lazo tiene una baja probabilidad de seleccionar las variables" correctas ": ver statweb.stanford.edu/~candes/stats300c/Lectures/Lecture24.pdf casos de estudio 1 y 2
Adrian

Respuestas:

3

La interpretación de probabilidad de las expresiones de verosimilitud frecuentes, los valores de p, etcétera, para un modelo LASSO y la regresión por pasos, no son correctos.

Esas expresiones sobrestiman la probabilidad. Por ejemplo, se supone que un intervalo de confianza del 95% para algún parámetro indica que tiene una probabilidad del 95% de que el método dé como resultado un intervalo con la verdadera variable del modelo dentro de ese intervalo.

Sin embargo, los modelos ajustados no son el resultado de una hipótesis única típica, y en su lugar estamos escogiendo (seleccionamos entre muchos modelos alternativos posibles) cuando hacemos regresión por pasos o regresión LASSO.


  1. Tiene poco sentido evaluar la corrección de los parámetros del modelo (especialmente cuando es probable que el modelo no sea correcto).

    (XTX)1

    X

    Ejemplo: el siguiente gráfico que muestra los resultados de un modelo de juguete para una señal que es una suma lineal de 10 curvas gaussianas (esto puede, por ejemplo, parecerse a un análisis en química en el que una señal para un espectro se considera una suma lineal de varios componentes) La señal de las 10 curvas está equipada con un modelo de 100 componentes (curvas gaussianas con diferente media) usando LASSO. La señal está bien estimada (compare las curvas roja y negra que están razonablemente cerca). Pero, los coeficientes subyacentes reales no están bien estimados y pueden estar completamente equivocados (compare las barras rojas y negras con puntos que no son lo mismo). Ver también los últimos 10 coeficientes:

                  91     91     92     93     94     95     96     97     98     99     100
     true model   0      0      0      0      0      0      0      142.8  0      0      0
     fitted       0      0      0      0      0      0      129.7  6.9    0      0      0

    El modelo LASSO selecciona coeficientes que son muy aproximados, pero desde la perspectiva de los coeficientes mismos significa un gran error cuando se estima que un coeficiente que no debería ser cero es cero y se estima que un coeficiente vecino que debería ser cero distinto de cero Cualquier intervalo de confianza para los coeficientes tendría muy poco sentido.

    Montaje LASSO

    ejemplo lazo / glmnet

    Ajuste gradual

    Como comparación, la misma curva puede ajustarse con un algoritmo paso a paso que conduce a la imagen a continuación. (con problemas similares que los coeficientes están cerca pero no coinciden)

    ejemplo nnls

  2. Incluso cuando considera la precisión de la curva (en lugar de los parámetros, que en el punto anterior queda claro que no tiene sentido), entonces tiene que lidiar con el sobreajuste. Cuando realiza un procedimiento de adaptación con LASSO, utiliza datos de entrenamiento (para ajustar los modelos con diferentes parámetros) y datos de prueba / validación (para ajustar / encontrar cuál es el mejor parámetro), pero también debe usar un tercer conjunto separado de datos de prueba / validación para conocer el rendimiento de los datos.

    Un valor p o algo similar no funcionará porque está trabajando en un modelo ajustado que es muy diferente y (mucho mayor libertad) del método regular de ajuste lineal.


sufre los mismos problemas que tiene la regresión gradual?

R2

Pensé que la razón principal para usar LASSO en lugar de la regresión gradual es que LASSO permite una selección de parámetros menos codiciosa, que está menos influenciada por la multicollinaridad. (más diferencias entre LASSO y paso a paso: superioridad de LASSO sobre la selección hacia adelante / eliminación hacia atrás en términos del error de predicción de validación cruzada del modelo )


Código para la imagen de ejemplo

# settings
library(glmnet)
n <- 10^2        # number of regressors/vectors
m <- 2         # multiplier for number of datapoints
nel <- 10        # number of elements in the model
set.seed(1)   
sig <- 4
t <- seq(0,n,length.out=m*n)

# vectors
X <- sapply(1:n, FUN <- function(x) dnorm(t,x,sig))

# some random function with nel elements, with Poisson noise added
par <- sample(1:n,nel)
coef <- rep(0,n)
coef[par] <- rnorm(nel,10,5)^2
Y <- rpois(n*m,X %*% coef)

# LASSO cross validation
fit <- cv.glmnet(X,Y, lower.limits=0, intercept=FALSE, 
                 alpha=1, nfolds=5, lambda=exp(seq(-4,4,0.1)))
plot(fit$lambda, fit$cvm,log="xy")
plot(fit)
Yfit <- (X %*% coef(fit)[-1])

# non negative least squares 
# (uses a stepwise algorithm or should be equivalent to stepwise)
fit2<-nnls(X,Y)


# plotting
par(mgp=c(0.3,0.0,0), mar=c(2,4.1,0.2,2.1))
layout(matrix(1:2,2),heights=c(1,0.55))


plot(t,Y,pch=21,col=rgb(0,0,0,0.3),bg=rgb(0,0,0,0.3),cex=0.7,
     xaxt = "n", yaxt = "n", 
     ylab="", xlab = "",bty="n")      
#lines(t,Yfit,col=2,lwd=2)                        # fitted mean
lines(t,X %*% coef,lwd=2)                        # true mean
lines(t,X %*% coef(fit2), col=3,lwd=2)           # 2nd fit

  # add coefficients in the plot
for (i in 1:n) {
  if (coef[i] > 0) {
    lines(c(i,i),c(0,coef[i])*dnorm(0,0,sig))
    points(i,coef[i]*dnorm(0,0,sig), pch=21, col=1,bg="white",cex=1)
  }
  if (coef(fit)[i+1] > 0) {
#    lines(c(i,i),c(0,coef(fit)[i+1])*dnorm(0,0,sig),col=2)
#    points(i,coef(fit)[i+1]*dnorm(0,0,sig), pch=21, col=2,bg="white",cex=1)
  }
  if (coef(fit2)[i+1] > 0) {
    lines(c(i,i),c(0,coef(fit2)[i+1])*dnorm(0,0,sig),col=3)
    points(i,coef(fit2)[i+1]*dnorm(0,0,sig), pch=21, col=3,bg="white",cex=1)
  }

}

#Arrows(85,23,85-6,23+10,-0.2,col=1,cex=0.5,arr.length=0.1)
#Arrows(86.5,33,86.5-6,33+10,-0.2,col=2,cex=0.5,arr.length=0.1)
#text(85-6,23+10,"true coefficient", pos=2, cex=0.7,col=1)
#text(86.5-6,33+10, "fitted coefficient", pos=2, cex=0.7,col=2)

text(0,50, "signal versus position\n true mean (black), fitted with nnls (green)", cex=1,col=1,pos=4, font=2)



plot(-100,-100,pch=21,col=1,bg="white",cex=0.7,type="l",lwd=2,
     xaxt = "n", yaxt = "n", 
     ylab="", xlab = "",
     ylim=c(0,max(coef(fit)))*dnorm(0,0,sig),xlim=c(0,n),bty="n") 
#lines(t,X %*% coef,lwd=2,col=2)      

for (i in 1:n) {
  if (coef[i] > 0) {
    lines(t,X[,i]*coef[i],lty=1)
  }
  if (coef(fit)[i+1] > 0) {
#    lines(t,X[,i]*coef(fit)[i+1],col=2,lty=1)
  }
  if (coef(fit2)[i+1] > 0) {
    lines(t,X[,i]*coef(fit2)[i+1],col=3,lty=1)
  }

}

text(0,33, "illustration of seperate components/curves", cex=1,col=1,pos=4, font=2)
Sexto Empírico
fuente
+1 Gracias Martjin Wterings. ¿Puedes amplificar un poco el gráfico? ¿Qué se muestra en los ejes, qué color representa, etc.?
Alexis
En realidad, el gráfico no es un caso de LASSO. Sin embargo, es un ejemplo de cómo un modelo puede ser una suma de varios componentes, digamos curvas gaussianas (donde las curvas con una media ligeramente diferente están muy correlacionadas) y un cambio en la media de esos componentes significa un gran cambio para el coeficiente pero no tanto por la curva.
Sextus Empiricus
1
Las barras son los valores de los coeficientes para el modelo verdadero y el modelo ajustado. Esta es la imagen por la que recuerdo este principio. Haré un ejemplo yo mismo, que puede mostrarlo más claramente (sospecho que LASSO, siendo menos codicioso, podría funcionar algo mejor en la representación de los coeficientes verdaderos).
Sexto Empírico
0

Tengo una nueva charla que aborda esto. En pocas palabras: el lazo tiene una baja probabilidad de seleccionar las variables "correctas". Las diapositivas están en http://fharrell.com/talk/stratos19

- Frank Harrell

Relacionado con "En pocas palabras: el lazo tiene una baja probabilidad de seleccionar las variables" correctas ": hay una sección sobre el mismo tema en Aprendizaje estadístico con escasez ( https://web.stanford.edu/~hastie/StatLearnSparsity_files/SLS_corrected_1. 4.16.pdf ), 11.4.1 Variable-Selection Consistency for the Lasso

- Adrian

También relacionado con "En pocas palabras: el lazo tiene una baja probabilidad de seleccionar las variables 'correctas'": consulte https://statweb.stanford.edu/~candes/stats300c/Lectures/Lecture24.pdf estudios de caso 1 y 2

- Adrian

mkt - Restablecer a Monica
fuente
1
Copié estos comentarios como una respuesta wiki comunitaria porque son, más o menos, respuestas a esta pregunta. Tenemos una brecha dramática entre las respuestas y las preguntas. Al menos parte del problema es que algunas preguntas se responden en los comentarios: si los comentarios que respondieron la pregunta fueran respuestas, tendríamos menos preguntas sin responder.
mkt - Restablece a Monica el
1
Estos son comentarios y, incluso en conjunto, no proporcionan una respuesta según los estándares de CV (por ejemplo, los enlaces no son respuestas). Además: no estoy de acuerdo con hacer una pregunta perfectamente válida en un wiki de la comunidad debido a su propia insatisfacción con la velocidad a la que se responden las preguntas.
Alexis
1
Además: he sido educado sobre el wiki de la comunidad y las respuestas del wiki de la comunidad, y retracto mi desacuerdo allí (aunque todavía no creo que sea una respuesta :).
Alexis
1
@Alexis bastante justo: pensé que era un área gris, pero podría haberlo juzgado mal.
mkt - Restablece a Monica el
1
Todos estamos aprendiendo. :)
Alexis