DiscreteFDR (version 1.1)

DBR: [DBR-lambda] procedure

Description

Apply the [DBR-lambda] procedure, with or without computing the critical constants, to a set of p-values and their discrete support.

Usage

DBR(pCDFlist, raw.pvalues, alpha = 0.05, lambda = NULL,
  ret.crit.consts = FALSE, bigMem = FALSE, verbose = FALSE)

Arguments

pCDFlist

a list of the supports of the CDFs of the p-values. Each support is represented by a vector that must be in increasing order.

raw.pvalues

vector of the raw observed p-values, as provided by the end user and before matching with their nearest neighbour in the CDFs supports.

alpha

the target FDR level, a number strictly between 0 and 1.

lambda

a number strictly between 0 and 1. If lambda=NULL (by default), then lambda is chosen equal to alpha.

ret.crit.consts

a boolean. If TRUE, critical constants are computed and returned (this is computationally intensive).

bigMem

a boolean. If TRUE, the code uses matrixes and functions of the apply family as far as possible (faster for small number of hypotheses and support size, but slower otherwise due to memory management overhead). If FALSE, computations are done with for loops and chunks to conserve memory.

verbose

a boolean indicating if msg must be printed. Used when bigMem=TRUE, to print messages informing if in-memory computation was successful or if loops and chunks were used as fallback.

Value

A list whose elements are:

Rejected

rejected raw p-values

Indices

indices of rejected hypotheses

Max.k

number of rejections

Alpha

maximum significance level for which a rejection occured, that is \(Alpha = alpha * Max.k / m\)

Critical.constants

critical constants (if requested)

Adjusted

adjusted p-values

Lambda

value of lambda.

Details

[DBR-lambda] is the discrete version of the [Blanchard-Roquain-lambda] procedure (see References), the authors of the latter suggest to take lambda=alpha (see their Proposition 17), which explains the choice of the default value here.

This version: 2018-09-05.

References

G. Blanchard and E. Roquain (2009). Adaptive false discovery rate control under independence and dependence. Journal of Machine Learning Research, 10, 2837-2871.

Examples

Run this code
# NOT RUN {
X1 <- c(4, 2, 2, 14, 6, 9, 4, 0, 1)
X2 <- c(0, 0, 1, 3, 2, 1, 2, 2, 2)
N1 <- rep(148, 9)
N2 <- rep(132, 9)
Y1 <- N1-X1
Y2 <- N2-X2
df <- data.frame(X1,Y1,X2,Y2)
df
#Construction of the p-values and their support
df.formatted <- fisher.pvalues.support(counts = df, input = "noassoc")
raw.pvalues <- df.formatted$raw
pCDFlist <- df.formatted$support

DBR.su.fast <- DBR(pCDFlist, raw.pvalues)
DBR.su.crit <- DBR(pCDFlist, raw.pvalues, ret.crit.consts=TRUE)

# }

Run the code above in your browser using DataCamp Workspace