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?


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.