ADDIS: ADDIS: Adaptive discarding algorithm for online FDR control

Description Usage Arguments Details Value References See Also Examples

View source: R/ADDIS.R

Description

Implements the ADDIS algorithm for online FDR control, where ADDIS stands for an ADaptive algorithm that DIScards conservative nulls, as presented by Tian and Ramdas (2019). The algorithm compensates for the power loss of SAFFRON with conservative nulls, by including both adaptivity in the fraction of null hypotheses (like SAFFRON) and the conservativeness of nulls (unlike SAFFRON).

Usage

1
ADDIS(d, alpha = 0.05, gammai, w0, lambda = 0.5, tau = 0.5, async = FALSE)

Arguments

d

Either a vector of p-values, or a dataframe with three columns: an identifier (‘id’), p-value (‘pval’), and decision times (‘decision.times’).

alpha

Overall significance level of the procedure, the default is 0.05.

gammai

Optional vector of γ_i. A default is provided with γ_j proportional to 1/j^(1.6).

w0

Initial ‘wealth’ of the procedure, defaults to τ λ α/2.

lambda

Optional parameter that sets the threshold for ‘candidate’ hypotheses. Must be between 0 and 1, defaults to 0.5.

tau

Optional threshold for hypotheses to be selected for testing. Must be between 0 and 1, defaults to 0.5.

async

Logical. If TRUE runs the version for an asynchronous testing process

Details

The function takes as its input either a vector of p-values, or a dataframe with three columns: an identifier (‘id’), p-value (‘pval’), and decision times, if the asynchronous version is specified (see below). Given an overall significance level α, ADDIS depends on constants w_0 λ and τ. w_0 represents the intial ‘wealth’ of the procedure and satisfies 0 ≤ w_0 ≤ τ λ α. τ \in (0,1) represents the threshold for a hypothesis to be selected for testing: p-values greater than τ are implicitly ‘discarded’ by the procedure. Finally, λ \in (0,1) sets the threshold for a p-value to be a candidate for rejection: ADDIS will never reject a p-value larger than τ λ. The algorithm also require a sequence of non-negative non-increasing numbers γ_i that sum to 1.

The ADDIS procedure provably controls the FDR for independent p-values. Tian and Ramdas (2019) also presented a version for an asynchronous testing process, consisting of tests that start and finish at (potentially) random times. The discretised finish times of the test correspond to the decision times. These decision times are given as the input decision.times.

Further details of the ADDIS algorithms can be found in Tian and Ramdas (2019).

Value

d.out

A dataframe with the original p-values pval, the adjusted testing levels α_i and the indicator function of discoveries R. Hypothesis i is rejected if the i-th p-value is less than or equal to α_i, in which case R[i] = 1 (otherwise R[i] = 0).

References

Tian, J. and Ramdas, A. (2019). ADDIS: an adaptive discarding algorithm for online FDR control with conservative nulls. arXiv preprint, https://arxiv.org/abs/1905.11465.

See Also

ADDIS is identical to SAFFRON with option discard=TRUE.

ADDIS with option async=TRUE is identical to SAFFRONstar with option discard=TRUE.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
sample.df <- data.frame(
id = c('A15432', 'B90969', 'C18705', 'B49731', 'E99902',
    'C38292', 'A30619', 'D46627', 'E29198', 'A41418',
    'D51456', 'C88669', 'E03673', 'A63155', 'B66033'),
pval = c(2.90e-08, 0.06743, 0.01514, 0.08174, 0.00171,
        3.60e-05, 0.79149, 0.27201, 0.28295, 7.59e-08,
        0.69274, 0.30443, 0.00136, 0.72342, 0.54757),
decision.times = seq_len(15) + 1)

ADDIS(sample.df, async = TRUE) # Asynchronous

ADDIS(sample.df, async = FALSE) # Synchronous

onlineFDR documentation built on Nov. 8, 2020, 6:35 p.m.