fdr.control {fdrtool} | R Documentation |
fdr.control
controls the False Discovery Rate (FDR) at a
given level Q.
fdr.control(p, Q=0.05, eta0, robust=FALSE, ...)
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 . |
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:
fdr.estimate.eta0
).
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 |
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/).
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.
# 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