fdrtool {fdrtool}R Documentation

Estimate (Local) False Discovery Rates For Diverse Test Statistics

Description

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).

Usage

fdrtool(x, statistic=c("normal", "correlation", "pvalue", "studentt"),
  plot=TRUE, verbose=TRUE, censored.fit.arg=NULL, pval.estimate.eta0.arg=NULL, use.locfdr=TRUE, ...)

Arguments

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.
censored.fit.arg list with arguments passed on to censored.fit.
pval.estimate.eta0.arg list with arguments passed on to pval.estimate.eta0.
use.locfdr employ the locfdr package for estimation eta0 and scale parameter (only for "normal" and "correlation" statistic).
... parameters passed on to the locfdr function (e.g. df).

Details

The algorithm implemented in this function proceeds as follows:

  1. The parameters of the null model are estimated from the data using censored.fit.
  2. Subsequently the corresponding p-values are computed.
  3. The proportion of null-p-values eta0 is estimated using pval.estimate.eta0.
  4. A modified grenander algorithm is employed to obtain the overall density and distribution function (note that this respects the estimated eta0).
  5. Finally, q-values and local fdr values are computed for each case.

The assumed null models all have (except for p-values) one free scale parameter. Note that the z-scores are assumed to have zero mean.

Value

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).

Author(s)

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

See Also

pval.estimate.eta0, censored.fit.

Examples

# 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 

# 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, censored.fit.arg=list( pct0=0.9)) 

[Package fdrtool version 1.1.3 Index]