[R-meta] metafor::matreg() and its workflow

Stefanou Revesz @te|@noureve@z @end|ng |rom gm@||@com
Mon Dec 13 22:15:29 CET 2021


Super helpful! For some reason, the devel version doesn't get
installed on my machine (must be an R issue; mine's a version 4.0).

At some point, one might say which regression is more useful, the one
on the means from the fixed effects or the one on the true effects
from the random effects!

rma.mv(yi ~ 0 + outcome*group, V, random = ~ 0 + outcome*group |
study, struct = "GEN")

Thank you so very much!
Stefanou

On Mon, Dec 13, 2021 at 2:59 PM Viechtbauer, Wolfgang (SP)
<wolfgang.viechtbauer using maastrichtuniversity.nl> wrote:
>
> Here is an example using G as input to matreg():
>
> https://www.metafor-project.org/doku.php/analyses:vanhouwelingen2002#regression_of_true_log_odds
>
> (you will need the devel version of metafor for the cvvc="varcov" part).
>
> Best,
> Wolfgang
>
> >-----Original Message-----
> >From: Stefanou Revesz [mailto:stefanourevesz using gmail.com]
> >Sent: Monday, 13 December, 2021 21:20
> >To: Viechtbauer, Wolfgang (SP)
> >Cc: R meta
> >Subject: Re: metafor::matreg() and its workflow
> >
> >Thank you so much! One clarification question. matreg() is not
> >effect-size specific, correct? I mean you may have meta-analyzed any
> >type effect size (SMD, ROM, OR, ...) and then subject the vcov() or G
> >or H matrices of those meta-analyses to matreg(), correct?
> >
> >Thanks again,
> >Stefanou
> >
> >On Mon, Dec 13, 2021 at 12:53 PM Viechtbauer, Wolfgang (SP)
> ><wolfgang.viechtbauer using maastrichtuniversity.nl> wrote:
> >>
> >> There is an upcoming talk by Suzanne Jak on MASEM at this seminar series:
> >>
> >> https://www.srmasig.org/seminar/
> >>
> >> Might be of interest.
> >>
> >> Best,
> >> Wolfgang
> >>
> >> >-----Original Message-----
> >> >From: Stefanou Revesz [mailto:stefanourevesz using gmail.com]
> >> >Sent: Thursday, 09 December, 2021 23:23
> >> >To: Viechtbauer, Wolfgang (SP)
> >> >Cc: R meta
> >> >Subject: Re: metafor::matreg() and its workflow
> >> >
> >> >Dear Wolfgang,
> >> >
> >> >I see, so conditioning (using predict() ) is the way to go even if
> >> >there is a large set of conditions.
> >> >
> >> >Related to the above, if instead of vcov(), one intends to use G and H
> >> >matrices (latent regression), would that also require conditioning on
> >> >the levels of fixed effects?
> >> >
> >> >The other challenge that I expect to encounter (I'm preparing to do a
> >> >meta-analysis exploring anxiety and achievement) is that correlations
> >> >reported in each study may not reflect the same pair of variables
> >> >across the studies. Thus, this prevents me from having a "var1.var2"
> >> >like variable in my model which also means I can't proceed to mateg().
> >> >I believe, in that case, I can do only an exploratory study of
> >> >correlations (with rma.mv() ) rather than a model based one (with
> >> >matreg() ).
> >> >
> >> >Thank you,
> >> >Stefanou
> >> >
> >> >
> >> >On Thu, Dec 9, 2021 at 12:24 PM Viechtbauer, Wolfgang (SP)
> >> ><wolfgang.viechtbauer using maastrichtuniversity.nl> wrote:
> >> >>
> >> >> I don't know what it is you are really trying to accomplish. One can stick
> >> >moderators into the rma.mv() model, sure. So one can 'control' for them, or in
> >> >other words, the estimated correlation matrix will then be a conditional
> >estimate
> >> >given a certain set of values for the moderators. That can be further passed
> >on
> >> >to matreg(). But I don't know if this is what you want to do, so I cannot say
> >> >whether this is methodologically reasonable or whether a more reasonable
> >exists -
> >> >- to accomplish what? And what exactly is the problem of moderators in the
> >> >rma.mv() fit?
> >> >>
> >> >> Best,
> >> >> Wolfgang
> >> >>
> >> >> >-----Original Message-----
> >> >> >From: Stefanou Revesz [mailto:stefanourevesz using gmail.com]
> >> >> >Sent: Thursday, 09 December, 2021 18:40
> >> >> >To: Viechtbauer, Wolfgang (SP)
> >> >> >Cc: R meta
> >> >> >Subject: Re: metafor::matreg() and its workflow
> >> >> >
> >> >> >Thanks Wolfgang,
> >> >> >
> >> >> >But is what I have done a methodologically reasonable way to do this,
> >> >> >or a more reasonable way exists.
> >> >> >
> >> >> >It's great that vcov() or random effects var-covariance matrix can be
> >> >> >obtained from an rma.mv() fit and then used in a secondary SEM
> >> >> >framework.
> >> >> >
> >> >> >But it seems to me that moderators used in rma.mv() get in the way,
> >> >> >and I often have several of them.
> >> >> >
> >> >> >So, is there any literature on this or a strategy to get around the
> >> >> >problem of moderators in the rma.mv() fit?
> >> >> >
> >> >> >Thank you for your guidance,
> >> >> >Stefanou
> >> >> >
> >> >> >On Thu, Dec 9, 2021 at 11:17 AM Viechtbauer, Wolfgang (SP)
> >> >> ><wolfgang.viechtbauer using maastrichtuniversity.nl> wrote:
> >> >> >>
> >> >> >> >-----Original Message-----
> >> >> >> >From: Stefanou Revesz [mailto:stefanourevesz using gmail.com]
> >> >> >> >Sent: Tuesday, 07 December, 2021 23:41
> >> >> >> >To: Viechtbauer, Wolfgang (SP)
> >> >> >> >Cc: R meta
> >> >> >> >Subject: Re: metafor::matreg() and its workflow
> >> >> >> >
> >> >> >> >Hi Wolfgang,
> >> >> >> >
> >> >> >> >Once again, thank you for the chapter and the two useful resources.
> >> >> >> >For concreteness, are the last two lines OK to use or other solutions
> >> >> >> >exist?
> >> >> >> >
> >> >> >> >Many thanks,
> >> >> >> >Stefanou
> >> >> >> >
> >> >> >> >set.seed(0)
> >> >> >> >dat <- dat.craft2003
> >> >> >> >dat$Xwb <- rnorm(nrow(dat),rnorm(nrow(dat),9,4),2)
> >> >> >> >
> >> >> >> >tmp <- rcalc(ri ~ var1 + var2| study, ni=ni, data=dat)
> >> >> >> >V <- tmp$V
> >> >> >> >dat$var1.var2 <- tmp$dat$var1.var2
> >> >> >> >
> >> >> >> >dat$var1.var2 <- factor(dat$var1.var2,
> >> >> >> >                        levels=c("acog.perf", "asom.perf",
> >> >> >> >"conf.perf", "acog.asom", "acog.conf", "asom.conf"))
> >> >> >> >
> >> >> >> >res <- rma.mv(ri~ 0+var1.var2+sport+Xwb, V, random = ~ var1.var2 |
> >> >> >> >study, struct="UN", data=dat)
> >> >> >> >
> >> >> >> >R <- vec2mat(coef(res)[1:6]) # Is this OK?
> >> >> >>
> >> >> >> The first 6 coefficients are the estimated pooled correlations when
> >'sport'
> >> >is
> >> >> >I and when Xwb is 0. If this is what you want, then this is ok.
> >> >> >>
> >> >> >> >matreg(1, 2:4, R=R, V=vcov(res)[1:6,1:6]) # Is this OK?
> >> >> >>
> >> >> >> If the above is ok, then this is ok.
> >> >> >>
> >> >> >> Best,
> >> >> >> Wolfgang



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