fdr: Multiple hypothesis testing while controlling the False...

Description Usage Arguments Details Value Note Author(s) References See Also Examples

View source: R/wrapper.r

Description

The main function of package mcp.project. Given a p-value vector, the function will return the rejected hypothesis, the cutoff, and the FDR adjusted p-values according to the procedure selected.

Usage

1
fdr(x, q, method = "BH", pi0, lambda = 0.5, m0)  

Arguments

x

A vector if p-values.

q

The False Discovery Rate to control for.

method

The desired procedure. See Details.

pi0

An optional argument instead of m0 when the proportion of true null hypothsis is known.

lambda

The threshold for Story's m0 estimator.

m0

The number of true null hypothsis. Usually unknown.

Details

The fdr function is the main function in the package mcp.project. Given a p-value vector, it can apply several FDR controlling procedures and return the rejected hypothesis, the cutoff and the adjusted p-values. The methods supplied and chosen by the method parameter are the following:

\sQuote{BH}

the plain Linear Step-up procedure is the default procedure of this function. Known to control the FDR in the case of independant or positively correlated test statistics.

\sQuote{General Dependency}

A "worst case" procedure that controls the FDR even when the dependency structure between the p-values is unknown.

\sQuote{Oracle}

When m0 is miraculously known it can be used to increase the power of the Linear Step Up procedure while still controlling the False Discovery Rate (as long as the dependence structure is such that a linear step up will control the FDR). This has been shown to be the assymptotically most “powerful” procedure which controls the FDR (Genovese and Wasserman 2002).

\sQuote{BH Adaptive}

An adaptive procedure which gains power by first estimating m0 using a FWE derived estimator and then plugging it in a Linear Step-up. FDR control under independence has not been proven, yet it is controlled in simulation studies. See the references for further details.

\sQuote{ST Adaptive}

An adaptive procedure. First estimating m0 and then and then plugging it in a Linear Step-up. This procedure requires a threshold (lambda) which is set at 0.5 by default. FDR is *not* controlled if all null hypothesis are true. See the references for further details.

\sQuote{Two Stage}

An adaptive procedure. First estimating m0 using a conservative linear step-up and then using it to increase the power of a second step-up procedure. In the case of independent test statistics, this procedure has been shown to control the FDR.

\sQuote{Multiple Step Down}

A non-linear step-down procedure. Enjoys more power then most procedures and like the \sQuote{Two Stage} procedure, has been proven to control the FDR in the indepenent-test-statistics case.

Value

method

The procedure used.

q

The FDR level controlled for.

Cutoff

A list containing the p-value cutoff and it's index.

Pvals

A data frame containing the original p-values, the critical value each has been compared to, an indicator for the rejection of each hypothesis and the procedure specific adjusted p-values.

Note

One should give special attention to the dependancy structure between the test statistics. In the case of independendcy- the Two Stage and Multiple Step Down procedure guarantee good power while controlling the FDR. In case of uncertainty, better use the BH procedure which will control the FDR in most practical circumbstances (while having less power then the previously suggested procedures).

Author(s)

Jonathan Rosenblatt.

References

The control of the false discovery rate in multiple testing under dependancy
Y. Benjamini, D. Yekutieli (The Annals of Statistics 2001).
Adaptive linear step-up procedures that control the false discovery rate.
Y. Benjamini, A.M. Krieger, D. Yekutieli (Biometrika 2006).
Operating characteristics and extensions of the false discovery rate procedure
C. Genovese, L. Wasserman (Journal of the Royal Statistical Society 2002).

See Also

http://www.math.tau.ac.il/~ybenja/fdr/index.htm http://strimmerlab.org/notes/fdr.html

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
test=runif(100)^3

#Linear Step up
bh.1=fdr(x=test,q=0.1,'BH')
plot(bh.1)
summary(bh.1)
table(bh.1$Pvals[['adjusted.pvals']]<=bh.1$q)

# General Dependancy structure
general.1=fdr(x=test,q=0.1,method='General Dependency')
plot(general.1)
summary(general.1)

# New Two Stage procedure
twostage.1=fdr(x=test,0.1,'Two Stage')
plot(twostage.1)
summary(twostage.1)

# If m0 is somehow known
oracle.1=fdr(x=test,q=0.1,'Oracle',m0=30)
plot(oracle.1);summary(oracle.1)

#Adaptive procedure with Story's m0 estimator
adaptive.st.1=fdr(x=test,q=0.1,'ST Adaptive')
plot(adaptive.st.1)
summary(adaptive.st.1)

#Adaptive procedure with Benjamini and Hochberg's m0 estimator
adaptive.bh.1=fdr(x=test,0.1,'BH Adaptive')
plot(adaptive.bh.1)
summary(adaptive.bh.1)

# (Non Linear) Step down procedure
multiple.1=fdr(x=test,q=0.1,'Multiple Step Down')
plot(multiple.1)
summary(multiple.1)

mcp.project documentation built on May 2, 2019, 4:52 p.m.