[R-meta] d_z and d_av effect sizes in metafor

Viechtbauer, Wolfgang (NP) wo||g@ng@v|echtb@uer @end|ng |rom m@@@tr|chtun|ver@|ty@n|
Mon Apr 7 13:17:48 CEST 2025


Dear Zhouhan,

If r=0.5 *and* sd_pre = sd_post, *then* the SMCC and SMCR are identical:

n <- 30
r <- 0.5  # r set to 0.5 for demonstration
mean_pre <- 0
mean_post <- 0.5
sd_pre <- 0.75
sd_post <- 0.75

escalc(measure = "SMCC", m1i = mean_post, m2i = mean_pre,
       sd1i = sd_post, sd2i = sd_pre, ri = r, ni = n)

escalc(measure = "SMCR", m1i = mean_post, m2i = mean_pre,
       sd1i = sd_post, sd2i = sd_pre, ri = r, ni = n)

However, r=0.5 is not sufficient for this equivalence to hold.

Even then, SMCRP will be slightly different, since it uses a different bias-adjustment factor:

escalc(measure = "SMCRP", m1i = mean_post, m2i = mean_pre,
       sd1i = sd_post, sd2i = sd_pre, ri = r, ni = n)

We can switch off the bias correction and then get equivalence for this measure as well:

escalc(measure = "SMCC", m1i = mean_post, m2i = mean_pre,
       sd1i = sd_post, sd2i = sd_pre, ri = r, ni = n, correct=FALSE)

escalc(measure = "SMCR", m1i = mean_post, m2i = mean_pre,
       sd1i = sd_post, sd2i = sd_pre, ri = r, ni = n, correct=FALSE)

escalc(measure = "SMCRP", m1i = mean_post, m2i = mean_pre,
       sd1i = sd_post, sd2i = sd_pre, ri = r, ni = n, correct=FALSE)

The sampling variance will still be different for SMCRP, since it uses more information compared to SMCR.

Best,
Wolfgang

> -----Original Message-----
> From: R-sig-meta-analysis <r-sig-meta-analysis-bounces using r-project.org> On Behalf
> Of Zhouhan Jin via R-sig-meta-analysis
> Sent: Saturday, April 5, 2025 21:18
> To: R Special Interest Group for Meta-Analysis <r-sig-meta-analysis using r-
> project.org>
> Cc: Zhouhan Jin <zjin65 using uwo.ca>
> Subject: [R-meta] d_z and d_av effect sizes in metafor
>
> Hello Wolfgang and Rmeta Community,
>
> I always assumed that under pre-post correlation = 0.5, metafor::escal()'s
> measure = "SMCC" and "SMCRP" referred to in the article below as "d_z" and
> "d_av" respectively, are equivalent. But that doesn't seem to be the case (see R
> code below).
>
> Questions: 1- Can they be equivalent under any condition?
>                   2- If yes, will their sampling variances then also be equal?
>                   3- If no, are there any other two SMC variants that will be
> equivalent in both effect size and sampling variances under r=0.5?
>
> ARTICLE:
> https://www.frontiersin.org/journals/psychology/articles/10.3389/fpsyg.2013.0086
> 3/full
>
> # R code:
> library(metafor)
> n <- 30
> r <- 0.5  # r set to 0.5 for demonstration
> mean_pre <- 0
> mean_post <- 0.5
> sd_pre <- 1
> sd_post <- .5
>
> esc_dz <- escalc(measure = "SMCC", m1i = mean_post, m2i = mean_pre,
>                  sd1i = sd_post, sd2i = sd_pre, ri = r, ni = n)
>
> esc_dav <- escalc(measure = "SMCRP", m1i = mean_post, m2i = mean_pre,
>                   sd1i = sd_post, sd2i = sd_pre, ri = r, ni = n)
>
> Best wishes,
>
> Zhouhan Jin



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