[BioC] limma 3-way interaction
Jake
jjmichael at comcast.net
Thu May 18 17:43:00 CEST 2006
Okay I think I get it now. I couldn't figure out what the "assign" part
was for. It refers to the term in the expanded formula which led to the
term(s) you're interested in, for example:
a*b -> Y = int + a + b + ab
0 1 2 3
hence the line
cont.ia <- diag(p)[,attr(X,"assign")==3]
so for a three-way interaction it would be:
a*b*c -> Y = int + a + b + c + ab + ac + bc + abc
0 1 2 3 4 5 6 7
so the line would change to
cont.ia <- diag(p)[,attr(X,"assign")==7]
Am I interpreting this right?
--Jake
On Thu, 2006-05-18 at 09:22 -0600, Jake wrote:
> Hi all,
>
> A while back I found some great code on the list to test for a two-way
> interaction in limma:
>
> > If you only want F-tests for interactions, the following code would
> work:
> >
> > X <- model.matrix(~a*b)
> > fit <- lmFit(eset, X)
> > p <- ncol(X)
> > cont.ia <- diag(p)[,attr(X,"assign")==3]
> > fit.ia <- eBayes(contrasts.fit(fit, cont.ia))
> >
> > Now fit.ia contains the F-statistic and p-values for the interaction
> in
> > fit.ia$F and fit.ia$F.p.value.
> >
>
> This code has worked very well for me. I hand-coded an interaction
> using contrasts and got the exact same results as with using the above
> code - which was encouraging.
>
> How could this code be adapted for a three-way interaction, ie:
>
> X=model.matrix(~a*b*c)
>
> Is it safe to just to substitute this line?
>
> Any help much appreciated!
>
> --Jake
>
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
More information about the Bioconductor
mailing list