parallelWilkinson {metapod} | R 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)

[Package metapod version 1.2.0 Index]