p.adjust                package:stats                R Documentation

Adjust p-values for multiple comparisons

Description:

     Given a set of p-values, returns p-values adjusted using one of
     several methods.

Usage:

     p.adjust(p, method=p.adjust.methods, n=length(p))

     p.adjust.methods

Arguments:

       p: vector of p-values

  method: correction method

       n: number of comparisons

Details:

     The adjustment methods include the Bonferroni correction
     ('"bonferroni"') in which the p-values are multiplied by the
     number of comparisons.  Four less conservative corrections are
     also included by Holm (1979) ('"holm"'), Hochberg (1988)
     ('"hochberg"'), Hommel (1988) ('"hommel"') and Benjamini &
     Hochberg (1995) ('"fdr"'), respectively. A pass-through option
     ('"none"') is also included. The set of methods are contained in
     the 'p.adjust.methods' vector for the benefit of methods that need
     to have the method as an option and pass it on to 'p.adjust'.

     The first four methods are designed to give strong control of the
     family wise error rate.  There seems no reason to use the
     unmodified Bonferroni correction because it is dominated by Holm's
     method, which is also valid under arbitrary assumptions.

     Hochberg's and Hommel's methods are valid when the hypothesis
     tests are independent or when they are non-negatively associated
     (Sarkar, 1998; Sarkar and Chang, 1997).  Hommel's method is more
     powerful than Hochberg's, but the difference is usually small and
     the Hochberg p-values are faster to compute.

     The '"fdr"' method of Benjamini and Hochberg (1995) controls the
     false discovery rate, the expected proportion of false discoveries
     amongst the rejected hypotheses.  The false discovery rate is a
     less stringent condition than the family wise error rate, so
     Benjamini and Hochberg's method is more powerful than the other
     methods.

Value:

     A vector of corrected p-values.

References:

     Benjamini, Y., and Hochberg, Y. (1995). Controlling the false
     discovery rate: a practical and powerful approach to multiple
     testing. _Journal of the Royal Statistical Society Series_ B,
     *57*, 289-300.

     Holm, S. (1979). A simple sequentially rejective multiple test
     procedure. _Scandinavian Journal of Statistics_, *6*, 65-70.

     Hommel, G. (1988). A stagewise rejective multiple test procedure
     based on a modified Bonferroni test. _Biometrika_, *75*, 383-386.

     Hochberg, Y. (1988). A sharper Bonferroni procedure for multiple
     tests of significance. _Biometrika_, *75*, 800-803.

     Shaffer, J. P. (1995). Multiple hypothesis testing. _Annual Review
     of Psychology_, *46*, 561-576. (An excellent review of the area.)

     Sarkar, S. (1998). Some probability inequalities for ordered MTP2
     random variables: a proof of Simes conjecture. _Annals of
     Statistics_, *26*, 494-504.

     Sarkar, S., and Chang, C. K. (1997). Simes' method for multiple
     hypothesis testing with positively dependent test statistics.
     _Journal of the American Statistical Association_, *92*,
     1601-1608.

     Wright, S. P. (1992). Adjusted P-values for simultaneous
     inference. _Biometrics_, *48*, 1005-1013. (Explains the adjusted
     P-value approach.)

See Also:

     'pairwise.*' functions in the 'stats' package, such as
     'pairwise.t.test'.

Examples:

     x <- rnorm(50, m=c(rep(0,25),rep(3,25)))
     p <- 2*pnorm( -abs(x))

     round(p, 3)

     round(p.adjust(p), 3)
     round(p.adjust(p,"bonferroni"), 3)

     round(p.adjust(p,"fdr"), 3)

