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
fuente
glmnet
y tiene una viñeta completa.Respuestas:
Para respuestas multivariadas (número de variables dependientes mayores que 1), necesita
family = "mgaussian"
en la llamada deglmnet
.El paquete lsgl es una alternativa, que proporciona una penalización más flexible.
glmnet
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
glmnet
family = "mgaussian"
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
glmnet
withfamily = "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 .fuente