Misure ripetute ANOVA con lme / lmer in R per due fattori all'interno del soggetto


19

Sto cercando di utilizzare lmedal nlmepacchetto per replicare i risultati da aovANOVA per misure ripetute. L'ho fatto per un esperimento di misure ripetute a fattore singolo e per un esperimento a due fattori con un fattore tra soggetti e un fattore tra soggetti, ma ho difficoltà a farlo per un esperimento a due fattori con due all'interno -soggetti fattori.

Di seguito è mostrato un esempio. Ae Bsono fattori a effetto fisso ed subjectè un fattore a effetto casuale.

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

Non ho potuto vedere una spiegazione di questo nel libro Pinheiro e Bates, ma potrei averlo trascurato.

Risposte:


15

Quello a cui ti stai adattando aovsi chiama trama a strisce ed è difficile da adattare lmeperché gli effetti casuali subject:Ae subject:Bsono incrociati.

Il tuo primo tentativo è equivalente a aov(Y ~ A*B + Error(subject), data=d), che non include tutti gli effetti casuali; il tuo secondo tentativo è l'idea giusta, ma la sintassi per effetti casuali incrociati usando lme è molto complicata.

Usando lmedal nlmepacchetto, il codice sarebbe

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

Usando lmerdal lme4pacchetto, il codice sarebbe qualcosa di simile

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

Questi thread di R-help possono essere utili (e per dare credito, ecco da dove ho ottenuto il nlmecodice).

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/r-help@stat.math.ethz.ch/msg10843.html

Quest'ultimo collegamento si riferisce a p.165 di Pinheiro / Bates; anche questo può essere utile.

EDIT: Nota anche che nel set di dati che hai, alcuni componenti della varianza sono negativi, il che non è consentito usando effetti casuali con lme, quindi i risultati differiscono. È possibile creare un set di dati con tutti i componenti di varianza positiva utilizzando un seme di 8. I risultati concordano. Vedi questa risposta per i dettagli.

Si noti inoltre che lmeda nlmenon calcolare correttamente i gradi di libertà del denominatore, quindi gli F-statistiche sono d'accordo, ma non i valori di p, e lmerda lme4non provare troppo perché è molto difficile in presenza di effetti casuali non bilanciati incrociate, e non può anche essere una cosa sensata da fare. Ma questo è più di quello che voglio entrare qui.


Aaron, non credo che il tuo codice lmer sia corretto. Il aovrichiamo dei PO è semplicemente un modello standard di misure ripetute, che si analizzerebbe con lmer lmer(Y~A*B+(1|subject)). (Anche se vedi anche questa risposta per modelli più complicati che consentono di stimare la varianza e le correlazioni degli effetti attraverso gli S: stats.stackexchange.com/questions/13166/rs-lmer-cheat-sheet/… )
Mike Lawrence,

4
La chiamata aov dell'OP ha tre effetti casuali; replicarlo con il lmermio codice sopra è corretto. Il tuo lmercodice ha un solo effetto casuale. Quale è corretto dipenderà dal contesto.
Aaron - Ripristina Monica il

Si noti inoltre che la risposta a cui si è collegati non contiene esempi di effetti casuali incrociati.
Aaron - Ripristina Monica il

6

Il tuo primo tentativo è la risposta corretta se è tutto ciò che stai cercando di fare. nlme () risolve i componenti tra e all'interno, non è necessario specificarli.

Il problema che stai incontrando non è perché non sai come specificare il modello, è perché le misure ripetute ANOVA e gli effetti misti non sono la stessa cosa. A volte i risultati dell'ANOVA e del modello di effetti misti corrisponderanno. Questo è particolarmente vero quando aggreghi i tuoi dati come faresti per un ANOVA e calcoli entrambi da quello. Ma generalmente, se fatto correttamente, mentre le conclusioni possono essere simili, i risultati non sono quasi mai gli stessi. I tuoi dati di esempio non sono come reali misure ripetute in cui spesso si hanno repliche di ogni misura all'interno di S. Quando si esegue un ANOVA, in genere si aggregano tra tali repliche per ottenere una stima dell'effetto per ciascun soggetto. Nella modellazione di effetti misti non fai nulla del genere. Lavori con i dati grezzi. Quando lo fai tu '

[a parte, usando lmer () (dal pacchetto lme4) invece di lme () mi danno valori SS e MS che corrispondono esattamente all'ANOVA per gli effetti nel tuo esempio, è solo che le F sono diverse]


1
Credo che se tutto è bilanciato, il risultato usando un modello misto (cioè ottenere stime con ML o REML) e il risultato usando un ANOVA (cioè ottenere stime con momenti) sarà quasi identico. Il problema in questo caso è la sintassi per ottenere lo stesso modello adatto usando entrambi i metodi.
Aaron - Ripristina Monica il

Non sono sicuro di ciò che stai cercando di realizzare. Sembrava che stessi solo cercando di imparare a replicare i risultati per capire meglio la relazione. Quello che vuoi fare non può essere fatto con nlme. Ho appena guardato lmer e non è nemmeno possibile lì (anche se almeno riporta la MS per i tuoi effetti in modo identico all'ANOVA). Se vuoi risultati ANOVA, fai semplicemente un ANOVA. Con i dati reali, eseguiti correttamente, i due non sono quasi mai esattamente gli stessi.
Giovanni

1
Si noti inoltre che il primo tentativo non è corretto perché non tiene correttamente conto degli effetti casuali incrociati.
Aaron - Ripristina Monica il

1
John, grazie per la tua risposta. La mia ragione per farlo è che ho letto da qualche parte su questo sito che le misure ripetute ANOVA non sono generalmente raccomandate più, con i modelli a effetti misti preferiti. Per qualche ragione avevo l'impressione che i due metodi avrebbero dato gli stessi risultati per un design equilibrato, e stavo cercando di confermarlo.
mark999,

Aaron, l'ho presa come la risposta corretta a ciò che sarebbe considerato approssimativamente equivalente. È in genere ciò che è raccomandato come primo passo nella replica di misure ripetute. Non esiste un 'corretto' come nella corrispondenza perfetta. L'aggiunta di più effetti casuali non risolverà il problema. Prendo atto che una delle risposte a cui fai riferimento raccomanda la soluzione che hai scritto. Tuttavia, non è assolutamente diverso un risultato ANOVA (il modello è diverso ma non ANOVA) rispetto a quello che ho detto che era corretto. Ho il sospetto che l'autore stesse cercando di abbinare ciò che l'OP stava chiedendo, ma non è un modello ragionevole.
Giovanni,
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.