Dear Gladys,
random=list( ~1|study,~1|lab) makes little sense, since study = 1 from lab
X would receive the same random effect as study = 1 from lab Y, but I
assume that the 1 is just a number that distinguishes multiple studies from
the same lab and has no inherent meaning that somehow links the 1 from lab
X to the 1 from lab Y.
Instead, random=~1|lab/study (you don't need the list()) seems more
applicable. This adds random effects for each level of lab and for each
study within each lab. Hence, the combination X-1 will be a different
random effect than the combiantion Y-1.
However, this assumes no heterogeneity of the true effects within a study
(within a lab). For example, this would assume that the 0.3 and 0.6 (for
X-1) are both estimates of the same underlying true effect, which is
assumed to be identical. That may or may not be true. Hence, as I noted in
my response to Simon (see also
https://www.metafor-project.org/doku.php/analyses:konstantopoulos2011 and
search the archives for similar discussions), one should add higher level
random effects (such as those for study and lab) to the random effects at
the estimate level. So, if you dataset is called 'dat', then do:
dat$estid <- 1:nrow(dat)
in combination with random=~1|lab/study/estid.
Finally, random=list(~1|lab, ~1|lab/study) is superfluous. ~ 1 | lab adds
random effects for each level of lab and ~1|lab/study also does this (plus
it adds random effects for each level of study within lab). So this would
add random effects for lab twice.
Best,
Wolfgang
-----Original Message-----
From: Gladys Barragan-Jason [mailto:gladou86 at gmail.com]
Sent: Thursday, 18 March, 2021 11:17
To: Viechtbauer, Wolfgang (SP)
Cc: R meta
Subject: Re: [R-meta] Multivariate meta-analysis when "some studies" are
outcome
Dear Wolfgang,
After reading your post carefully, I am still a bit confused about how to
implement the random effects.
My data are coded as follows (similar number or text in one lab means
similar number or text in one study means same participants). As you can
can have several studies from one lab and several effect sizes for one
Should I then code the random effects like this:
random=list( ~1|study,~1|lab)
or like this:
random=list( ~1|lab/study)
or like that;
random=list( ~1|lab, ~1|lab/study)
lab study effect size
X 1 0.3
X 1 0.6
X 2 0.2
Y 1 0.5
Y 2 0.1
Z 1 0.1
Thanks a lot for your help.
Best wishes,
Gladys
Le mer. 17 mars 2021 ? 13:27, Viechtbauer, Wolfgang (SP)
<wolfgang.viechtbauer at maastrichtuniversity.nl> a ?crit :
Dear Gladys,
Whether this makes sense depends on how thse variables are coded. There
several posts in the past on this mailing list where this was discussed.
-----Original Message-----
From: Gladys Barragan-Jason [mailto:gladou86 at gmail.com]
Sent: Tuesday, 16 March, 2021 11:39
To: Viechtbauer, Wolfgang (SP)
Cc: Simon Harmel; R meta
Subject: Re: [R-meta] Multivariate meta-analysis when "some studies" are
outcome
Dear Wolfgang,
Following Simon's question, I am also comparing the efficiency of
post comparisons).
For some of them, I do have several effect sizes for one study and one
was using the following code to account for it.
res.ExpNC<-rma.mv(yi, vi, mods= ~ categ , random=list(
~1|study,~1|lab),data=dat2)
But I am now wondering whether I should do this instead:
dat2$estid <- 1:nrow(dat2)
res.ExpNC<-rma.mv(yi, vi, mods= ~ categ , random=list(
~1|study/estid,~1|lab/estid),data=dat2)
What do you think?
Thanks a lot for your response,
Gladys
Le mar. 16 mars 2021 ? 11:28, Viechtbauer, Wolfgang (SP)
<wolfgang.viechtbauer at maastrichtuniversity.nl> a ?crit :
Dear Simon,
At the very least, you should add random effects at the level of the
at the level of the estimates, so:
dat$estid <- 1:nrow(dat)
and then
random = ~ 1 | id / estid
For longitudinal data, one could also consider using some kind of
matrix with an autocorrelation structure.
If the different outcomes are meaningfully related across studies (i.e.,
'1' stands for the same thing across all studies), then one could also
using an unstructured var-cov matrix with correlated random effects for