Adaptive.GBH: Adaptive Group Benjamini-Hochberg Procedure

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

View source: R/Adaptive.GBH.R

Description

Performs the Group Benjamini-Hochberg procedure using adaptive estimates of the proportions of null p-values in given groups. The method is applicable when we know some a-priori structure about whether certain hypotheses can be grouped. Once the hypotheses are grouped and tested individually, a Benjamini-Hochberg correction is performed within each of the groups. Finally, the fact that the Benjamini-Hochberg correction controls the FDR at level q*pi0_group within each group (q is the level used in the and p-value comparison and pi0 is the proportion of null hypotheses within the particular group) is used to increase the power of the procedure. The procedure is described in more detail in the paper "False Discovery Rate Control with Groups" by Hu, Zhao, and Zhou (see references below).

Usage

1
Adaptive.GBH(unadj.p, group.index, alpha = 0.05, method = 'lsl', lambda = 0.5)

Arguments

unadj.p

A vector of the unadjusted p-values resulting from a multiple testing experiment.

group.index

A vector of the same length as the vector of unadjusted p-values, where a "G" in the jth coordinate indicates that the jth unadjusted p-values in unadj.p belongs to group "G". This code can be either a factor giving group names, or a numeric index.

alpha

The level of that we are attempting to control the FDR at.

method

The method for adaptively estimating the proportion of true null hypotheses within a vector of unadjusted p-values. The possible options are "storey", "lsl", and "tst". See the documentation for estimatePi0 for more details.

lambda

The value of the tuning parameter for estimating the proportion of null hypotheses, in the "storey" method.

Value

An object of class GBH, which provides the adjusted p-values.

Author(s)

Kris Sankaran

References

Hu, J.X., Zhao, H., and Zhou, H.H. False discovery rate control with groups. Journal of the American Statistical Association, volume 104, number 491. Pages 1215-1227. 2010.

Sankaran, K and Holmes, S. structSSI: Simultaneous and Selective Inference for Grouped or Hierarchically Structured Data. Journal of Statistical Software, 59(13), 1-21. 2014. http://jstatsoft.org/v59/i13/

See Also

estimate.pi0 Oracle.GBH

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
## These are the unadjusted p-values corresponding to
## the outcome of some multiple testing experiment. The
## first 500 hypotheses are null and the last 1500 are
## true alternatives.
unadjp <- c(runif(500, 0, 0.01), runif(1500, 0, 1))
names(unadjp) <- paste("Hyp: ", 1:2000)

## Here there are two groups total we have randomly
##  assigned hypotheses to these two groups.
group.index <- c(sample(1:2, 2000, replace = TRUE))

# Perform the GBH adjustment.
result <-  Adaptive.GBH(unadjp, group.index, method = "storey")

# A summary of the GBH adjustment
summary(result)

# The estimated proportions of null hypotheses, between groups
result@pi0

# Visualizing the sorted p-values, before and after adjustment
plot(result, adjust = TRUE)
plot(result, adjust = FALSE)

Example output

GBH adjusted p values: 
                unadjp        adjp group adj.significance
Hyp:  335 1.451310e-06 0.002426754     1               **
Hyp:  292 6.866662e-06 0.005740917     1               **
Hyp:  348 3.064009e-05 0.014284938     2                *
Hyp:  81  4.019910e-05 0.016804355     1                *
Hyp:  430 6.122544e-05 0.020475167     1                *
Hyp:  497 8.715012e-05 0.024287470     1                *
Hyp:  20  1.050417e-04 0.025091647     1                *
Hyp:  297 1.454348e-04 0.025426582     2                *
Hyp:  470 1.648381e-04 0.025616786     2                *
Hyp:  116 2.156488e-04 0.027428657     2                *
[only 10 most significant hypotheses shown] 
--- 
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 '-' 1 

 Estimated proportion of hypotheses that are null, within each group: 
        2         1 
0.7444976 0.7769634 

 Significance across groups: 
     adj.significance
group   *  **   -   .
    1 254   2 688  11
    2 265   0 763  17
        2         1 
0.7444976 0.7769634 

structSSI documentation built on May 2, 2019, 11:26 a.m.