[R] Help please! How to code a mixed-model with 2 within-subject factors using lme or lmer?

roberto toro rto at psychology.nottingham.ac.uk
Sun Sep 14 14:20:02 CEST 2008


Hello,

I'm using aov() to analyse changes in brain volume between males and
females. For every subject (there are 331 in total) I have 8 volume
measurements (4 different brain lobes and 2 different tissues
(grey/white matter)). The data looks like this:

Subject	Sex	Lobe	Tissue	Volume
subect1	1	F	g	262374
subect1	1	F	w	173758
subect1	1	O	g	67155
subect1	1	O	w	30067
subect1	1	P	g	117981
subect1	1	P	w	85441
subect1	1	T	g	185241
subect1	1	T	w	83183
subect2	1	F	g	255309
subect2	1	F	w	164335
subect2	1	O	g	71769
subect2	1	O	w	31879
subect2	1	P	g	120518
subect2	1	P	w	90334
subect2	1	T	g	168413
subect2	1	T	w	75790
subect3	0	F	g	243621
subect3	0	F	w	167025
subect3	0	O	g	65998
subect3	0	O	w	29758
subect3	0	P	g	118026
subect3	0	P	w	91903
subect3	0	T	g	156279
subect3	0	T	w	82349
....

I'm trying to see if there is an interaction Sex*Lobe*Tissue. This is
the command I use with aov():
       mod1<-aov(Volume~Sex*Lobe*Tissue+Error(Subject/(Lobe*Tissue)),data.vslt)

Subject is a random effect, Sex, Lobe and Tissue are fixed effects;
Sex is an outer factor (between subjects), and Lobe and Tissue are
inner factors (within-subjects); and there is indeed a significant
3-way interaction.

I was told, however, that the results reported by aov() may depend on
the order of the factors
(type I anova), and that is better to use lme() or lmer() with type
II, but I'm struggling to find the right syntaxis...

To begin, how should I write the model using lme() or lmer()??

I tried this with lme():
        gvslt<-groupedData(Volume~1|Subject,outer=~Val,inner=list(~Lobe,~Tissue),data=vslt)
        mod2<-lme(Volume~Val*Lobe*Tissue,random=~1|Subject,data=gvslt)

but I have interaction terms for every level of Lobe and Tissue, and 8
times the number of DF I should have... (around 331*8 instead of
~331).

Using lmer(), the specification of Subject as a random effect is
straightforward:

        mod2<-lmer(Volume~Sex*Lobe*Tissue+(1|Subject),data.vslt)

but I can't figure out the /(Lobe*Tissue) part...

Thank you very much in advance!
roberto



More information about the R-help mailing list