fdr.control {fdrtool}R Documentation

Controlling the False Discovery Rate in Multiple Testing

Description

fdr.control controls the False Discovery Rate (FDR) at a given level Q.

Usage

fdr.control(p, Q=0.05, eta0, robust=FALSE, ...)

Arguments

p vector of p-values
Q desired FDR level
eta0 proportion of null p-values. If value is not specified (the default) it is estimated via the function fdr.estimate.eta0.
robust use small sample approximation for estimating q-values (default value: FALSE)
... arguments passed on to fdr.estimate.eta0.

Details

The FDR is the expected proportion of false positives (erroneous rejections) among the significant tests (rejections). fdr.control uses the algorithms described in Benjamini and Hochberg (1995) and Storey (2002). For a given vector of p-values and the desired FDR level Q the corresponding p-value cut-off and the q-values for each hypothesis (see Storey, 2002) are computed.

Notes:

  1. the default settings correspond to the step-up procedure to control the FDR by Benjamini and Hochberg (1995).
  2. q-values for each hypothesis are computed as defined in Storey (2002).
  3. small sample approximation for q-value (robust=TRUE) is from Storey (2002).
  4. default eta0=0 is safe but also most conservative choice (for other possibilities see fdr.estimate.eta0).

Value

A list object with the following components:

qvalues a vector with the q-values for each hypothesis.
significant a vector with a TRUE/FALSE value for each hypothesis
num.significant number of significant hypotheses.
pvalue.cutoff cutoff level for the individual p-values to obtain the desired control of FDR. Hypotheses whose corresponding p-values are below or equal to this cut-off level are rejected (i.e. significant).
qvalue.cutoff the specified q-value cut-off (Q)
eta0 the fraction of null p-values used to estimate the cut-offs

Author(s)

Korbinian Strimmer (http://strimmerlab.org).

Adapted in part from S-PLUS code by Y. Benjamini (http://www.math.tau.ac.il/~roee/FDR_Splus.txt) and R code from J.D. Storey (http://faculty.washington.edu/~jstorey/).

References

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.

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

See Also

fdr.estimate.eta0.

Examples

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

# Proportion of null p-values for different methods
fdr.estimate.eta0(pval, method="conservative")
fdr.estimate.eta0(pval, method="adaptive")
fdr.estimate.eta0(pval, method="bootstrap")
fdr.estimate.eta0(pval, method="smoother")

# FDR test on the level 0.05 using the default "smoother" method
fdr.control(pval, Q = 0.05)$num.significant 

# FDR test on the level 0.05 using the conservative choice eta0=1
fdr.control(pval, Q = 0.05, method="conservative")$num.significant 

[Package fdrtool version 1.0.0 Index]