ANOVA de medidas repetidas com lme / lmer em R para dois fatores dentro do sujeito

19

Estou tentando usar lmedo nlmepacote para replicar resultados de aovANOVAs de medidas repetidas. Eu fiz isso para um experimento de medidas repetidas de fator único e para um experimento de dois fatores com um fator entre sujeitos e um fator dentro dos sujeitos, mas estou tendo problemas para fazer isso para um experimento de dois fatores com dois dentro fatores -sujeitos.

Um exemplo é mostrado abaixo. Ae Bsão fatores de efeito fixo e subjecté um fator de efeito aleatório.

set.seed(1)
d <- data.frame(
    Y = rnorm(48),
    subject = factor(rep(1:12, 4)),
    A = factor(rep(1:2, each=24)),
    B = factor(rep(rep(1:2, each=12), 2)))

summary(aov(Y ~ A*B + Error(subject/(A*B)), data=d))  # Standard repeated measures ANOVA

library(nlme)
# Attempts:
anova(lme(Y ~ A*B, data=d, random = ~ 1 | subject))  # not same as above
anova(lme(Y ~ A*B, data=d, random = ~ 1 | subject/(A+B)))  # gives error

Não pude ver uma explicação disso no livro de Pinheiro e Bates, mas posso ter esquecido.

mark999
fonte

Respostas:

15

O que você está se adaptando aové chamado de plotagem de tira e é difícil de se adaptarlme porque os efeitos aleatórios subject:Ae subject:Bsão cruzados.

Sua primeira tentativa é equivalente a aov(Y ~ A*B + Error(subject), data=d) , que não inclui todos os efeitos aleatórios; sua segunda tentativa é a idéia certa, mas a sintaxe para efeitos aleatórios cruzados usando o lme é muito complicada.

Usando lmedo nlmepacote, o código seria

lme(Y ~ A*B, random=list(subject=pdBlocked(list(~1, pdIdent(~A-1), pdIdent(~B-1)))), data=d)

Usando lmerdo lme4pacote, o código seria algo como

lmer(Y ~ A*B + (1|subject) + (1|A:subject) + (1|B:subject), data=d)    

Esses tópicos da R-help podem ser úteis (e, para dar crédito, foi aí que obtive o nlme código).

http://www.biostat.wustl.edu/archives/html/s-news/2005-01/msg00091.html

http://permalink.gmane.org/gmane.comp.lang.r.lme4.devel/3328

http://www.mail-archive.com/[email protected]/msg10843.html

Este último link refere-se à p.165 de Pinheiro / Bates; isso pode ser útil também.

EDIT: Observe também que no conjunto de dados que você possui, alguns dos componentes de variação são negativos, o que não é permitido usando efeitos aleatórios com o lme, portanto os resultados diferem. Um conjunto de dados com todos os componentes de variação positiva pode ser criado usando uma semente de 8. Os resultados então concordam. Veja esta resposta para detalhes.

Observe também que lmefrom nlmenão calcula os graus de liberdade do denominador corretamente, portanto as estatísticas F concordam, mas não os valores p, e lmerfrom lme4também não tenta porque é muito complicado na presença de efeitos aleatórios cruzados desequilibrados e pode não ser até ser uma coisa sensata a se fazer. Mas é mais do que quero entrar aqui.

Aaron - Restabelecer Monica
fonte
Aaron, eu não acho que seu código lmer esteja correto. A aovchamada do OP é simplesmente um projeto padrão de medidas repetidas, que seria analisado com o método mais recente lmer(Y~A*B+(1|subject)). (Embora veja também esta resposta para os modelos mais complicados que permitem a estimativa de across-Ss variância efeito e correlações: stats.stackexchange.com/questions/13166/rs-lmer-cheat-sheet/... )
Mike Lawrence
4
A chamada aov do OP tem três efeitos aleatórios; replicar isso com o lmermeu código acima está correto. Seu lmercódigo tem apenas um efeito aleatório. O que está correto dependerá do contexto.
Aaron - Restabelece Monica
Observe também que a resposta à qual você vinculou não possui exemplos de efeitos aleatórios cruzados.
Aaron - Restabelece Monica
6

Sua primeira tentativa é a resposta correta, se é tudo o que você está tentando fazer. O nlme () elabora os componentes entre e dentro dos componentes, você não precisa especificá-los.

O problema que você está enfrentando não é porque você não sabe como especificar o modelo, é porque medidas repetidas ANOVA e efeitos mistos não são a mesma coisa. Às vezes, os resultados do ANOVA e do modelo de efeitos mistos coincidem. Esse é especialmente o caso quando você agrega seus dados como faria para uma ANOVA e calcula os dois a partir disso. Mas geralmente, quando feitas corretamente, embora as conclusões possam ser semelhantes, os resultados quase nunca são os mesmos. Seus dados de exemplo não são como medidas repetidas reais, nas quais muitas vezes você tem réplicas de cada medida em S. Quando você faz uma ANOVA, geralmente agrega essas réplicas para obter uma estimativa do efeito de cada sujeito. Na modelagem de efeitos mistos, você não faz isso. Você trabalha com os dados brutos. Quando você faz isso, você '

[como um aparte, usando lmer () (do pacote lme4) em vez de lme () me fornece valores SS e MS que correspondem exatamente à ANOVA para efeitos no seu exemplo, é apenas que os F são diferentes]

John
fonte
1
Acredito que se tudo estiver equilibrado, o resultado usando um modelo misto (ou seja, obtendo estimativas com ML ou REML) e o resultado usando uma ANOVA (ou seja, obtendo estimativas com momentos) serão quase idênticos. O problema neste caso é a sintaxe para obter o mesmo modelo usando os dois métodos.
Aaron - Restabelece Monica
Não tenho certeza do que você está tentando realizar. Parecia que você estava apenas tentando aprender a replicar resultados para entender melhor o relacionamento. O que você deseja fazer não pode ser feito com o nlme. Apenas olhei para o lmer e também não é possível (embora pelo menos relate o MS para seus efeitos de forma idêntica à ANOVA). Se você deseja resultados de ANOVA, basta fazer uma ANOVA. Com dados reais, feitos corretamente, os dois quase nunca são exatamente iguais.
John
1
Observe também que a primeira tentativa não está correta porque não leva em consideração os efeitos aleatórios cruzados.
Aaron - Restabelece Monica
1
John, obrigado pela sua resposta. Minha razão para fazer isso foi que li em algum lugar deste site que medidas repetidas ANOVA geralmente não são mais recomendadas, sendo preferidos modelos de efeitos mistos. Por alguma razão, tive a impressão de que os dois métodos dariam os mesmos resultados para um design equilibrado, e estava tentando confirmar isso.
mark999
Aaron, tomei como a resposta correta para o que seria considerado aproximadamente equivalente. Normalmente, é recomendado como um primeiro passo na replicação de medidas repetidas. Não há 'correto' como em combinação perfeita. Adicionar mais efeitos aleatórios não resolverá o problema. Observo que uma das respostas a que você se refere recomenda a solução que você escreveu. No entanto, isso não é um resultado ANOVA absolutamente diferente (o modelo é diferente, mas não ANOVA) do que o que eu disse estava correto. Eu suspeito que o autor estava tentando apenas corresponder ao que o OP estava pedindo, mas não é um modelo sensato.
John