parallelBerger: Combine parallel p-values with Berger's IUT

View source: R/parallelBerger.R

parallelBergerR Documentation

Combine parallel p-values with Berger's IUT

Description

Combine p-values from parallel tests with Berger's intersection-union test (IUT). Each group of p-values is defined from the corresponding entries across all vectors.

Usage

parallelBerger(p.values, log.p = FALSE)

Arguments

p.values

A list of numeric vectors of the same length, containing the p-values to be combined.

log.p

Logical scalar indicating whether the p-values in p.values are log-transformed.

Details

The joint null hypothesis for each group is that any of the individual null hypotheses are true. Berger's IUT will only reject the joint null if all of the individual nulls are rejected. This method is applicable under arbitrary dependency structures. No weights are considered.

The representative test for each group is defined as the test with the largest p-value, as this is ultimately used as the IUT p-value. All tests for each group are considered to be influential as increasing any of them (e.g., to unity) would result in a larger combined p-value.

Value

A list containing:

  • p.value, a numeric vector of length equal to the length of each vector in p.values. This contains the IUT p-value for each group, log-transformed if log.p=TRUE.

  • representative, an integer scalar specifying the representative test in each group. Specifically, this refers to the index of the vector of p.values containing the representative test.

  • influential, a list of logical vectors mirroring the structure of p.values. Entries are TRUE for any p-value that is deemed “influential” to the final combined p-value.

Author(s)

Aaron Lun

References

Berger RL and Hsu JC (1996). Bioequivalence trials, intersection-union tests and equivalence confidence sets. Statist. Sci. 11, 283-319.

See Also

groupedBerger, for the version that combines p-values based on a grouping factor.

Examples

p1 <- rbeta(100, 0.8, 1)
p2 <- runif(100)
p3 <- rbeta(100, 0.5, 1)

# Standard application:
out <- parallelBerger(list(p1, p2, p3))
str(out)

# With log p-values. 
out <- parallelBerger(list(log(p1), log(p2), log(p3)), log.p=TRUE)
str(out)


LTLA/metapod documentation built on Jan. 19, 2024, 11:49 p.m.