Skip to content

[R-meta] rma.mv meta-regression

5 messages · Emanuele F. Osimo, James Pustejovsky, Simon Harmel +1 more

#
Dear all,
as usual, apologies for a potentially silly question.

I am doing multi-variate meta-analysis of studies looking a different
inflammatory markers (called cytokines, in short cyto).
Each study measured multiple cytokines for the same sample.

The code is running like so:
I was wondering if it is possible to perform meta-regression using the
same technique, such as on average study participant age (a variable
called age), on all studies at the same time, but grouped by cyto, and
what the code would look like.

Many thanks for your help.

Emanuele
#
Hi Emanuele,

Comments inline below.

Kind Regards,
James
On Mon, Jan 4, 2021 at 10:25 AM Emanuele F. Osimo <efo22 at cam.ac.uk> wrote:

            
Are the measures of different cytokines correlated? Is it possible to get
estimates of the degree of correlation between the outcomes in each study?
If so, then it would be preferable to specify a true multivariate model
that allows for correlation between the effect size estimates themselves
(i.e., in the V matrix). Example code here:
http://www.metafor-project.org/doku.php/analyses:gleser2009
If it is not possible to get the correlations between outcomes, then it
might be advisable to still make a guess about the degree of correlation,
as demonstrated here:
https://www.jepusto.com/imputing-covariance-matrices-for-multi-variate-meta-analysis/
and effect size to be different for each type of cytokine? If so, then you
can specify this using an interaction between cyto and the moderator:

  > rma.mv(yi = yi, V = vi, mods = ~ 0 + cyto + cyto:age, random = ~cyto |
studycode, struct = "UN", method = 'REML', data = mydata, control =
list(optimizer = "hjk"))
#
Dear James,

If I may ask three quick follow-ups:

(1) Why are you removing the intercept (~ 0) in your rma.mv() call?
(2) What if, only a small portion of studies have used multiple outcomes?
Is a multivariate multilevel model still recommended?
(3) What if, multiple-end point and multi-treatment studies co-occur in the
pool of studies? Should RVE be preferred over a multivariate multilevel
model?

Thank you, for your consideration,
Simon
On Mon, Jan 4, 2021 at 3:35 PM James Pustejovsky <jepusto at gmail.com> wrote:

            

  
  
#
Further comments from my side below as well.

Best,
Wolfgang
This model should not have any variance components called "sigma2.1" or "sigma2.2". When using the "random = ~ IDeffect | IDstudy" notation, you should get "tau2" and "rho" values.

However, this model doesn't make much sense. I assume that different values of "IDeffect" are just used to differentiate multiple effects within the same study, but the levels are not meaningful in themselves (as opposed to the Berkey example, where the two levels of the 'inner' factor differentiate the two different outcomes). It would make more sense to use 'random = ~ IDeffect | IDstudy, struct = "CS"' which is in essence the same as 'random = ~ 1 | IDstudy / IDeffect'. See:

http://www.metafor-project.org/doku.php/analyses:konstantopoulos2011
This is probably again related to using struct="UN", which is (probably) not appropriate here.
It should be: "random = ~ 1 | IDstudy / IDeffect" or "random = ~ 1 | IDstudy / IDsubsample / IDeffect".
Agree. I would go with the IDstudy/IDsubsample/IDeffect model.
#
Argh, having some troubles with my email client and ended up replying to the wrong post below. This post was meant to be a response to:

https://stat.ethz.ch/pipermail/r-sig-meta-analysis/2021-January/002565.html

Sorry about the mess.

Best,
Wolfgang

-----Original Message-----
From: R-sig-meta-analysis [mailto:r-sig-meta-analysis-bounces at r-project.org] On Behalf Of Viechtbauer, Wolfgang (SP)
Sent: Tuesday, 05 January, 2021 9:39
To: James Pustejovsky; Emanuele F. Osimo
Cc: R meta
Subject: Re: [R-meta] rma.mv meta-regression

Further comments from my side below as well.

Best,
Wolfgang
This model should not have any variance components called "sigma2.1" or "sigma2.2". When using the "random = ~ IDeffect | IDstudy" notation, you should get "tau2" and "rho" values.

However, this model doesn't make much sense. I assume that different values of "IDeffect" are just used to differentiate multiple effects within the same study, but the levels are not meaningful in themselves (as opposed to the Berkey example, where the two levels of the 'inner' factor differentiate the two different outcomes). It would make more sense to use 'random = ~ IDeffect | IDstudy, struct = "CS"' which is in essence the same as 'random = ~ 1 | IDstudy / IDeffect'. See:

http://www.metafor-project.org/doku.php/analyses:konstantopoulos2011
This is probably again related to using struct="UN", which is (probably) not appropriate here.
It should be: "random = ~ 1 | IDstudy / IDeffect" or "random = ~ 1 | IDstudy / IDsubsample / IDeffect".
Agree. I would go with the IDstudy/IDsubsample/IDeffect model.