Verificando suposições lmer / lme modelos mistos em R

25

Executei um projeto repetido, no qual testei 30 homens e 30 mulheres em três tarefas diferentes. Quero entender como o comportamento de homens e mulheres é diferente e como isso depende da tarefa. Eu usei o pacote lmer e o lme4 para investigar isso, no entanto, estou tentando verificar suposições para qualquer um dos métodos. O código que eu corro é

lm.full <- lmer(behaviour ~ task*sex + (1|ID/task), REML=FALSE, data=dat)
lm.full2 <-lme(behaviour ~ task*sex, random = ~ 1|ID/task, method="ML", data=dat)

Verifiquei se a interação era o melhor modelo comparando-o com o modelo mais simples sem a interação e executando uma anova:

lm.base1 <- lmer(behaviour ~ task+sex+(1|ID/task), REML=FALSE, data=dat)
lm.base2 <- lme(behaviour ~ task+sex, random= ~1|ID/task), method="ML", data=dat)
anova(lm.base1, lm.full)
anova(lm.base2, lm.full2)

P1: É aceitável usar esses preditores categóricos em um modelo misto linear?
P2: Eu entendi corretamente que a variável de resultado ("comportamento") não precisa ser distribuída normalmente (por sexo / tarefas)?
Q3: Como posso verificar a homogeneidade da variação? Para um modelo linear simples, eu uso plot(LM$fitted.values,rstandard(LM)). O uso é plot(reside(lm.base1))suficiente?
Q4: para verificar a normalidade está usando o seguinte código ok?

hist((resid(lm.base1) - mean(resid(lm.base1))) / sd(resid(lm.base1)), freq = FALSE); curve(dnorm, add = TRUE)
crazjo
fonte
Uma coisa que notei também é que a versão do lme4 que eu estava usando não era a mais recente e, portanto, o gráfico simples (myModel.lm) não funcionou, talvez seja útil para outros leitores saberem ..
crazjo

Respostas:

26

Q1: Sim - como qualquer modelo de regressão.

P2: Assim como os modelos lineares gerais, sua variável de resultado não precisa ser normalmente distribuída como uma variável univariada. No entanto, os modelos LME assumem que os resíduos do modelo são normalmente distribuídos. Portanto, uma transformação ou adição de pesos ao modelo seria uma maneira de cuidar disso (e verificar com gráficos de diagnóstico, é claro).

Q3: plot(myModel.lme)

Q4: qqnorm(myModel.lme, ~ranef(., level=2)). Este código permitirá que você faça gráficos de QQ para cada nível dos efeitos aleatórios. Os modelos LME assumem que não apenas os resíduos dentro do cluster são normalmente distribuídos, mas que cada nível dos efeitos aleatórios também. Varie levelde 0, 1 a 2 para que você possa verificar o rato, a tarefa e os resíduos dentro do assunto.

EDIT: Devo acrescentar que, embora a normalidade seja assumida e que a transformação provavelmente ajude a reduzir problemas com erros / efeitos aleatórios não normais, não está claro que todos os problemas sejam realmente resolvidos ou que o viés não seja introduzido. Se seus dados exigirem uma transformação, tenha cuidado com a estimativa dos efeitos aleatórios. Aqui está um artigo abordando isso .

Moose
fonte
Obrigado pela sua resposta. Gostaria de compartilhar meu conjunto de dados e script para análise, incluindo a saída, para ver se o que eu fiz está realmente correto. É possível na troca de pilhas? Além disso, acho que corri o fator aleatório errado (1 | rato / tarefa), não deveria ser apenas (1 | rato)? Testei 60 ratos (30 de cada sexo) em três tarefas.
28913 crazjo
9
Eu tentei o código do quarto trimestre recentemente e recebi um erro sobre o objeto do tipo 'S4' não subconfigurável. Esse código foi destinado a modelos que se encaixam no pacote lme? E o lme4?
emudrak
Em relação ao quarto trimestre, as pessoas que fazem essas parcelas precisam ter em mente que o N de cada parcela produzida será substancialmente menor que o total e, portanto, as parcelas serão muito mais variáveis. Não espere que eles pareçam tão consistentemente distribuídos normalmente quanto o geral.
John
14

