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

Viechtbauer, Wolfgang (SP) wo||g@ng@v|echtb@uer @end|ng |rom m@@@tr|chtun|ver@|ty@n|
Mon Dec 13 21:59:36 CET 2021


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