propTrueNull(p, method="lfdr", nbins=20, ...)
convest(p, niter=100, plot=FALSE, report=FALSE, file="", tol=1e-6)
"lfdr"
, "mean"
, "hist"
or "convest"
.method="hist"
).convest
if method="convest"
.method="lfdr"
implements the method of Phipson (2013) based on averaging local false discovery rates across the p-values.
method="mean"
is a very simple method based on averaging the p-values. It gives a slightly smaller estimate than 2*mean(p)
.
method="hist"
implements the histogram method of Mosig et al (2001) and Nettleton et al (2006).
method="convest"
calls convest
, which implements the method of Langaas et al (2005) based on a convex decreasing density estimate.
Mosig MO, Lipkin E, Khutoreskaya G, Tchourzyna E, Soller M, Friedmann A (2001). A whole genome scan for quantitative trait loci affecting milk protein percentage in Israeli-Holstein cattle, by means of selective milk DNA pooling in a daughter design, using an adjusted false discovery rate criterion. Genetics 157, 1683-1698.
Nettleton D, Hwang JTG, Caldo RA, Wise RP (2006). Estimating the number of true null hypotheses from a histogram of p values. Journal of Agricultural, Biological, and Environmental Statistics 11, 337-356.
Phipson, B (2013). Empirical Bayes Modelling of Expression Profiles and Their Associations. PhD Thesis, University of Melbourne, Australia. http://repository.unimelb.edu.au/10187/17614
Ritchie, ME, Phipson, B, Wu, D, Hu, Y, Law, CW, Shi, W, and Smyth, GK (2015). limma powers differential expression analyses for RNA-sequencing and microarray studies. Nucleic Acids Research 43, e47. http://nar.oxfordjournals.org/content/43/7/e47
# Test statistics
z <- rnorm(200)
# First 40 are have non-zero means
z[1:40] <- z[1:40]+2
# True pi0
160/200
# Two-sided p-values
p <- 2*pnorm(-abs(z))
# Estimate pi0
propTrueNull(p, method="lfdr")
propTrueNull(p, method="hist")
Run the code above in your browser using DataLab