permutest.rma.uni {metafor}R Documentation

Permutation Tests for rma.uni Objects

Description

The function carries out permutation tests for objects of class "rma.uni".

Usage

## S3 method for class 'rma.uni':
permutest(x, iter=1000, progbar=TRUE, digits=x$digits, ...)

Arguments

x an object of class "rma.uni".
iter integer to specify the number of iterations for the permutation test (default is 1000 iterations).
progbar logical indicating whether a progress bar should be shown (default is TRUE).
digits an integer specifying the number of decimal places to which the printed results should be rounded (the default is to take the value from the object).
... other arguments.

Details

For models without moderators, the permutation test is carried out by permuting the sign of the observed effect sizes or outcomes. The p-value of the permutation test is then the proportion of times that the test statistic under the permuted data is more extreme than under the actually observed data. See Follmann and Proschan (1999) for more details.

For models with moderators, the permutation test is carried out by permuting the rows of the design matrix. The p-value for a particular model coefficient is equal to the proportion of times that the test statistic for the coefficient under the permuted data is more extreme than under the actually observed data. Similarly, for the omnibus test, the p-value is the proportion of times that the test statistic for the omnibus test is more extreme than the actually observed one. See Higgins and Thompson (2004) for more details.

Value

An object of class "permutest.rma.uni". The object is a list containing the following components:

pval p-value(s) based on the permutation test.
QMp p-value for the omnibus test of coefficients based on the permutation test.
... some additional elements/values are passed on.


The results are formated and printed with the print.permutest.rma.uni function.

Note

An exact permutation test would require fitting the model to each possible permutation once. However, the number of possible permutations increases rapidly with the number of outcomes/studies (i.e., k). For example, for k=5, there are only 120 possible permutations. For k=8, there are already 40,320. And for k=10, there are 3,628,800. Therefore, going through all possible permutations quickly becomes infeasible. Instead, the function approximates the exact permutation-based p-values by going through a smaller number (as specified by the iter argument) of random permutations. Therefore, running the function twice on the same data will yield slightly different p-values. Setting iter sufficiently large ensures that the results become stable.

Author(s)

Wolfgang Viechtbauer; wvb@www.wvbauer.com; http://www.wvbauer.com/

References

Follmann, D. A. & Proschan, M. A. (1999) Valid inference in random effects meta-analysis. Biometrics, 55, 732–737.

Higgins, J. P. T. & Thompson, S. G. (2004) Controlling the risk of spurious findings from meta-regression. Statistics in Medicine, 23, 1663–1682.

See Also

rma.uni, print.permutest.rma.uni

Examples

### load BCG vaccine data
data(dat.bcg)

### calculate log risk ratios and corresponding sampling variances
dat <- escalc(measure="RR", ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat.bcg)
dat <- cbind(dat.bcg, dat)

### random-effects model 
res <- rma(yi, vi, data=dat, method="REML")
## Not run: permutest(res)

### mixed-effects model with two moderators (absolute latitude and publication year)
res1 <- rma(yi, vi, mods=cbind(ablat, year), data=dat, method="REML")
## Not run: permutest(res)

[Package metafor version 0.5-7 Index]