如何最好地处理荟萃分析中的子分数?

机器算法验证 r 荟萃分析 规模效应 元回归
2022-03-20 12:40:06

我正在使用 metafor 包对 R 中的效应大小d进行荟萃分析。d代表患者和健康人之间记忆分数的差异。然而,一些研究只报告了感兴趣的测量d的子分数(例如,几个不同的记忆分数或来自三个单独的记忆测试块的分数)。请参阅以下虚拟数据集,其中d代表研究的效果大小及其标准偏差 sd.:

d <- round(rnorm(5,5,1),2)
sd <- round(rnorm(5,1,0.1),2)
study <- c(1,2,3,3,3)
subscore <- c(1,1,1,2,3)
my_data <- as.data.frame(cbind(study, subscore, d, sd))

library(metafor)
m1 <- rma(d,sd, data=my_data)
summary(m1)

我想就如何处理这些子分数的最佳方式征求您的意见 - 例如:

  1. 从报告多于一个分数的每项研究中选择一个子分数。
  2. 包括所有子分数(这将违反 rfx 模型独立性的假设,因为一项研究的子分数来自同一样本)
  3. 对于报告子分数的每项研究:计算平均分数和平均标准差,并将此“合并效应大小”包括在 rfx 荟萃分析中。
  4. 包括所有子分数并添加一个虚拟变量,指示某个分数来自哪个研究。
2个回答

这种类型的数据称为相关效应大小。可以使用几种方法来处理依赖关系。我建议使用三级荟萃分析(Cheung, 2014; Konstantopoulos, 2011; Van den Noortgate et al. 2013)。它将变异分解为 2 级和 3 级异质性。在您的示例中,2 级和 3 级异质性是指由于子量表和研究引起的异质性。在 R 中实现的 metaSEM 包 ( http://courses.nus.edu.sg/course/psycwlm/Internet/metaSEM/ ) 提供了进行三级元分析的功能。例如,

## Your data
d <- round(rnorm(5,5,1),2)
sd <- round(rnorm(5,1,0.1),2)
study <- c(1,2,3,3,3)
subscore <- c(1,1,1,2,3)
my_data <- as.data.frame(cbind(study, subscore, d, sd))

## Load the library with the data set  
library(metaSEM)
summary( meta3(y=d, v=sd^2, cluster=study, data=my_data) )

输出是:

Running Meta analysis with ML 

Call:
meta3(y = d, v = sd^2, cluster = study, data = my_data)

95% confidence intervals: z statistic approximation
Coefficients:
            Estimate  Std.Error     lbound     ubound z value  Pr(>|z|)    
Intercept 4.9878e+00 4.2839e-01 4.1482e+00 5.8275e+00  11.643 < 2.2e-16 ***
Tau2_2    1.0000e-10         NA         NA         NA      NA        NA    
Tau2_3    1.0000e-10         NA         NA         NA      NA        NA    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Q statistic on homogeneity of effect sizes: 0.1856967
Degrees of freedom of the Q statistic: 4
P value of the Q statistic: 0.9959473
Heterogeneity indices (based on the estimated Tau2):
                              Estimate
I2_2 (Typical v: Q statistic)        0
I2_3 (Typical v: Q statistic)        0

Number of studies (or clusters): 3
Number of observed statistics: 5
Number of estimated parameters: 3
Degrees of freedom: 2
-2 log likelihood: 8.989807 
OpenMx status1: 1 ("0" and "1": considered fine; other values indicate problems)

在此示例中,第 2 级和第 3 级异质性的估计值接近于 0。还可以包括第 2 级和第 3 级协变量来模拟异质性。有关三级元分析的更多示例,请访问http://courses.nus.edu.sg/course/psycwlm/Internet/metaSEM/3level.html

参考

张,MW-L。(2014)。使用三级荟萃分析对相关效应大小进行建模:一种结构方程建模方法心理方法,19(2),211-29。doi: 10.1037/a0032968。

康斯坦托普洛斯,S. (2011)。三级荟萃分析中的固定效应和方差分量估计。研究合成方法,2(1),61-76。doi:10.1002/jrsm.35

Van den Noortgate, W., López-López, JA, Marín-Martínez, F., & Sánchez-Meca, J. (2013)。相关效应大小的三级荟萃分析。行为研究方法,45(2),576-594。doi:10.3758/s13428-012-0261-6

我同意这是一个棘手的情况。这些只是一些想法。

是否平均 d 效果大小: 如果您对子量表不感兴趣,那么我的第一选择是在给定研究中取子量表的平均效果大小。

这假设所有子量表都与您的研究问题同样相关。如果某些量表更相关,那么我可能只使用这些子量表。

如果您对子量表之间的差异感兴趣,那么将每个子量表的效果大小包含在类型中是有意义的。

d 效果大小的标准误差:假设您正在使用一个公式来根据 d 的值和组样本大小来计算 d 的标准误差。调整这个公式,我们得到

se(d)=(n1+n2n1n2+d22(n1+n22))(n1+n2n1+n22),

在哪里n1n2是被比较的两组的样本量,并且d是科恩的d.

我想您可以应用这样的公式来计算子量表的平均 d 值的标准误差。