Learn R Programming

MetaHD (version 0.1.4)

MetaHDpval: P-value Combination Methods for High-Dimensional Data

Description

Combines individual \(p\)-values across multiple studies for each outcome using \(p\)-value combination methods applied independently per outcome. Includes traditional and weighted \(p\)-value combination approaches and a vote counting method.

Usage

MetaHDpval(
  pmat,
  method = c("Fisher", "Stouffer", "wZ", "Lancaster", "wFisher", "Vote counting"),
  weight = NULL,
  is.onetail = TRUE,
  eff.sign = NULL,
  alpha = 0.5
)

Value

A numeric vector of length \(N\) containing the combined \(p\)-values for each outcome.

Arguments

pmat

A \(K \times N\) matrix of individual \(p\)-values, where \(K\) is the number of studies and \(N\) is the number of outcomes.

method

Character string specifying the \(p\)-value combination method. One of "Fisher", "Stouffer", "wZ", "Lancaster", "wFisher", or "Vote counting". See Details for more information.

weight

An optional \(K \times N\) matrix of weights or sample sizes for each outcome in each study. Not relevant for "Vote counting".

is.onetail

Logical. If TRUE, \(p\)-values are combined without considering effect directions. If FALSE, effect directions are used via eff.sign. Default is TRUE. Not relevant for "Vote counting".

eff.sign

An optional \(K \times N\) matrix indicating the signs of effect sizes (e.g., +1 or -1). Only used when is.onetail = FALSE. Not relevant for "Vote counting".

alpha

Numeric value defining the \(p\)-value cutoff for the "Vote counting" method. By default, alpha = 0.5 splits \(p\)-values at 0.5. Values between alpha and 1 - alpha are treated as neutral. If alpha > 1, it is interpreted as a percentage.

Details

The MetaHDpval function offers five traditional and more recent \(p\)-value combination methods implemented using the metapro R package, as well as a vote counting method implemented using the metap R package:

  • Fisher's method (Fisher, 1932), which combines logarithmically transformed \(p\)-values from individual studies for each outcome using Fisher’s statistic.

  • Stouffer's method (Stouffer et al., 1949), which combines inverse normal–transformed \(p\)-values derived from individual study test statistics for each outcome.

  • Weighted Z-method (wZ) (Mosteller and Bush, 1954), an extension of Stouffer’s method that incorporates study-specific weights, resulting in a weighted inverse normal combination.

  • Lancaster's method (Lancaster, 1961), which generalizes Fisher’s method by introducing weights and exploits the additive property of the \(\chi^2\)-distribution.

  • Weighted Fisher's method (wFisher) (Yoon et al., 2021), which extends Fisher’s method by allowing non-integer weights reflecting study-specific information (e.g., sample sizes). This approach replaces the \(\chi^2\)-distribution with the gamma distribution to accommodate non-integer degrees of freedom.

  • Vote counting method (Becker, 1994), that classifies a study as positive if its \(p\)-value is less than alpha and as negative if it exceeds 1 - alpha, with studies falling in between treated as neutral and excluded. The number of positive studies is then counted, and a one-sided binomial test is applied to the non-neutral studies to obtain a combined \(p\)-value for each outcome.

References

Yoon, S., Baik, B., Park, T., et al. (2021). Powerful p-value combination methods to detect incomplete association. Scientific Reports, 11, 6980. tools:::Rd_expr_doi("10.1038/s41598-021-86465-y")

Yoon, S. (2023). metapro: Robust P-Value Combination Methods (R package version 1.5.11). Comprehensive R Archive Network (CRAN). tools:::Rd_expr_doi("10.32614/CRAN.package.metapro")

Becker, B.J. (1994). Combining significance levels. In Cooper H, Hedges LV (eds.), A handbook of research synthesis, 215–230. Russell Sage, New York.

Dewey, M. (2025). metap: Meta-Analysis of Significance Values (R package version 1.13). Comprehensive R Archive Network (CRAN). tools:::Rd_expr_doi("10.32614/CRAN.package.metap")

Examples

Run this code
## Example with 5 studies and 12 outcomes
set.seed(123)
pmat <- matrix(runif(15), nrow = 5, ncol = 12)
eff.sign <- matrix(sample(c(-1, 1), 60, replace = TRUE), nrow = 5, ncol = 12)
wmat <- matrix(sample(50:200, 60, replace = TRUE), nrow = 5, ncol = 12)

## Fisher's method
MetaHDpval(pmat, method = "Fisher", is.onetail = FALSE, eff.sign = eff.sign)

## Weighted Z method
MetaHDpval(pmat, method = "wZ", weight = wmat, is.onetail = FALSE, eff.sign = eff.sign)

## Vote counting
MetaHDpval(pmat, method = "Vote counting", alpha = 0.4)

Run the code above in your browser using DataLab