You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用metafor计算SMD效应量:如何输入组间差异标准差而非各组独立SD?

配对数据SMD计算(仅提供差值标准差场景解决方案)

核心逻辑

配对设计的SMD有两种主流计算口径,仅提供差值标准差时可以选择匹配的口径直接计算,无需两组各自的标准差:

  • 基于差值标准差计算的标准化均数差(SMDd,又称Cohen's d for dependent samples),直接使用差值的统计量即可完成计算,适合所有配对设计场景
  • 若需统一使用基于两组合并组内标准差的SMD口径,可通过填补配对相关系数反推所需参数

具体实现方案

方案1:直接用metafor内置函数计算

metafor的escalc函数支持单组标准化均值计算,直接传入差值的统计量即可得到校正后的效应量与方差:

library(metafor)
# 假设你的数据集dat包含字段:
# mdiff:两组差值的均数
# sdiff:两组差值的标准差
# n:配对样本量(配对设计两组样本量一致)
dat <- escalc(measure = "SM", m1 = mdiff, sd1 = sdiff, n1 = n, data = dat)

输出的yi列即为校正小样本偏差后的Hedges' g值,vi列为对应方差,可直接传入rma函数做后续meta合并。

方案2:手动计算效应量与方差

如果需要自定义校正规则,也可以手动计算:

# 未校正的Cohen's d
dat$d <- dat$mdiff / dat$sdiff
# Hedges小样本校正因子
dat$J <- 1 - 3/(4*(dat$n - 1) - 1)
# 校正后的Hedges' g
dat$g <- dat$d * dat$J
# g的抽样方差
dat$var_g <- 1/dat$n + (dat$g^2)/(2*dat$n)

注意事项

SMDd和基于两组独立合并标准差计算的SMD口径不统一,不可直接合并。如果你的纳入研究同时存在两种报告类型,有两种处理方式:

  1. 将报告了两组SD的研究也转换为SMDd口径:先计算差值均数、差值标准差,再用上述方法计算效应量
  2. 参考同领域相近研究的配对相关系数r(通常前后测设计r在0.5~0.8区间),通过公式sd_diff = sqrt(sd1² + sd2² - 2*r*sd1*sd2)反推缺失参数,统一使用常规SMD口径,建议取多个r值做敏感性分析验证结果稳定性。

内容的提问来源于stack exchange,提问作者Sara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 06:15:05