I am running a meta-analysis using metafor R package. I am comparing studies on a continuous variable, that can be synthetized by the mean. Such studies can be grouped in three blocks. I used a meta regression, e.g.

dat <- escalc(measure="MN", mi=mean, sdi=sd, ni=num, data=dbtemp)
res <- rma(yi, vi, mods =~ factor(group), data=dat)

I know that I can know whether group is significant or not. But how can I assess whether each level within group is significant from the other. I.e., how I can perform multiple comparisons (post hoc analysis) within a meta - analysis context?

  • $\begingroup$ If group is dummy coded, can you just change the reference category? $\endgroup$ – Jeremy Miles Nov 16 '15 at 22:31

You can use anova(res, L=c(...)) to obtain contrasts. For a three-level factor (with levels 1, 2, and 3), the model will include two dummy variables, contrasting level 2 vs 1 and level 3 vs 1. So you already have those contrasts. With anova(res, L=c(0,-1,1)) you can get the contrast of level 3 vs 2. If you want all three contrasts at the same time, use:

anova(res, L=rbind(c(0,1,0),c(0,0,1),c(0,-1,1)))

You can also use the glht() function from the multcomp package for this:

summary(glht(res, linfct=rbind(c(0,1,0),c(0,0,1),c(0,-1,1))), test=adjusted("none"))

By changing the test argument, you can obtain multiplicity adjusted p-values (see help(summary.glht) for more details).

I also have an extensive discussion/illustration related to these types of analyses on the metafor package website. See:



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.