[BioC] p.value in eBayes( ) of limma

Gordon K Smyth smyth at wehi.EDU.AU
Sat Jul 23 14:34:15 CEST 2005

```> Date: Fri, 22 Jul 2005 08:14:53 -0500 (CDT)
> From: jihoon at cs.wisc.edu
> Subject: [BioC] p.value in eBayes( ) of  limma
> To: smyth at wehi.EDU.AU
> Cc: bioconductor at stat.math.ethz.ch
>
> Dear Smyth,
>
> Hello,
>
> I'm curious about how p-value is calculated
> (or which degree of freemdom is used)
> from the R example of the function lm.series
> in the package "limma" below.
>
>
>
> [R Example as in help page]
> M <- matrix(rnorm(100*6,sd=0.3),100,6)
> M[1,1:3] <- M[1,1:3] + 2
> #  Design matrix includes two treatments,
> # one for first 3 and one for last 3 arrays
> design <- cbind(First3Arrays=c(1,1,1,0,0,0),Last3Arrays=c(0,0,0,1,1,1))
> fit <- lm.series(M,design=design)
> eb <- ebayes(fit)
> #  Large values of eb\$t indicate differential expression
> qqt(eb\$t[,1],df=fit\$df+eb\$df.prior)
> abline(0,1)
>
>
>
> I thought following two codes should give same
> results, but they didn't.
> Which degree of freedom should I use to get
> the same p.value?
>
>
> eb\$p.value[1,1]
> 1-pt(eb\$t[1,1], fit\$df[1]+eb\$df.prior)

You are computing a one-sided p-value whereas limma computes two-sided p-values.

Gordon

> Thank you.
>
>
> Jihoon Kim

```