[R-meta] Choice of moderator for Egger's regression test in rma.mv

Viechtbauer, Wolfgang (SP) wo||g@ng@v|echtb@uer @end|ng |rom m@@@tr|chtun|ver@|ty@n|
Thu May 21 20:22:40 CEST 2020

Dear Betsy,

Unless you know exactly what you are doing, I would not mess with the weights in the context of a multilevel model. The (default) weighting structure in such models is more complex than just assigning a particular weight to each estimate. Such a multilevel model also implies a certain degree of covariance between the underlying true effects within studies, which results in a weight matrix that is not just diagonal, but also has non-zero off-diagonal elements. When estimating the overall mean (or fixed effects in general), this ensures that multiple estimates coming from the same study are not treated as if they are independent.

So, I would recommend using:

model <- rma.mv(ri.c, vi.c, random = ~ 1 | Study_ID/Effect_ID, data = data)

As for your actual question: Since you are meta-analyzing correlations, I would not use the sampling variances (or some function thereof) for an Egger-type test. There is an inherent correlation between correlations and their sampling variances, which can lead to false positives. I would use the inverse sample sizes as the predictor, that is:

model <- rma.mv(ri.c, vi.c, mods = ~ I(1/ni), random = ~ 1 | Study_ID/Effect_ID, data = data)

where 'ni' is the name of the variable containing the sample sizes.

And with respect to 'mods = ~ <moderator>' vs 'mods = <moderator>': This is explained under help(rma) and help(rma.mv). But you can essentially ignore the latter and always use the formula way of specifying moderators.


>-----Original Message-----
>From: R-sig-meta-analysis [mailto:r-sig-meta-analysis-bounces using r-project.org]
>On Behalf Of Elizabeth Wade
>Sent: Thursday, 21 May, 2020 18:34
>To: r-sig-meta-analysis using r-project.org
>Subject: [R-meta] Choice of moderator for Egger's regression test in rma.mv
>Dear all,
>I have fit a three-level model using rma.mv to meta-analyze correlation
>coefficients corrected for measurement unreliability. Based on this
>documentation (
>http://www.metafor-project.org/doku.php/tips:hunter_schmidt_method), I have
>weighted the model using the inverse of the corrected variance.
>My model is:
>model <- rma.mv(ri.c, vi.c, W = 1/vi.c, random = ~ 1 |
>Study_ID/Effect_ID, data = data, method = "REML")
>Now I am intending to perform Egger's regression test. Based on this
>explanation (
>I selected the inverse of the variance to use as a moderator in the
>regression test.
>So I have:
><- rma.mv(ri.c, vi.c, W = 1/vi.c, mods = 1/vi.c, random = ~ 1 |
>Study_ID/Effect_ID, data = data, method = "REML")
>As I do this, I wonder whether it is appropriate to use the inverse
>variance to both weight the model and to perform Egger's test. Will this
>not detect publication bias, given that I am examining potential bias using
>the same variable with which I weighted my model? Do you recommend a
>different approach?
>As an aside, I also wonder why some documentation uses the tilde before the
>moderators are listed (mods = ~age) and some do not (mods = 1/vi.c).
>Thank you for reading,
>Betsy Wade
>Betsy Wade, MA
>Clinical Psychology Doctoral Student
>Department of Psychology
>University of Pennsylvania

More information about the R-sig-meta-analysis mailing list