[R-meta] equivalence of weighted regression and MA in the context of complex models
James Pustejovsky
jepu@to @end|ng |rom gm@||@com
Tue Apr 4 04:09:35 CEST 2023
On my first point, I explore the case of meta-regression where the
predictors vary only at the top level of the model in this post:
https://www.jepusto.com/weighting-in-multivariate-meta-analysis/
On Mon, Apr 3, 2023 at 9:06 PM James Pustejovsky <jepusto using gmail.com> wrote:
> Hi Yefeng,
>
> Comments inline below.
>
> James
>
> On Mon, Apr 3, 2023 at 8:27 PM Yefeng Yang via R-sig-meta-analysis <
> r-sig-meta-analysis using r-project.org> wrote:
>
>> Hi all,
>>
>> I am working on one paper, in which I want to show the equivalence of
>> weighted regression and random-effects meta-analysis in the context of the
>> multilevel model. Basically, it is an extension of Wolfgang's bloghttp://
>> www.metafor-project.org/doku.php/tips:rma_vs_lm_lme_lmer
>>
>> The intercept-only model works very well. We can get the same model
>> coefficients (estimated fixed effect or intercept beta0) from the two
>> models:
>> dat <- dat.konstantopoulos2011
>> # meta-analysis
>> res.ml <- rma.mv(yi, vi, random = list(~1|district, ~1|study), test =
>> "t", data=dat)
>> res.ml.lm <- lm(yi ~ 1, weights = rowSums(solve(vcov(res.ml,
>> type="obs"))), dat = dat)
>> coef(summary(res.ml))
>> coef(summary(res.ml.lm))
>>
>> If I do a post-hoc adjustment to the SE(beta0) of res.ml, we can get the
>> same SE from res.ml.lm:
>> coef(summary(res.ml.lm))[2]/summary(res.ml.lm)$sigma
>>
>> However, when I was working on meta-regression, it did not work. see the
>> below syntax:
>> # regression with vi as a predictor
>> res.mr <- rma.mv(yi, vi, random = list(~1|district, ~1|study), mods = ~
>> vi, test = "t", data=dat)
>> res.ml.lm <- lm(yi ~ vi, weights = rowSums(solve(vcov(res.ml,
>> type="obs"))), dat = dat)
>> coef(summary(res.mr))
>> coef(summary(res.mr.lm))
>>
>> This is a key illustration of my working paper. Hopefully, I can get some
>> help from here, especially from Wolfgang.
>
>
> It is not possible to represent this model as a weighted linear regression
> within the scope of lm(). The rma.mv() estimator uses generalized least
> squares with block-diagonal weight matrices and it is not generally
> possible to translate those block-diagonal weights into diagonal weights
> except under some pretty specific, restrictive circumstances (such as when
> the mods vary only at the highest level of the model).
>
>
>> Also, I would be grateful if someone would like to provide the formula to
>> estimate model slopes for meta-regression in non-matrix notation. Summation
>> notation is the best one - matrix notation is elsewhere.
>>
>>
> Why? The matrix notation is extremely useful for this sort of thing,
> whereas summation notation is cumbersome and awkward once you are working
> with regression/meta-regression models (especially when estimated by
> generalized least squares).
>
>
>> Best,
>> Yefeng Yang PhD
>> UNSW Sydney
>>
>> [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-sig-meta-analysis mailing list @ R-sig-meta-analysis using r-project.org
>> To manage your subscription to this mailing list, go to:
>> https://stat.ethz.ch/mailman/listinfo/r-sig-meta-analysis
>>
>
[[alternative HTML version deleted]]
More information about the R-sig-meta-analysis
mailing list