Eu tenho seis variáveis dependentes (dados de contagem) e várias variáveis independentes, vejo que em um MMR o script é assim:
my.model <- lm(cbind(DV1,DV2,DV3,DV4,DV5,DV6) ~ IV1 + IV2 + ... + IVn)
Mas, como meus dados são contados, quero usar um modelo linear generalizado e tentei o seguinte:
my.model <- glm(cbind(DV1,DV2,DV3,DV4,DV5,DV6) ~ IV1 + IV2 + ... + IVn, family="poisson")
E aparece esta mensagem de erro:
Error in glm.fit(x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, :
(subscript) logical subscript too long`
Alguém pode me explicar essa mensagem de erro ou uma maneira de resolver meu problema?
lm
quando você fornece uma matriz?lm(cbind(DV1,DV2,DV3,DV4,DV5,DV6) ~ IV1 + IV2 + ... + IVn)
Devolm(cbind(DV1,DV2,DV3,DV4,DV5,DV6) ~ IV1 + IV2 + ... + IVn)
Devo usar o comando manova () como este:summary(manova(my.model))
para fazer uma análise multivariada de variância e ver o significado de cada variável independente. Esse é o objetivo final.summary
eles o fornecerá para cada DV.Respostas:
A resposta curta é que
glm
não funciona assim. Elelm
criarámlm
objetos se você fornecer uma matriz, mas isso não é amplamente suportado nos genéricos e, de qualquer maneira, não poderia ser generalizado facilmente,glm
porque os usuários precisam poder especificar variáveis dependentes de coluna dupla para modelos de regressão logística.A solução é ajustar os modelos separadamente. Suponha que seus IVs e DVs morem em um data.frame chamado
dd
e sejam rotulados da maneira que estão na sua pergunta. O código a seguir faz uma lista de modelos ajustados indexados pelo nome da variável dependente que eles usam:Para examinar os resultados, basta agrupar suas funções usuais em a
lapply
, assim:Não há dúvida de maneiras mais elegantes de fazer isso no R, mas isso deve funcionar.
fonte
Disseram-me que existem modelos lineares generalizados multivariados (mistos) que tratam do seu problema. Eu não sou especialista nisso, mas gostaria de dar uma olhada na documentação do SABRE e neste livro sobre GLMs multivariados. Talvez eles ajudem ...
fonte
lm
uma matriz para uma variável dependente provavelmente deve ser visto mais como açúcar sintático do que como expressão de um modelo multivariado: se fosse um modelo multivariado (normal), seria aquele onde os erros seriam ' esférico ', ou seja, aquele em que você poderia executar regressões separadas em cada elemento da variável dependente e obter a mesma resposta.