R: Combine p-values by the sum of logs method

sumlog {metap} | R Documentation

## Combine p-values by the sum of logs method

### Description

Combine p-values by the sum of logs method, also known as Fisher's method, and sometimes as the chi-square (2) method.

### Usage

    sumlog(p)
    ## S3 method for class 'sumlog'
    print(x, ...)

### Arguments

`p` | A vector of p-values
`x` | An object of class ‘`sumlog`’
`...` | Other arguments to be passed through

### Details

The method relies on the fact that

sum -2 log p

is a chi-squared with 2 * k df where k is the number of studies.

The values of p should be such that 0<p<=1 and a warning is given if that is not true. An error is given if possibly as a result of deletions fewer than two studies remain.

The plot method for class ‘`metap`’ calls `schweder` on the valid p-values. Inspection of the distribution of p-values is highly recommended as extreme values in opposite directions do not cancel out. See last example. This may not be what you want.

### Value

An object of class ‘`sumlog`’ and ‘`metap`’, a list with entries

`chisq` | Value of chi-squared statistic
`df` | Associated degrees of freedom
`p` | Associated p-value
`validp` | The input vector with the illegal values removed

### Author(s)

Michael Dewey

### References

Becker, B J. Combining significance levels. In Cooper, H and Hedges, L V, editors A handbook of research synthesis, chapter 15, pages 215–230. Russell Sage, New York, 1994.

Rosenthal, R. Combining the results of independent studies. Psychological Bulletin, 85:185–193, 1978.

Sutton A J, Abrams, K R, Jones D R, Sheldon T A and Song, F. Methods for meta-analysis in medical research. Wiley, Chichester, 2000.

### See Also

See also `schweder`

### Examples

    data(teachexpect)
    sumlog(teachexpect) # chisq = 69.473, df = 38, p = 0.0014, from Becker
    data(beckerp)
    sumlog(beckerp) # chisq = 18.533, df = 10, sig
    data(rosenthal)
    sumlog(rosenthal$p) # chisq = 22.97, df = 10, p = 0.006 one sided
    data(cholest)
    sumlog(cholest) # chisq = 58.62, df = 68, p = 0.78
    data(validity)
    sumlog(validity) # chisq = 159.82, df = 40, p = 2.91 * 10^{-16}
    sumlog(c(0.0001, 0.0001, 0.9999, 0.9999)) # is significant

[Package metap version 0.8 Index]