[R-sig-ME] Question on mixed model design to analyze microarray data
Tom Wenseleers
Tom.Wenseleers at bio.kuleuven.be
Mon Jul 1 00:38:10 CEST 2013
Dear Ben,
Many thanks for your message - after some experimentation I did indeed confirm that the correct specification in lmer was the one you mentioned, i.e. the correct code to get almost identical output as in SAS/glimmix was (as I thought it might be useful to share this for others I attach the datafile, and also the PDF with the original SAS analysis)
microarray=read.csv("microarray_dataset1612_R.csv",colClasses=c(rep("factor",8),"numeric"))
library(lme4)
library(lmerTest)
#options(contrasts = c(factor = "contr.SAS", ordered = "contr.poly")) # not sure if this would be necessary
fit=lmer(log_intensity~(1|array/gene)+(1|array:pin)+(1|array:dip)+dye+trt+gene+dye:gene+trt:gene+pin, data=microarray)
summary(fit)
anova(fit,ddf="Kenward-Roger")
(the degrees of freedom are slightly different though as in the SAS output, not sure why that is, but the p vals are practically identical)
The only remaining question I now have is how I could obtain the least square means, equivalent to the SAS code
lsmeans trt*gene / slice=gene
slicediff=gene
slicedifftype=control('0' '2');
(cf PDF in attachment)
Would anyone happen to know perhaps how I could obtain these using package lsmeans? (I am new to that package, so apologies if this would happen to be trivial)
Cheers,
Tom
-----Original Message-----
From: r-sig-mixed-models-bounces at r-project.org [mailto:r-sig-mixed-models-bounces at r-project.org] On Behalf Of Ben Bolker
Sent: 29 June 2013 17:58
To: r-sig-mixed-models at r-project.org
Subject: Re: [R-sig-ME] Question on mixed model design to analyze microarray data
Tom Wenseleers <Tom.Wenseleers at ...> writes:
>
> Dear all,
> I was just trying to analyse some microarray gene expression data
> using mixed models in R.
> Based on the SAS code given here
> http://support.sas.com/documentation/cdl/en/
> statug/63033/HTML/default/viewer.htm#statug_hpmixed_sect035.htm
(URL broken, sorry)
> proc hpmixed data=microarray;
> class marray dye trt gene pin dip;
> model log2i = dye trt gene dye*gene trt*gene pin;
> random marray marray*gene dip(marray) pin*marray;
> test trt;
> run;
>
> I wanted to try to run the equivalent model in R using lmer and then
> test significance using lmerTest and/or lsmeans. Am I correct that the
> correct syntax would be
> lmer(log2i~dye+trt+gene+dye:gene+trt:gene+pin+(1|marray)+
> (gene|marray)+(1|marray/dip)+(pin|marray), data=microarray) (gene has
> about 10 000 levels and marray 10, would this run in lmer?)
I think you probably want a random effect of
(1|marray) + (1|marray:gene) + (1|marray:pin)+(1|marray:dip)
or equivalently
(1|marray/gene) + (1|marray:pin) + (1|marray:dip)
you almost certainly _don't_ want (gene|marray), which will try to fit correlations among gene effects by microarray (i.e a 10K by 10K correlation matrix), which will explode your computer. At a quick read I'm not quite sure what distinction the SAS authors are making between "X by Y" and "X within Y": I would code "X by Y" as
(1|X) + (1|Y) + (1|X:Y) [ (1|X*Y) might work, but I haven't tried it ] and "X within Y" as (1|Y/X) or (1|Y) + (1|Y:X)
>
> Also, would it be possible in any way to allow variances across
> treatment (trt) groups to be unequal? Or is that only possible in
> nlme/lme?
> (but that wouldn't allow for such complex random effect designs,
> right?)
Not at present in lmer. You might be able to code these random effects in nlme (see the relevant pages of Pinheiro & Bates 2000, referenced in http://glmm.wikidot.com/faq under "Crossed random effects", but lme4 is likely to be a lot faster.
_______________________________________________
R-sig-mixed-models at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
-------------- next part --------------
A non-text attachment was scrubbed...
Name: littell et al 2006_microarray example.pdf
Type: application/pdf
Size: 148460 bytes
Desc: littell et al 2006_microarray example.pdf
URL: <https://stat.ethz.ch/pipermail/r-sig-mixed-models/attachments/20130630/e9c2cba1/attachment-0001.pdf>
More information about the R-sig-mixed-models
mailing list