Question: limma 3-way interaction
0
13.2 years ago by
Jacob Michaelson320 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
safe • 445 views
modified 13.2 years ago • written 13.2 years ago by Jacob Michaelson320
0
13.2 years ago by
Jacob Michaelson320 wrote:
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