[R-meta] Multivariate meta regression and predict for robust estimates

Ivan Jukic |v@n@juk|c @end|ng |rom @ut@@c@nz
Sat Oct 23 03:16:45 CEST 2021


Dear Reza,

Thank you for illustrating your points thoroughly – I really appreciate your time and effort invested! This made sense to me, I was just confused with the term "study-group combinations" and what that meant to you, but it's now more than clear since you confirmed that your row_id is what I refer to with es_id (the code also demonstrates this effectively). 

Thanks again for your time!

Cheers,
Ivan

---
From: Reza Norouzian <rnorouzian using gmail.com>
Sent: Friday, 22 October 2021 6:46 PM
To: Ivan Jukic <ivan.jukic using aut.ac.nz>
Cc: r-sig-meta-analysis using r-project.org <r-sig-meta-analysis using r-project.org>
Subject: Re: [R-meta] Multivariate meta regression and predict for robust estimates 
 
With apologies for posting in HTML.

Yes, you seem to be in scenario three. There are some systematic features in studies that have led to the repetition of the same outcome levels in each study. But these features are absent in the data. A starting point might be (to take advantage of the possible boost in precision etc. as a result of correlated REs):

random = list(~ outcome | study, ~ 1 | es_id), struct = "UN"

Yes, es_id encapsulates all the uniquenesses (the combination of the features that I referred to in my previous post) that define a single row. If you already have coded for all these features along the way, then following them takes you right to a single row. 

For example, imagine you have 40 studies, each with two treatment groups (and you have coded for this), and two outcomes (and you have coded for this).
Thus, you have 40 four-row studies. Here, knowing the study number, group number, and the outcome indicator gets you to a single row in the data.

That is, the combination of study 1, group 1, outcome A gets you to the first row, 1,1,B gets you to the second one, 1,2,A to the third one, and 1,2,B to the fourth one.


In this case, use of row_id is simply pointless, because you already have all that is needed to travel the distance from a study-level true effect up to a single row's true effect.

If you want to play around with syntax, here is some data:

data <- read.csv("https://raw.githubusercontent.com/rnorouzian/s/main/in.csv")

These combinations are encapsulated in the "study/group/outcome" piece in the following model:

(m1 <- rma.mv(yi, vi, random = list(~1|study/group/outcome), data = data))

Now, if you force row_id onto the model above, you'll see that row_id will fill no new place here but just pushes the one already occupied by the last piece that essentially holds the GPS location of each single row i.e, .../outcome.

(m2 <- rma.mv(yi, vi, random = list(~1|study/group/outcome/row_id), data = data))

Thus, this also means that if we remove outcome and instead use row_id we exactly reproduce m1:

(m3 <- rma.mv(yi, vi, random = list(~1|study/group/row_id), data = data))

Kind regards,
Reza


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