fdrtool {fdrtool} | R Documentation |
fdrtool
takes a vector of z-scores (or of correlations, p-values,
or t-statistics), and estimates for each case both the tail area-based Fdr
as well as the density-based fdr (=q-value resp. local false discovery rate).
The parameters of the null distribution are
estimated adaptively from the data (except for the case of p-values where
this is not necessary).
fdrtool(x, statistic=c("normal", "correlation", "pvalue", "studentt"), plot=TRUE, color.figure=TRUE, verbose=TRUE, cutoff.method=c("fndr", "pct0", "locfdr"), pct0=0.75)
x |
vector of the observed test statistics. |
statistic |
one of "normal" (default), "correlation", "pvalue", "studentt". This species the null model. |
plot |
plot a figure with estimated densities, distribution functions, and (local) false discovery rates. |
verbose |
print out status messages. |
cutoff.method |
one of "fndr" (default), "pct0", "locfdr". |
pct0 |
fraction of data used for fitting null model - only if cutoff.method ="pct0" |
color.figure |
determines whether a color figure or a black and white figure is produced (defaults to "TRUE", i.e. to color figure). |
The algorithm implemented in this function proceeds as follows:
cutoff.method
is "fndr" then first an approximate null model is fitted and
subsequently a cutoff point is sought with false nondiscovery
rate as small as possible (see fndr.cutoff
).
If cutoff.method
is "pct0"
then a specified quantile (default value: 0.75) of the data
is used as the cutoff point. If cutoff.method
equals
"locfdr" then the heuristic of the "locfdr" package (version 1.1-6)
is employed to find the cutoff (z-scores and correlations only).
censored.fit
. This results
in estimates for scale parameters und and proportion
of null values (eta0
).
grenander
algorithm is employed
to obtain the overall density and distribution function
(note that this respects the estimated eta0
).
The assumed null models all have (except for p-values) one free scale parameter. Note that the z-scores and the correlations are assumed to have zero mean.
A list with the following components:
pval |
a vector with p-values for each case. |
qval |
a vector with q-values (Fdr) for each case. |
lfdr |
a vector with local fdr values for each case. |
statistic |
the specified type of null model. |
param |
a vector containing the estimated parameters (the null
proportion eta0 and the free parameter of the null model). |
Korbinian Strimmer (http://strimmerlab.org).
Strimmer, K. (2008). A unified approach to false discovery rate estimation. BMC Bioinformatics in press. Preprint available from http://strimmerlab.org.
pval.estimate.eta0
, censored.fit
.
# load "fdrtool" library and p-values library("fdrtool") data(pvalues) # estimate fdr and Fdr from p-values data(pvalues) fdr = fdrtool(pvalues, statistic="pvalue") fdr$qval # estimated Fdr values fdr$lfdr # estimated local fdr # the same but with black and white figure fdr = fdrtool(pvalues, statistic="pvalue", color.figure=FALSE) # estimate fdr and Fdr from z-scores sd.true = 2.232 n = 500 z = rnorm(n, sd=sd.true) z = c(z, runif(30, 5, 10)) # add some contamination fdr = fdrtool(z) # you may change some parameters of the underlying functions fdr = fdrtool(z, cutoff.method="pct0", pct0=0.9)