omnibus.test: Omnibus Test for the Global Null Hypothesis

Description Usage Arguments Details Value Author(s) References See Also Examples

Description

omnibus.test tests the global null hypothesis. Rejection can be interpreted as evidence for at least one alternative hypothesis to be true.

Usage

1
omnibus.test(p, method = c("z", "p", "log.p"), N.sim = 10000, approximate = FALSE)

Arguments

p

numeric vector or matrix of input p-values. In the case of a matrix, rows correspond to individual hypotheses.

method

character string naming a pre-defined transformation of input p-values (see 'Details'). Alternatively, a custom function can be specified that takes a numeric vector as input and returns a vector of transformed values.

N.sim

numeric indicating the number of simulations that should be performed under H0.

approximate

logical specifying whether a beta-approximation should be applied to allow for extreme p-values, or not (default).

Details

Before summing up p-values they are transformed according to method. The following pre-defined options are available:

z

p-values are transformed to z-scores.

p

1-p.

log.p

-log(p).

Value

A numeric vector of p-values under the global null hypothesis, with length of 1 if p is a vector or length equal ncol(p) if p is a matrix.

Author(s)

Thomas Taus and Andreas Futschik

References

Futschik A., Taus T. and Zehetmayer S.: An omnibus test for the global null hypothesis, arXiv 2017, 1709.00960.

See Also

hc.test.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# perform Omnibus-test for 5 p-values under H0
p <- runif(5)
omnibus.test(p=p)

# perform 10,000 Omnibus-tests for p-values under H0
n <- 10000
p <- matrix(runif(n*5), nrow=5)
p.global <- omnibus.test(p=p)
hist(p.global)

# test 3 hypotheses with and without effekt
p1 <- t.test(rnorm(15, mean=1), rnorm(15, mean=1))$p.value # mean identical
p2 <- t.test(rnorm(15, mean=2), rnorm(15, mean=2))$p.value # mean identical
p3 <- t.test(rnorm(15, mean=1), rnorm(15, mean=2))$p.value # mean different
# perform Omnibus-test of the null hypothesis that none of the three tests is significant
omnibus.test(p=c(p1, p2, p3))

# repeat Omnibus-test using another predefined method to transform input p-values
omnibus.test(p=c(p1, p2, p3), method="log.p")

# repeat Omnibus-test using a custom transformation of input p-values
transformation <- function(x) {
  x^-2
}
omnibus.test(p=c(p1, p2, p3), method=transformation)

ThomasTaus/omnibus documentation built on May 30, 2019, 3:01 p.m.