permutest.rma.uni {metafor} | R Documentation |
The function carries out permutation tests for objects of class "rma.uni"
.
## S3 method for class 'rma.uni': permutest(x, iter=1000, progbar=TRUE, digits=x$digits, ...)
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. |
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.
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.
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.
Wolfgang Viechtbauer; wvb@www.wvbauer.com; http://www.wvbauer.com/
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.
rma.uni
, print.permutest.rma.uni
### 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)