[R-meta] Difference between univariate and multivariate parameterization

Viechtbauer, Wolfgang (SP) wo||g@ng@v|echtb@uer @end|ng |rom m@@@tr|chtun|ver@|ty@n|
Fri Aug 20 13:31:23 CEST 2021


Dear Luke,

tau^2 doesn't mean the same thing across different models. In res5, the two tau^2 values can be thought of as sigma^2_within for single vs multi sample studies. Whether we call something tau^2, sigma^2, or chicken^2 doesn't carry any inherent meaning.

For example:

dat <- dat.crede2010
dat <- escalc(measure="ZCOR", ri=ri, ni=ni, data=dat, subset=criterion=="grade")

dat$studyid.copy <- dat$studyid
dat$sampleid.copy <- paste0(dat$studyid, ".", dat$sampleid)
rma.mv(yi, vi, random = ~ 1 | studyid/sampleid, data=dat)
rma.mv(yi, vi, random = list(~ studyid | studyid.copy, ~ sampleid | sampleid.copy), struct=c("ID","ID"), data=dat)

are identical models, but in the first we have two sigma^2 values and in the other we have tau^2 and gamma^2 (a bit of a silly example, but just to illustrate the point).

Best,
Wolfgang

>-----Original Message-----
>From: Luke Martinez [mailto:martinezlukerm using gmail.com]
>Sent: Thursday, 19 August, 2021 5:05
>To: Viechtbauer, Wolfgang (SP)
>Cc: Farzad Keyhan; R meta
>Subject: Re: [R-meta] Difference between univariate and multivariate
>parameterization
>
>Dear Wolfgang,
>
>Thanks for your reply. But, if in the multivariate specification: tau^2 =
>sigma^2_between  +  sigma^2_within, then in your suggested "res5" model where you
>fixed tau2 = 0 for single sample studies, you have killed both sigma^2_between +
>sigma^2_within, and not just sigma^2_within?
>
>Am I missing something?
>
>Thank you very much,
>Luke
>
>On Wed, Aug 18, 2021 at 3:01 PM Viechtbauer, Wolfgang (SP)
><wolfgang.viechtbauer using maastrichtuniversity.nl> wrote:
>It is also possible to formulate a model where sigma^2_within is *not* added for
>'single sample/estimate studies'. Let's consider this example:
>
>library(metafor)
>
>dat <- dat.crede2010
>dat <- escalc(measure="ZCOR", ri=ri, ni=ni, data=dat, subset=criterion=="grade")
>
>table(dat$studyid) # most studies are single sample studies
>
># multilevel model
>res1 <- rma.mv(yi, vi, random = ~ 1 | studyid/sampleid, data=dat)
>res1
>
># multivariate parameterization
>res2 <- rma.mv(yi, vi, random = ~ factor(sampleid) | studyid, data=dat)
>res2
>
># as a reminder, the multilevel model is identical to this formulation
>dat$sampleinstudy <- paste0(dat$studyid, ".", dat$sampleid)
>res3 <- rma.mv(yi, vi, random = list(~ 1 | studyid, ~ 1 | sampleinstudy),
>data=dat)
>res3
>
># logical to indicate for each study whether it is a multi sample study
>dat$multsample <- ave(dat$studyid, dat$studyid, FUN=length) > 1
>
># fit model that allows for a different sigma^2_within for single vs multi sample
>studies
>res4 <- rma.mv(yi, vi, random = list(~ 1 | studyid, ~ multsample | sampleinstudy),
>struct="DIAG", data=dat)
>res4
>
># fit model that forces sigma^2_within = 0 for single sample studies
>res5 <- rma.mv(yi, vi, random = list(~ 1 | studyid, ~ multsample | sampleinstudy),
>struct="DIAG", tau2=c(0,NA), data=dat)
>res5
>
>So this is all possible if you like.
>
>Best,
>Wolfgang
>
>>-----Original Message-----
>>From: R-sig-meta-analysis [mailto:r-sig-meta-analysis-bounces using r-project.org] On
>>Behalf Of Farzad Keyhan
>>Sent: Wednesday, 18 August, 2021 21:32
>>To: Luke Martinez
>>Cc: R meta
>>Subject: Re: [R-meta] Difference between univariate and multivariate
>>parameterization
>>
>>Dear Luke,
>>
>>In the multivariate specification (model 2), tau^2 = sigma^2_between  +
>>sigma^2_within. You can confirm that by your two models' output as well.
>>Also, because rho = sigma^2_between / (sigma^2_between  +  sigma^2_within),
>>then, the off-diagonal elements of the matrix can be shown to be rho*tau^2
>>which again is equivalent to sigma^2_between in model 1's matrix.
>>
>>Note that sampling errors in a two-estimate study could be different hence
>>appropriate subscripts will be needed to distinguish between them.
>>
>>Finally, note that even a study with a single effect size estimate gets the
>>sigma^2_within, either directly (model 1) or indirectly (model 2) which
>>would mean that, that one-estimate study **could** have had more estimates
>>but it just so happens that it doesn't as a result of some form of
>>multi-stage sampling; first studies, and then effect sizes from within
>>those studies.
>>
>>I actually raised this last point a while back on the list (
>>https://stat.ethz.ch/pipermail/r-sig-meta-analysis/2021-July/002994.html)
>>as I found this framework a potentially unrealistic but in the end, it's
>>the best approach we have.
>>
>>Cheers,
>>Fred
>>
>>On Wed, Aug 18, 2021 at 1:30 PM Luke Martinez <martinezlukerm using gmail.com>
>>wrote:
>>
>>> Dear Colleagues,
>>>
>>> Imagine I have two models.
>>>
>>> Model 1:
>>>
>>> random = ~1 | study / row_id
>>>
>>> Model 2:
>>>
>>> random = ~ row_id | study,  struct = "CS"
>>>
>>> I understand that the diagonal elements of the variance-covariance matrix
>>> of a study with two effect size estimates for each model will be:
>>>
>>> Model 1:
>>>
>>> VAR(y_ij) = sigma^2_between  +  sigma^2_within + e_ij
>>>
>>> Model 2:
>>>
>>> VAR(y_ij) = tau^2 + e_ij
>>>
>>> Question: In model 2's variance-covariance matrix, what fills the role of
>>> sigma^2_within (within-study heterogeneity) that exists in model 1's
>>> matrix?
>>>
>>> Thank you very much for your assistance,
>>> Luke Martinez


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