Estou tentando criar um modelo reduzido para prever muitas variáveis dependentes (DV) (~ 450) que são altamente correlacionadas.
Minhas variáveis independentes (IV) também são numerosas (~ 2000) e altamente correlacionadas.
Se eu usar o laço para selecionar um modelo reduzido para cada saída individualmente, não tenho a garantia de obter o mesmo subconjunto de variáveis independentes que faço um loop sobre cada variável dependente.
Existe uma regressão linear multivariada que usa o laço em R?
Este não é um laço de grupo. grupo laço agrupa o IV. Eu quero regressão linear multivariada (o que significa que o DV é uma matriz, não um vetor de escalares), que também implementa o laço. (Nota: como NRH aponta, isso não é verdade. Laço de grupo é um termo geral que inclui estratégias que agrupam o IV, mas também inclui estratégias que agrupam outros parâmetros, como o DV)
Eu encontrei este artigo que entra em algo chamado Sparse Overlapping Sets Lasso
Aqui está um código que faz regressão linear multivariada
> dim(target)
[1] 6060 441
> dim(dictionary)
[1] 6060 2030
> fit = lm(target~dictionary)
Aqui está um código que faz um laço em um único DV
> fit = glmnet(dictionary, target[,1])
E é isso que eu gostaria de fazer:
> fit = glmnet(dictionary, target)
Error in weighted.mean.default(y, weights) :
'x' and 'w' must have the same length
Selecionando recursos que atendem a TODOS os alvos de uma só vez
fonte
glmnet
e possui uma vinheta completa.Respostas:
Para respostas multivariadas (número de variáveis dependentes maiores que 1), você precisa
family = "mgaussian"
na chamada deglmnet
.O pacote lsgl é uma alternativa, que fornece uma penalidade mais flexível.
glmnet
Essa penalidade é um exemplo de penalidade de laço em grupo, que agrupa parâmetros para as diferentes respostas associadas ao mesmo preditor. Isso resulta na seleção dos mesmos preditores em todas as respostas para um determinado valor do parâmetro de ajuste.
O pacote lsgl implementa penalidades esparsas de laço de grupo no formato que e são determinados pesos escolhidos para equilibrar as contribuições dos diferentes termos. O padrão é e . O parâmetro é um parâmetro de ajuste. Com (e ) a penalidade é equivalente à penalidade usada com . Com (e
glmnet
family = "mgaussian"
Uma observação sobre o laço do grupo. O termo laço de grupo é frequentemente associado a um agrupamento de preditores. No entanto, de um ponto de vista mais geral, o laço de grupo é simplesmente um agrupamento de parâmetros na penalidade. O agrupamento usado por
glmnet
comfamily = "mgaussian"
é um agrupamento de parâmetros nas respostas. O efeito desse agrupamento é acoplar a estimativa dos parâmetros entre as respostas, o que acaba sendo uma boa idéia, se todas as respostas puderem ser previstas a partir do mesmo conjunto de preditores. A idéia geral de acoplar vários problemas de aprendizado, que se espera que compartilhem alguma estrutura, é conhecida como aprendizado de múltiplas tarefas .fonte