1

我正在使用标准化平均差作为效应大小的度量进行荟萃分析。对于每项研究,我都有 i) 对照组和 ii) 治疗组的样本量、标准差和平均值。然后,我使用 metafor 包中的函数“escalc”来计算效果大小 (yi)、方差 (vi) 标准误差估计和置信区间,脚本如下:

SR_meta <- escalc(measure="SMD", m2i=cn_mean, sd2i=cn_sd, n2i=cn_n,
               m1i=treat_mean, sd1i=treat_sd, n1i=treat_n, data=SR)

然后,我尝试“手动”(在 R 中)计算值,得到的结果略有不同。所以我想知道是否有人可以告诉我“escalc”中使用了什么公式,因为我觉得我们在使用不同的更正,或者可能在某处使用不同的公式。下面我附上 a)我如何手动计算值,以及 b)两个输出的示例以显示差异。

一个)

SR2$sd_pooled<-sqrt(((SR2$treat_n-1)*SR2$treat_sd^2 + (SR2$cn_n1)*SR2$cn_sd^2)/(SR2$treat_n+SR2$treat_n-2))

SR2$smd<-(SR2$treat_mean-SR2$cn_mean)/SR2$sdi

SR2$smd_j<-SR2$smd* (1-(3/(4*(SR2$cn_n+SR2$treat_n-2)-1))) #Hedge's adjustment

SR2$Vd<-((SR2$cn_n+SR2$treat_n)/(SR2$cn_n*SR2$treat_n)+((SR2$smd^2)/(2*(SR2$cn_n+SR2$treat_n))))

SR2$sei<-sqrt(SR2$Vd)

b) 使用 escalc 我获得如下值

yi= 1.478805, 2.88312, 2.121931
vi= 0.4655, 1.634453, 1.19089
sei= 0.682276, 1.278457, 1.091279

虽然我手动获得:

yi= 1.479336, 3.726113, 2.74361
vi= 0.440349, 1.81426, 1.288287
sei= 0.663588, 1.346945, 1.135027

所以我想知道错误发生在哪里以及 escalc 使用什么公式?谢谢您的帮助!

4

0 回答 0