2013-11-21 25 views
41

Ho dati fisiologici all'interno dei partecipanti (part), che hanno tutti guardato gli stimoli (leggendo i giornali) su tre round (round), che ciascuno ha cinque documenti (paper), e all'interno di ciascuno vi è un numero variabile di visite (visit) sul giornale. Ho due fattori fissi (CONDhier e CONDabund) più interazione per prevedere lo stato fisiologico (ad esempio, EDA), che di solito è autoregressivo. Provo a prendere in considerazione le differenze individuali di fisiologia con effetti casuali (accontentiamoci di intercettare solo per ora), e forse la stanchezza sui round con un altro effetto casuale.Modello misto lineare con effetti ripetuti incrociati e struttura di covarianza AR1, in R

Così, il mio modello che vorrei per l'esecuzione in R sarebbe, in SPSS:

MIXED EDA BY CONDhier CONDabund 
/FIXED=CONDhier CONDabund CONDhier*CONDabund | SSTYPE(3) 
/RANDOM=INTERCEPT | SUBJECT(part) COVTYPE(VC) 
/RANDOM=INTERCEPT | SUBJECT(part*round) COVTYPE(VC) 
/PRINT=SOLUTION 
/METHOD=REML 
/REPEATED=visit | SUBJECT(part*round*paper) COVTYPE(AR1). 

Ora, ho capito che mentre lme non fa bene termini incrociate, lmer (che gestisce termini incrociate senza problemi) non può usare differenti strutture di covarianza. Posso eseguire semplici modelli lme come

lme(EDA ~ factor(CONDhier) * factor(CONDabund), random= ~1 
    |part, na.action=na.exclude, data=phys2) 

ma un modello più complicato è oltre me. Ho letto che i termini incrociate in LME può essere fatto con le definizioni casuali come

random=pdBlocked(list(pdCompSymm(~part), pdCompSymm(~round-1), pdCompSymm(~paper-1), 
pdCompSymm(~visit-1))) 

ma che sembra bloccare la struttura AR1, e il secondo intercetta casuale per parte * tondo, da me. E non sono così sicuro che sia lo stesso della mia sintassi SPSS comunque.

Quindi, qualche consiglio? Sebbene ci siano molti scritti diversi su lme e lmer, non sono riuscito a trovarne uno che avrebbe entrambi i termini incrociati e AR1.

(Inoltre, la sintassi su lme sembra abbastanza oscura: da diverse fonti ho capito che | gruppi cosa è a sinistra sotto ciò che è a destra, che/fa termini nidificati, che ~ 1 è intercetta a caso, ~ x è una pendenza casuale, e ~ 1 + x è entrambe, ma sembra esserci almeno: e -1 definizioni che non sono riuscito a trovare da nessuna parte. Esiste un tutorial che spiegherebbe tutte le diverse definizioni?)

+2

non completo, ma per un po 'di più sulla sintassi del modello misto R, vedere http://glmm.wikidot.com/faq#modelspec –

+0

Grazie! (+ filler come commenti deve avere almeno 15 caratteri di lunghezza ...) – RandomMonitor

+4

Hai ragione che 'lme4' non ha strutture a" R-side "(autocorrelazione) (e probabilmente per un po 'resteremo sommersi).Non sono sicuro (un esempio riproducibile sarebbe bello), ma tu * potresti * volere qualcosa come 'random = pdBlocked (list (pdCompSymm (~ part-1), pdCompSymm (~ round-1), pdCompSymm (~ paper: round), pdCompSymm (~ visita: paper: round))) ... e non vedo proprio cosa intendi per "bloccare la struttura AR". Potresti volere 'correlation = corAR1()' (anche se potresti avere ragione nel dire che non funziona). AD Model Builder/JAGS/BUGS/Stan (build-your-own) sono gli unici strumenti open source che conosco per questo –

risposta

1

Considera il pacchetto R MCMCglmm che consente modelli di effetti misti complessi.

https://cran.r-project.org/web/packages/MCMCglmm/vignettes/CourseNotes.pdf

Anche se può essere difficile da implementare, può risolvere i problemi che hai avuto. Permette che le formule di effetti fissi e casuali vengano fornite separatamente, ad es.

fixed <- formula(EDA ~ CONDhier * CONDabund) 
rand <- formula(~(us(1+ CONDhier):part + us(1+ CONDhier):round + us(1+ CONDhier):paper + us(1+ CONDhier):visit)) 

La struttura della covarianza tra gli effetti casuali sono indicati coefficienti che possono essere esaminate utilizzando summary() sull'oggetto MCMCglmm una volta che il modello è stato eseguito.

+0

Grazie, ci proverò la prossima volta ne ho bisogno. – RandomMonitor