ANOVA a effetto misto sbilanciato per misure ripetute


17

Ho dati da pazienti trattati con 2 diversi tipi di trattamenti durante l'intervento chirurgico. Devo analizzare i suoi effetti sulla frequenza cardiaca. La misurazione della frequenza cardiaca viene eseguita ogni 15 minuti.

Dato che la lunghezza dell'intervento può essere diversa per ogni paziente, ogni paziente può avere tra 7 e 10 misurazioni della frequenza cardiaca. Quindi dovrebbe essere usato un design sbilanciato. Sto facendo la mia analisi usando R. E ho usato il pacchetto ez per fare ANOVA a effetti misti a misura ripetuta. Ma non so come analizzare i dati sbilanciati. Qualcuno può aiutare?

Sono anche benvenuti suggerimenti su come analizzare i dati.

Aggiornamento:
come suggerito, ho inserito i dati utilizzando la lmerfunzione e ho scoperto che il modello migliore è:

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

con il seguente risultato:

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

Ora sono perso nell'interpretazione del risultato. Ho ragione nel concludere che i due trattamenti differivano nell'influenzare la frequenza cardiaca? Che cosa significa la correlazione di -504 tra treat0 e treat1?


Prima di aggiornare la risposta, il trattamento è un fattore ripetuto? cioè, ogni soggetto riceve sia il trattamento "a" che il trattamento "b" o è un fattore tra soggetti?
Matt Albrecht,

Il trattamento è un fattore tra soggetti. Ogni soggetto riceve solo 1 tipo di trattamento. Ho codificato i due trattamenti come 1 e 0 e impostato il trattamento come variabile fattore.
biostat_newbie,

Risposte:


15

Le funzioni lme / lmer dei pacchetti nlme / lme4 sono in grado di gestire progetti sbilanciati. Dovresti assicurarti che l'ora sia una variabile numerica. Probabilmente vorrai anche testare diversi tipi di curve. Il codice sarà simile al seguente:

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)

Per ottenere modelli quadratici utilizzare la formula "heart.rate ~ trattamento * tempo * I (tempo ^ 2) + (effetti casuali)".

Aggiornamento:
in questo caso in cui il trattamento è un fattore tra soggetti, rimarrei con le specifiche del modello sopra. Non penso che il termine (0 + trattamento | tempo) sia uno che si desidera includere nel modello, per me non ha senso in questo caso trattare il tempo come una variabile di raggruppamento di effetti casuali.

Ma per rispondere alla tua domanda su "cosa significa la correlazione -0.504 tra Treat0 e Treat1 " questo è il coefficiente di correlazione tra i due trattamenti in cui ogni raggruppamento di tempo è una coppia di valori. Ciò ha più senso se id è il fattore di raggruppamento e il trattamento è una variabile all'interno dei soggetti. Quindi hai una stima della correlazione tra le intercettazioni delle due condizioni.

Prima di trarre delle conclusioni sul modello, rimontarlo con lmera.2 e includere REML = F. Quindi caricare il pacchetto "languageR" ed eseguire:

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

Quindi puoi ottenere valori p, ma a quanto sembra, c'è probabilmente un effetto significativo del tempo e un effetto significativo del trattamento.


1
Si dovrebbe impostare l'argomento REML di lmer su FALSE quando si generano quei modelli poiché alla fine verranno confrontati usando la funzione anova ()?
Mike Lawrence,

7
Quando si confrontano i modelli utilizzando i test del rapporto di verosimiglianza, è possibile confrontare diverse strutture di effetti casuali utilizzando REML (verosimiglianza massima limitata / residua, come sopra), ma è necessario utilizzare ML (verosimiglianza massima) per confrontare diversi modelli di effetti fissi .
onestop il

Il tempo non dovrebbe essere un effetto casuale poiché le misurazioni della frequenza cardiaca sono campioni prelevati durante l'intervento chirurgico? In questo caso, avrebbe senso il seguente adattamento (dal momento che sto ancora leggendo la funzione lmer e non ho ancora capito bene la sintassi)? lmer (heart.rate ~ treatment + (1 | id) + (1 + time), data = heart)
biostat_newbie,

1
Il termine '(time | id)' sul lato degli effetti casuali indica alla funzione di adattare pendenze diverse (lineari) per ogni persona. Quindi puoi avere il tempo sia come effetto fisso che come effetto casuale, ma significano cose diverse. Dai un'occhiata all'esempio di sleepstudy nel libro di Douglas Bates: lme4.r-forge.r-project.org/book/Ch4.pdf
Matt Albrecht,

2
Non capisco come lmersia suggerito il disegno di misure ripetute piuttosto che il buon vecchio lme. In tali desgins gli effetti casuali incrociati, la principale forza per lmer, sono rari ma abbastanza spesso si desidera modellare la struttura di correlazione dei residui. Per quanto ho capito, lmernon lo supporta ma lo lmefa. Sbaglio in questi casi lmerè uno strumento inferiore rispetto a lme?
AlefSin
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.