countGroupedDirection: Count directions of grouped tests

View source: R/countGroupedDirection.R

countGroupedDirectionR Documentation

Count directions of grouped tests

Description

Count the number of grouped tests that are significant and changing in each direction. Each group of tests is defined according to a grouping factor.

Usage

countGroupedDirection(
  p.values,
  grouping,
  effects,
  p.threshold = 0.05,
  effect.threshold = 0,
  method = c("BH", "holm"),
  log.p = FALSE
)

Arguments

p.values

A numeric vector containing p-values for individual tests.

grouping

A vector or factor of length equal to p.values, specifying the group to which each test is assigned.

Alternatively, an rle object where each run corresponds to a group and specifies the entries of p.values belonging to that group. This assumes that p.values is ordered such that all entries in the same group are adjacent to each other.

effects

A numeric vector of length equal to p.values, containing the effect size for each test.

p.threshold

Numeric scalar defining the adjusted p-value threshold at which test is significant.

effect.threshold

Numeric scalar defining the threshold at which an effect is “"up"” or “"down"”.

method

String specifying how the multiple testing correction within each group is to be performed.

log.p

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

Details

We apply a multiple testing correction within each group and define all significant tests as those with adjusted p-values below p.threshold. We then count the number of tests with effects greater than effect.threshold (i.e., going up) or less than the threshold (i.e., going down). This allows us to quantify the direction of change across the group into two counts.

The output of this function is simpler to interpret than the summarize*Direction functions. However, p.threshold has no clear relationship to the significance threshold applied to the combined p-values. Groups with many low p-values will have milder multiplicity corrections, resulting in more non-zero counts for both the up and down tests; this often complicates matters by introducing mixed directions of effect, even when the most significant changes in the group are in one direction.

Note that, if log.p=TRUE, the function will automatically handle the log-transformation of p.threshold.

Value

A list with the "up" and "down" entries. Both are integer vectors of length equal to the number of groups, containing the number of significant tests changing each each direction in each group.

Author(s)

Aaron Lun

See Also

summarizeGroupedDirection, for another way to summarize the overall direction into a single string.

countParallelDirection, for the equivalent function operating on parallel tests.

Examples

p <- rbeta(100, 0.5, 1)
eff <- rnorm(100)
g <- sample(20, 100, replace=TRUE)

(dirs <- countGroupedDirection(p, g, eff))


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