parallelWilkinson: Combine p-values with Wilkinson's method

View source: R/parallelWilkinson.R

parallelWilkinsonR Documentation

Combine p-values with Wilkinson's method

Description

Combine p-values from parallel tests with Wilkinson's method. Each group of p-values is defined from the corresponding entries across all vectors. The function processes all vectors “in parallel” - hence the name.

Usage

parallelWilkinson(p.values, log.p = FALSE, min.n = 1, min.prop = 0.5)

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.

min.n

Integer scalar specifying the minimum number of individual nulls to reject when testing the joint null.

min.prop

Numeric scalar in [0, 1], specifying the minimum proportion of individual nulls to reject when testing the joint null.

Details

Here, the joint null hypothesis for each group is all individual null hypotheses are false. Rejection of the joint null is heavily favored in situations where N or more individual nulls are rejected. This is achieved in Wilkinson's method by considering the N-th order statistic for uniformly distributed p-values. The individual tests are assumed to be independent, and all weights are ignored.

N is defined as the larger of min.n and the product of min.prop with the number of tests in the group (rounded up). This allows users to scale rejection of the joint null with the size of the group, while avoiding a too-low N when the group is small. Note that N is always capped at the total size of the group.

The representative test for each group is defined as that with the N-th smallest p-value, as this is used to compute the combined p-value. The influential tests for each group are defined as those with p-values no greater than the representative test's p-value. This is based on the fact that increasing them (e.g., by setting them 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 combined 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 per-group p-value.

Author(s)

Aaron Lun

References

Wilkinson B (1951). A statistical consideration in psychological research. Psychol. Bull. 48, 156-158.

See Also

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

parallelHolmMin, which has a more strict interpretation of N, amongst other things.

Examples

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

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

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


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