[R-meta] Meta-analysis of intra class correlation coefficients

Viechtbauer, Wolfgang (NP) wo||g@ng@v|echtb@uer @end|ng |rom m@@@tr|chtun|ver@|ty@n|
Wed Oct 16 22:20:44 CEST 2024


I don't understand what you mean by 'related traits'. Also, if multiple estimates are extracted from the same cohort, you may need to account for this as well. But leaving this aside, you should fit a single bivariate model to the z(rMZ) and z(rDZ) values. Maybe something like this:

model <- rma.mv(
  zi,
  vzi,
  random = list(~ MZDZ_factor | Study_ID, ~ MZDZ_factor | ESID), struct="UN",
  data = data,
  mods = ~ 0 + MZDZ_factor + DZMZ_factor,
  method = "REML",
  tdist = TRUE)

although not sure whether this will converge.

coef(model) then gives you the two coefficients and vcov(model) the corresponding var-cov matrix thereof. The multivariate delta method is described here:

https://en.wikipedia.org/wiki/Delta_method#Multivariate_delta_method

This is implemented, for example in msm::deltamethod(). Double-check this, but:

deltamethod(~ 2*((exp(2*x1) - 1) / (exp(2*x1) + 1) - (exp(2*x2) - 1) / (exp(2*x2) + 1)), coef(model), vcov(model))

should then give you the SE of 2*(rMZ - rDZ).

Best,
Wolfgang

> -----Original Message-----
> From: St Pourcain, Beate <Beate.StPourcain using mpi.nl>
> Sent: Wednesday, October 16, 2024 10:59
> To: Viechtbauer, Wolfgang (NP) <wolfgang.viechtbauer using maastrichtuniversity.nl>; R
> Special Interest Group for Meta-Analysis <r-sig-meta-analysis using r-project.org>
> Subject: RE: Meta-analysis of intra class correlation coefficients
>
> ATTACHMENT(S) REMOVED: Funnel_DZ_ICC_simple_withN_rZ.png |
> Funnel_MZ_ICC_simple_withN_rZ.png
>
> Dear Wolfgang,
> Many thanks for the suggestions!
> The r-Z transformation was easily applied, as suggested.
>
> data$zi <- FisherZ(data$r)
> data$vzi <- 1/(data$n-3/2)
> egger_seMZ <- regtest(MZdata$zi, MZdata$vzi)
> egger_seDZ <- regtest(DZdata$zi, DZdata$vzi)
>
> ...and improved the Egger regression
> zrMZ_se_z       zrDZ_se_z
> -3.968          -5.519
>
> Also, the funnel plots look better (see attached). We subsequently carried out
> the rma.mv as the ICC estimates partially represent related traits estimated
> within the same study (i.e. the estimates are related within rMZ and within
> rDZ), and of course rMZ and rDZ are nested within the same study and also
> sometimes the same cohort (for code see below).
>
> For the subsequent analysis, we back-transformed the Z-score intercept from
> rma.mv with
>
> rMZ <- FisherZInv(model2$b[1])
> rDZ <- FisherZInv(model1$b[1])
>
> However, we are unsure as to how to best backtransform model2$se[1] and
> model1$se[1], i.e. the SEs of the rZ intercepts from rma.mv using the delta
> method as you recommended. Could you please advise? This will create the input
> for the subsequent heritability analyses.
>
> Best wishes,
> Beate
>
> #################################################################
> Study_ID - Cohort ID
> ESID - actual Study ID
> MZDZ_factor - (MZ=1, DZ=0)
> DZMZ_factor - (DZ=1,MZ=0)
>
> For completeness, I add the code below that was adapted from the Austerberry
> study for z values:
> model1 <- rma.mv(
>   zi,
>   vzi,
>   random = list(~MZDZ_factor|Study_ID, ~ MZDZ_factor | ESID),
>   data = data,
>   mods = ~ MZDZ_factor,
>   method = "REML",
>   tdist = TRUE
> )
>
> model2 <- rma.mv(
>   zi,
>   vzi,
>   random = list(~DZMZ_factor|Study_ID, ~ DZMZ_factor | ESID),
>   data = data,
>   mods = ~ DZMZ_factor,
>   method = "REML",
>   tdist = TRUE
> )
>
> Beate St Pourcain, PhD
> Senior Investigator & Group Leader
> Room A207
> Max Planck Institute for Psycholinguistics | Wundtlaan 1 | 6525 XD Nijmegen |
> The Netherlands
>
> @bstpourcain
> Tel: +31 24 3521964
> Fax: +31 24 3521213
> ORCID: https://orcid.org/0000-0002-4680-3517
> Web: https://www.mpi.nl/departments/language-and-genetics/projects/population-
> variation-and-human-communication/
> Further affiliations with:
> MRC Integrative Epidemiology Unit | University of Bristol | UK
> Donders Institute for Brain, Cognition and Behaviour | Radboud University | The
> Netherlands
>
> -----Original Message-----
> From: Viechtbauer, Wolfgang (NP)
> <mailto:wolfgang.viechtbauer using maastrichtuniversity.nl>
> Sent: Monday, October 14, 2024 3:32 PM
> To: St Pourcain, Beate <mailto:Beate.StPourcain using mpi.nl>; R Special Interest
> Group for Meta-Analysis <mailto:r-sig-meta-analysis using r-project.org>
> Subject: RE: Meta-analysis of intra class correlation coefficients
>
> It is not ideal to meta-analyze raw correlations (or raw ICC values) if they are
> so large. In this case, I think the r-to-z transformation is highly advisable.
>
> What you observe is the fact that the variance of a raw correlation coefficient
> depends on the true correlation. In particular, the large-sample estimate of the
> variance of a raw correlation coefficient (or ICC based on pairs) is (1-r^2)^2 /
> (n-1), where r is the observed correlation and n the sample size. Therefore, as
> r gets close to 1, the variance will get small, as you noted.
>
> It is therefore no surprise that the Egger regression test is highly
> significant. Of course, this then says nothing about potential publication bias.
> There is an inherent link between the correlation and its varianace (and hence
> standard error). The same issue also arises with other outcome measures / effect
> sizes (e.g., standardized mean differences).
>
> In the present case, the r-to-z transformation 'solves' this issue, since
> Var[z_r] =~ 1/(n-3) for Pearson correlations and Var[z_ICC] =~ 1/(n-3/2) for
> ICC(1) values.
>
> I would then consider doing a bivariate meta-analysis of the z_ICC_mz and
> z_ICC_dz values. Since they are based on independent samples, their sampling
> errors are uncorrelated, but the random effects of the bivariate model then
> account for potential correlation in the underlying true (transformed) ICC
> values. This is analogous to what people do when pooling sensitivity and
> specificity values in a diagnostic test meta-analysis and also directly relates
> to the bivariate model discussed by van Houwelingen et al. (2002):
>
> https://www.metafor-project.org/doku.php/analyses:vanhouwelingen2002
>
> You can then estimate the heritability from this model by back-transforming the
> pooled estimate for the MZ twins and the pooled estimate from the DZ twins and
> taking twice the difference. The SE and hence CI for this can then be obtained
> via the delta method.
>
> This raises interesting questions about the difference between between
> 'pooled(x) - pooled(y)' versus 'pooled(x - y)' -- there are papers in the
> literature that discuss this issue (not in the present context) -- but the
> latter option doesn't appear sensible to me here anyway.
>
> Best,
> Wolfgang



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