pval.estimate.eta0 estimates the proportion eta0 of null p-values in a given vector of p-values.

pval.estimate.eta0(p, method=c("smoother", "bootstrap", "conservative",
   "adaptive", "quantile"), lambda=seq(0,0.9,0.05), 
   diagnostic.plot=TRUE, q=0.1)

Arguments

p

vector of p-values

method

algorithm used to estimate the proportion of null p-values. Available options are "conservative" , "adaptive", "bootstrap", quantile, and "smoother" (default).

lambda

optional tuning parameter vector needed for "bootstrap" and "smoothing" methods (defaults to seq(0,0.9,0.05)) - see Storey (2002) and Storey and Tibshirani (2003).

diagnostic.plot

if TRUE (the default) the histogram of the p-values together with the estimate of eta0 null line is plotted. This is useful to visually check the fit of the estimated proportion of null p-values.

q

quantile used for estimating eta0 - only if method="quantile"

Details

This quantity eta0, i.e. the proportion eta0 of null p-values in a given vector of p-values, is an important parameter when controlling the false discovery rate (FDR). A conservative choice is eta0 = 1 but a choice closer to the true value will increase efficiency and power - see Benjamini and Hochberg (1995, 2000) and Storey (2002) for details.

The function pval.estimate.eta0 provides five algorithms: the "conservative" method always returns eta0 = 1 (Benjamini and Hochberg, 1995), "adaptive" uses the approach suggested in Benjamini and Hochberg (2000), "bootstrap" employs the method from Storey (2002), "smoother" uses the smoothing spline approach in Storey and Tibshirani (2003), and "quantile" is a simplified version of "smoother".

Value

The estimated proportion eta0 of null p-values.

References

"conservative" procedure: Benjamini, Y., and Y. Hochberg (1995) Controlling the false discovery rate: a practical and powerful approach to multiple testing. J. Roy. Statist. Soc. B, 57, 289–300.

"adaptive" procedure: Benjamini, Y., and Y. Hochberg (2000) The adaptive control of the false discovery rate in multiple hypotheses testing with independent statistics. J. Behav. Educ. Statist., 25, 60–83.

"bootstrap" procedure: Storey, J. D. (2002) A direct approach to false discovery rates. J. Roy. Statist. Soc. B., 64, 479–498.

"smoother" procedure: Storey, J. D., and R. Tibshirani (2003) Statistical significance for genome-wide experiments. Proc. Nat. Acad. Sci. USA, 100, 9440-9445.

"quantile" procedure: similar to smoother, except that the lower q quantile of all eta0 computed in dependence of lambda is taken as overall estimate of eta0.

Author

Korbinian Strimmer (https://strimmerlab.github.io).

Adapted in part from code by Y. Benjamini and J.D. Storey.

See also

Examples

# load "fdrtool" library and p-values
library("fdrtool")
data(pvalues)


# Proportion of null p-values for different methods
pval.estimate.eta0(pvalues, method="conservative")
#> [1] 1
pval.estimate.eta0(pvalues, method="adaptive")
#> [1] 0.7924924
pval.estimate.eta0(pvalues, method="bootstrap")
#> [1] 0.3847051
pval.estimate.eta0(pvalues, method="smoother")
#> [1] 0.3799108
pval.estimate.eta0(pvalues, method="quantile")
#> [1] 0.4087977