Você parece bastante enganado sobre as suposições que envolvem modelos de vários níveis. Não há uma suposição de homogeneidade de variação nos dados, apenas que os resíduos devem ser aproximadamente normalmente distribuídos. E preditores categóricos são usados ​​em regressão o tempo todo (a função subjacente em R que executa uma ANOVA é o comando de regressão linear).

Para detalhes sobre o exame de suposições, consulte o livro Pinheiro e Bates (p. 174, seção 4.3.1). Além disso, se você planeja usar o lme4 (no qual o livro não está escrito), você pode replicar seus gráficos usando plot com um lmermodelo ( ?plot.merMod).

Para verificar rapidamente a normalidade, seria apenas qqnorm(resid(myModel)).

John
fonte
Obrigado por seu comentário. Você sugere o uso do lmer sobre o método lme4? E estou certo ao entender que a variável de resposta não precisa ser normalmente distribuída? Terei uma leitura adequada do livro de Pinheiro e Bates.
28913 crazjo
Além disso, você tem certeza de que funciona qqnorm (resid (myModel)) em um modelo misto com vários fatores funciona?
crazjo
A função mais recente tem mais recursos e maior desempenho. Você já tentou o qqnorm? Siga o conselho no início do livro sobre como lê-lo.
John
O enredo que eu tinha inicialmente parecia estranho, possivelmente porque eu realmente não tinha a versão mais recente do lmer. Obrigado por observar isso, agora funciona conforme necessário.
crazjo
12

Em relação ao Q2:

De acordo com o livro de Pinheiro e Bates, você pode usar a seguinte abordagem:

"A lmefunção permite modelar a heteroscesdasticidade do grupo dentro do erro por meio de um weightsargumento. Este tópico será abordado em detalhes no § 5.2, mas, por enquanto, basta saber que a varIdentestrutura da função de variação permite diferentes variações para cada nível de um fator e pode ser usado para se ajustar ao modelo heterocedástico [...] "

Pinheiro e Bates, p. 177

Se você deseja verificar variações iguais entre sexsi, use esta abordagem:

plot( lm.base2, resid(., type = "p") ~ fitted(.) | sex,
  id = 0.05, adj = -0.3 )

Se as variações forem diferentes, você poderá atualizar seu modelo da seguinte maneira:

lm.base2u <- update( lm.base2, weights = varIdent(form = ~ 1 | sex) )
summary(lm.base2u)

Além disso, você pode dar uma olhada na robustlmmembalagem, que também usa uma abordagem de pesagem. A tese de doutorado de Koller sobre esse conceito está disponível como acesso aberto ("Estimativa Robusta de Modelos Mistos Lineares"). O resumo declara:

"Uma nova estimativa de escala, a estimativa da Adaptive Scale, é desenvolvida com o objetivo de fornecer uma base sólida para testes robustos subsequentes. Isso o faz equalizando a heterocedasticidade natural dos resíduos e ajustando a equação de estimativa robusta para a própria escala. Essas correções adaptativas do projeto são cruciais em pequenas configurações de amostra, onde o número de observações pode ser apenas cinco vezes o número de parâmetros a serem estimados ou menos. "



Não tenho pontos suficientes para comentários. No entanto, vejo a necessidade de esclarecer alguns aspectos da resposta de @John acima. Pinheiro e Bates afirmam na p. 174:

Suposição 1 - os erros dentro do grupo são independentes e distribuídos de forma idêntica, com média de zero e variância σ2, e são independentes dos efeitos aleatórios.

Essa afirmação não é de fato clara sobre variações homogêneas e eu não sou suficientemente aprofundado em estatística para conhecer todas as matemáticas por trás do conceito LME. No entanto, na p. 175, §4.3.1, na seção que trata da Assunção 1, eles escrevem:

Nesta seção, nos concentramos em métodos para avaliar a suposição de que os erros dentro do grupo são normalmente distribuídos, centrados em zero e com variação constante .

Além disso, nos exemplos a seguir, " variações constantes " são realmente importantes. Assim, pode-se especular se eles implicam variações homogêneas quando escrevem " distribuição idêntica normalmente" na p. 174 sem abordá-lo mais diretamente.

ToJo
fonte
-6

Q1: Sim, por que não?

P2: Acho que o requisito é que os erros sejam normalmente distribuídos.

Q3: Pode ser testado com o teste de Leven, por exemplo.

user12719
fonte