convest {limma} | R Documentation |
Returns an estimate of the proportion of true null hypotheses using a convex decreasing density estimate on a vector of p-values.
convest(p, niter = 100, doplot = FALSE, doreport = FALSE)
p |
numeric vector of p-values, calculated using any test of your choice. Missing values are not allowed |
niter |
number of iterations to be used in fitting the convex, decreasing density for the p-values. Default is 100. |
doplot |
logical, should updated plots of fitted convex decreasing
p-value density be produced at each iteration?
Default is FALSE . |
doreport |
logical, should the estimated proportion be printed at each iteration?
Default is FALSE . |
The proportion of true null hypotheses is often denoted pi0.
Numeric value in the interval [0,1] representing he estimated proportion of true null hypotheses.
Egil Ferkingstad and Mette Langaas
Egil Ferkingstad, Mette Langaas and Bo Lindqvist (2003). Estimating the proportion of true null hypotheses, with application to DNA microarray data. Preprint Statistics No. 4/2003, Department of Mathematical Sciences, Norwegian University of Science and Technology. http://www.math.ntnu.no/~mettela/SFG/research.imf
See 5.LinearModels for other functions for producing or interpretting p-values.
# First simulate data, use no.genes genes and no.ind individuals, # with given value of pi0. Draw from normal distribution with mean=0 # (true null) and mean=mean.diff (false null). no.genes <- 1000 no.ind <- 20 pi0 <- 0.9 mean.diff <- 1 n1 <- round(pi0*no.ind*no.genes) n2 <- round((1-pi0)*no.ind*no.genes) x <- matrix(c(rnorm(n1,mean=0),rnorm(n2,mean=mean.diff)),ncol=no.ind,byrow=TRUE) # calculate p-values using your favorite method, e.g. pvals <- ebayes(lm.series(x))$p.value # run the convex decreasing density estimator to estimate pi0 convest(pvals,niter=100,doplot=interactive())