ANOVA de efeito misto desequilibrado para medidas repetidas

17

Eu tenho dados de pacientes tratados com 2 tipos diferentes de tratamentos durante a cirurgia. Eu preciso analisar o seu efeito na frequência cardíaca. A medição da frequência cardíaca é realizada a cada 15 minutos.

Dado que o comprimento da cirurgia pode ser diferente para cada paciente, cada paciente pode ter entre 7 e 10 medições de frequência cardíaca. Portanto, um design desequilibrado deve ser usado. Estou fazendo minha análise usando R. E tenho usado o pacote ez para fazer ANOVA de efeito misto de medidas repetidas. Mas não sei como analisar dados desequilibrados. Alguém pode ajudar?

Sugestões sobre como analisar os dados também são bem-vindas.

Atualização:
conforme sugerido, ajustei os dados usando a lmerfunção e descobri que o melhor modelo é:

heart.rate~ time + treatment + (1|id) + (0+time|id) + (0+treatment|time)

com o seguinte resultado:

Random effects:
 Groups   Name        Variance   Std.Dev. Corr   
 id       time        0.00037139 0.019271        
 id       (Intercept) 9.77814104 3.127002        
 time     treat0      0.09981062 0.315928        
          treat1      1.82667634 1.351546 -0.504 
 Residual             2.70163305 1.643665        
Number of obs: 378, groups: subj, 60; time, 9

Fixed effects:
             Estimate Std. Error t value
(Intercept) 72.786396   0.649285  112.10
time         0.040714   0.005378    7.57
treat1       2.209312   1.040471    2.12

Correlation of Fixed Effects:
       (Intr) time  
time   -0.302       
treat1 -0.575 -0.121

Agora estou perdido na interpretação do resultado. Estou certo ao concluir que os dois tratamentos diferiram em afetar a freqüência cardíaca? O que significa a correlação de -504 entre tratar0 e tratar1?

biostat_newbie
fonte
Antes de atualizar a resposta, o tratamento é um fator repetido? ie, cada sujeito recebe o tratamento "a" e o tratamento "b" ou esse é um fator entre os sujeitos?
Matt Albrecht
O tratamento é um fator entre sujeitos. Cada sujeito recebe apenas 1 tipo de tratamento. Eu codifiquei os dois tratamentos como 1 e 0 e defini o tratamento como uma variável fator.
Biostat_newbie 28/10/10

Respostas:

15

As funções lme / lmer dos pacotes nlme / lme4 são capazes de lidar com projetos desequilibrados. Você deve se certificar de que o tempo é uma variável numérica. Você provavelmente também desejaria testar diferentes tipos de curvas. O código será algo como isto:

library(lme4)
#plot data with a plot per person including a regression line for each
xyplot(heart.rate ~ time|id, groups=treatment, type= c("p", "r"), data=heart)

#Mixed effects modelling
#variation in intercept by participant
lmera.1 <- lmer(heart.rate ~ treatment * time + (1|id), data=heart)
#variation in intercept and slope without correlation between the two
lmera.2 <- lmer(heart.rate ~ treatment * time + (1|id) + (0+time|id), data=heart)
#As lmera.1 but with correlation between slope and intercept
lmera.3 <- lmer(heart.rate ~ treatment * time + (1+time|id), data=heart)

#Determine which random effects structure fits the data best
anova(lmera.1, lmera.2, lmera.3)

Para obter modelos quadráticos, use a fórmula "heart.rate ~ treatment * time * I (time ^ 2) + (efeitos aleatórios)".

Atualização:
Nesse caso, onde o tratamento é um fator entre os sujeitos, eu continuaria com as especificações do modelo acima. Eu não acho que o termo (0 + tratamento | tempo) seja aquele que você deseja incluir no modelo; para mim, não faz sentido nesse caso tratar o tempo como uma variável de agrupamento de efeitos aleatórios.

Mas, para responder à sua pergunta "o que a correlação -0,504 significa entre tratar0 e tratar1 ", este é o coeficiente de correlação entre os dois tratamentos em que cada vez que o agrupamento é um par de valores. Isso faz mais sentido se id for o fator de agrupamento e o tratamento for uma variável dentro dos indivíduos. Então você tem uma estimativa da correlação entre as interceptações das duas condições.

Antes de tirar conclusões sobre o modelo, reinstale-o com lmera.2 e inclua REML = F. Em seguida, carregue o pacote "languageR" e execute:

plmera.2<-pvals.fnc(lmera.2)
plmera.2

Então você pode obter valores-p, mas, pelo que parece, provavelmente há um efeito significativo do tempo e um efeito significativo do tratamento.

Matt Albrecht
fonte
1
Deve-se definir o argumento REML do Lmer como FALSE ao gerar esses modelos, pois eles serão comparados usando a função anova ()?
Mike Lawrence
7
Ao comparar modelos usando testes de razão de verossimilhança, é possível comparar diferentes estruturas de efeitos aleatórios usando REML (verossimilhança máxima restrita / residual, como acima), mas você deve usar ML (verossimilhança máxima) para comparar diferentes modelos de efeitos fixos .
onestop 22/10/10
O tempo não deveria ser um efeito aleatório, uma vez que as medições da frequência cardíaca são amostras colhidas durante a cirurgia? Se for esse o caso, o seguinte ajuste faria sentido (já que ainda estou lendo a função lmer e não entendi bem a sintaxe)? lmer (heart.rate ~ tratamento + (1 | id) + (1 + tempo), data = coração)
biostat_newbie
1
O termo '(time | id)' no lado dos efeitos aleatórios indica à função para ajustar diferentes inclinações (lineares) para cada pessoa. Portanto, você pode ter o tempo como efeito fixo e aleatório, mas eles significam coisas diferentes. Veja o exemplo do estudo do sono no livro de Douglas Bates: lme4.r-forge.r-project.org/book/Ch4.pdf
Matt Albrecht
2
Eu não entendo como, para projetos de medidas repetidas, lmeré sugerido, e não o bom e velho lme. Nesses desgastes, os efeitos aleatórios cruzados, a principal força para lmer, são raros, mas muitas vezes você deseja modelar a estrutura de correlação dos resíduos. Tanto quanto eu entendo lmer, não suporta isso, mas lmesim. Estou errado em assumir que, nesses casos, lmeré uma ferramenta inferior em comparação com lme?
AlefSin