Bug 17136 - Documentation for method="BY" in p.adjust()
Summary: Documentation for method="BY" in p.adjust()
Status: UNCONFIRMED
Alias: None
Product: R
Classification: Unclassified
Component: Documentation (show other bugs)
Version: R-devel (trunk)
Hardware: Other OS X El Capitan
: P5 minor
Assignee: R-core
URL:
Depends on:
Blocks:
 
Reported: 2016-08-28 07:14 UTC by John H Maindonald
Modified: 2016-08-28 07:14 UTC (History)
0 users

See Also:


Attachments
Patch to p.adjust.Rd (R-devel revision 71160) (1.76 KB, patch)
2016-08-28 07:14 UTC, John H Maindonald
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description John H Maindonald 2016-08-28 07:14:34 UTC
Created attachment 2144 [details]
Patch to p.adjust.Rd (R-devel revision 71160)

The discussion of the “correction” implemented in p.adjust() is a small part (Theorem 1.3 in Section 5 on page 1182) of a paper (Benjamini and Yekutieli, 2001) that discusses several other alternatives to method=“BH”.  It is unclear, without checking the code, which of these is in mind. Use of method="BY" changes the relatively conservative “BH” correction (which yields what is best described as a False Detection Rate) into a correction that is designed to handle quite general dependence structures.  Contrary to what the documentation currently says, this can be even more conservative than Bonferroni.  See slide 37 in Christopher Genovese’s slides at www.stat.cmu.edu/~genovese/talks/hannover1-04.pdf. The following is an example:

    set.seed(123)
    x <- rnorm(50, mean = c(rep(0, 25), rep(3, 25)))
    p <- sort(2*pnorm(sort(-abs(x))))
    pmat <- rbind(p,p.adjust(p, method='bonferroni'),
                  p.adjust(p, method='BY'))
    rownames(pmat)<-c("pval","adj='bonferroni","adj='BY'")
    round(pmat[,1:6],4)

                 [,1]   [,2]   [,3]   [,4]   [,5]   [,6]
pval            0e+00 0.0000 0.0000 0.0001 0.0001 0.0001
adj='bonferroni 0e+00 0.0011 0.0013 0.0049 0.0053 0.0062
adj='BY'        1e-04 0.0019 0.0019 0.0043 0.0043 0.0043

The smallest three Bonferroni values are smaller than the corresponding "BY" values.