sumz function

Combine p-values using the sum of z (Stouffer's) method

Combine p-values using the sum of z (Stouffer's) method

Combine \mjseqn p-values using the sum of z method\loadmathjax

sumz(p, weights = NULL, data = NULL, subset = NULL, na.action = na.fail, log.p = FALSE, log.input = FALSE) ## S3 method for class 'sumz' print(x, ...)

Arguments

  • p: A vector of significance values
  • weights: A vector of weights
  • data: Optional data frame containing variables
  • subset: Optional vector of logicals to specify a subset of the \mjseqn p-values
  • na.action: A function indicating what should happen when data contains NAs
  • log.p: Logical, if TRUE result is returned as log(p)
  • log.input: Logical, if TRUE the input \mjseqn p values are assumed to be logged
  • x: An object of class ‘sumz’
  • ...: Other arguments to be passed through

Details

Defined as \mjdeqn \frac \sum _i=1^k w_i z(p_i)\sqrt \sum _i=1^k w_i ^ 2sum (w * z(p)) / sqrt(sum (w * w))

is a \mjseqn z where \mjseqn k is the number of studies and \mjseqn w are the weights \insertCite stouffer49metap. By default the weights are equal. In the absence of effect sizes (in which case a method for combining effect sizes would be more appropriate anyway) best results are believed to be obtained with weights proportional to the square root of the sample sizes \insertCite zaykin11metap

\insertNoCite becker94metap

\insertNoCite rosenthal78metap

The values of \mjseqn p_i should be such that \mjseqn 0 < p_i < 1 and a warning is given if that is not true. A warning is given if, possibly as a result of removing illegal values, fewer than two values remain and the return values are set to NA. If the omitted \mjseqn p values had supplied weights a further warning is issued.

The log.input parameter may be beneficial when the input values are already logged and would be small if exponentiated since it avoids a conversion.

The plot method for class ‘metap’ calls plotp on the valid pp-values.

Returns

An object of class ‘sumz’ and ‘metap’ , a list with entries - z: Transformed sum of \mjseqn z values

  • p: Associated \mjseqn p-value

  • validp: The input vector with illegal values removed

  • weights: The weight vector corresponding to validp

References

\insertAllCited

Author(s)

Michael Dewey

See Also

See also plotp

Examples

data(dat.metap) teachexpect <- dat.metap$teachexpect sumz(teachexpect) # z = 2.435, p = 0.0074, from Becker beckerp <- dat.metap$beckerp sumz(beckerp) # z = 1.53, NS, from Beckerp rosenthal <- dat.metap$rosenthal sumz(rosenthal$p) # 2.39, p = 0.009 sumz(p, df, rosenthal) # 3.01, p = 0.0013 validity <- dat.metap$validity$p sumz(validity) # z = 8.191, p = 1.25 * 10^{-16} all.equal(exp(sumz(validity, log.p = TRUE)$p), sumz(validity)$p) all.equal(sumz(log(validity), log.input = TRUE)$p, sumz(validity)$p)
  • Maintainer: Michael Dewey
  • License: GPL-2
  • Last published: 2025-03-15

Useful links