Regresión lineal multivariante con lazo en r

9

Estoy tratando de crear un modelo reducido para predecir muchas variables dependientes (DV) (~ 450) que están altamente correlacionadas.

Mis variables independientes (IV) también son numerosas (~ 2000) y altamente correlacionadas.

Si utilizo el lazo para seleccionar un modelo reducido para cada salida individualmente, no tengo la garantía de obtener el mismo subconjunto de variables independientes a medida que recorro cada variable dependiente.

¿Existe una regresión lineal multivariada que use el lazo en R?

Esto no es un lazo grupal. lazo grupal agrupa el IV. Quiero una regresión lineal multivariada (es decir, el DV es una matriz, no un vector de escalares), que también implementa lazo. (Nota: como señala NRH, esto no es cierto. Lazo grupal es un término general que incluye estrategias que agrupan el IV, pero también incluye estrategias que agrupan otros parámetros como el DV)

Encontré este artículo que se mete en algo llamado Lazo de conjuntos superpuestos dispersos

Aquí hay un código que hace regresión lineal multivariante

> dim(target)
[1] 6060  441
> dim(dictionary)
[1] 6060 2030
> fit = lm(target~dictionary)

Aquí hay un código que enlaza en un solo DV

> fit = glmnet(dictionary, target[,1])

Y esto es lo que me gustaría hacer:

> fit = glmnet(dictionary, target)
Error in weighted.mean.default(y, weights) : 
  'x' and 'w' must have the same length

Seleccionar funciones que se ajusten a TODOS los objetivos a la vez

kmace
fuente
No está claro lo que está preguntando, excepto en el último punto. Se llama al paquete glmnety tiene una viñeta completa.
generic_user
¿Qué quieres decir con "cada vez"? ¿Está ejecutando esto en subconjuntos de sus datos? ¿Validación cruzada? Diferentes muestras?
shadowtalker
Por cada vez, quiero decir que actualmente estoy ejecutando glmnet en una sola variable dependiente a la vez, y recorriendo todas ellas
kmace
O, en otras palabras, mi y siempre es un vector, no una matriz
kmace
1
@ Firebug absolutamente. No sabía que el término era más general. Perdón por eso
kmace

Respuestas:

11

Para respuestas multivariadas (número de variables dependientes mayores que 1), necesita family = "mgaussian"en la llamada de glmnet.

El paquete lsgl es una alternativa, que proporciona una penalización más flexible.

k

j=1pβj2

βj=(βj1,,βjk)Tjglmnet

El primero [ family = "mgaussian"] permite que se ajuste un modelo gaussiano de respuesta múltiple, utilizando una penalización de "grupo -solado" en los coeficientes para cada variable. Unir las respuestas de esta manera se denomina aprendizaje "multitarea" en algunos dominios.

Esta penalización es un ejemplo de penalización de lazo de grupo, que agrupa parámetros para las diferentes respuestas que están asociadas al mismo predictor. Resulta en la selección de los mismos predictores en todas las respuestas para un valor dado del parámetro de ajuste.

El paquete lsgl implementa penalizaciones de lazo de grupo disperso de la forma donde y son ciertos pesos elegidos para equilibrar las contribuciones de los diferentes términos. El valor predeterminado es y . El parámetro es un parámetro de ajuste. Con (y ) la penalización es equivalente a la penalización utilizada por with . Con (y

αj=1pl=1kξjl|βjl|+(1α)j=1pγjβj2

ξjlγjξjl=1 α[0,1]α=0γj=1α=1ξ j l =1γj=kα[0,1]α=0γj=1glmnetfamily = "mgaussian"α=1ξjl=1) la pena da un lazo ordinario. La implementación de lsgl también permite una agrupación adicional de los predictores.

Una nota sobre el lazo grupal. El término lazo grupal a menudo se asocia con una agrupación de predictores. Sin embargo, desde un punto de vista más general, el lazo grupal es simplemente una agrupación de parámetros en la penalización. La agrupación utilizada por glmnetwith family = "mgaussian"es una agrupación de parámetros a través de las respuestas. El efecto de tal agrupación es acoplar la estimación de los parámetros a través de las respuestas, lo que resulta ser una buena idea, si todas las respuestas pueden predecirse a partir del mismo conjunto de predictores. La idea general de acoplar múltiples problemas de aprendizaje, que se espera que compartan alguna estructura, se conoce como aprendizaje de tareas múltiples .

NRH
fuente