系统评价 / Meta 分析

Meta 分析怎么做:检索筛选、效应量合并、异质性、发表偏倚与森林图

本页面向第一次做系统评价与 Meta 分析的医学研究生,按 Cochrane Handbook 6.5 版、PRISMA 2020 和 GRADE 整理每一步的判断标准,并对比 RevMan、Stata 和 R 的默认设置。R 部分用 meta 8.5-0 与 metafor 5.0.1 在公开示例数据上实际运行过。

直接答案

Meta 分析的流程是:在 PROSPERO 注册方案(最晚在数据提取开始前),检索 PubMed、Embase、CENTRAL 和中文库并报告完整检索式,两人独立筛选和提取,用 RoB 2 或 ROBINS-I 评价偏倚风险,选择效应量(二分类用 RR 或 OR,连续变量用 MD 或 SMD,生存数据用 HR),再合并。合并时用随机效应模型,tau² 用 REML 估计,tau²>0 且研究数大于 2 时用 Hartung-Knapp 计算置信区间,研究数达到 5 个时报告预测区间。异质性看 tau² 和预测区间,I² 只说明观察到的变异中有多少来自研究间差异。至少 10 个研究才做漏斗图检验和 meta 回归。最后用 GRADE 给每个结局评定证据确定性。

流程

每一步的产出都要写进 PRISMA 2020 的 27 个条目里。下表的“容易出错的地方”来自 Cochrane Handbook、PRISMA 2020 解释文件和 PROSPERO 说明。

步骤要做什么判断标准与常见错误依据
1 注册方案在 PROSPERO 填写 PICO、检索来源、纳排标准、主要结局、合并方法、亚组和敏感性分析计划PROSPERO 要求在数据提取开始前提交;方案里没写的亚组分析,论文里要标为事后分析。2025 年 3 月新系统上线,提交后由全部作者确认即自动发布,提交时会提示相似主题PROSPERO 说明;Handbook 10.11.5
2 检索PubMed/MEDLINE、Embase、Cochrane CENTRAL,加中文库(CNKI、万方、维普、SinoMed)和试验注册库(ClinicalTrials.gov、ChiCTR)PRISMA 2020 第 7 条要求给出每个数据库的完整检索式,包括限定条件;2009 版只要求一个数据库。检索日期写到日PRISMA 2020 条目 7
3 去重导入 EndNote、Zotero 或 Rayyan、Covidence 去重同一试验的会议摘要、主报告和随访报告要合并为一个“研究”,按研究计数,避免重复计入Handbook 第 5 章
4 筛选题名摘要初筛,再全文复筛,两人独立,分歧讨论或由第三人裁定PRISMA 2020 第 8 条要报告每条记录由几人筛、是否独立、是否用了自动化工具;流程图写清全文排除的理由和数量PRISMA 2020 条目 8、16a
5 数据提取预先设计提取表,用 2–3 篇文献试提取后再定稿,两人独立提取同一指标有调整与未调整两种结果时,按方案预先规定的优先级取;多臂试验先决定哪些组相关Handbook 第 5、6、23 章
6 偏倚风险RCT 用 RoB 2,非随机干预研究用 ROBINS-I(V2 于 2025 年发布),暴露研究用 ROBINS-E,诊断试验用 QUADAS-2按结局评价,RoB 2 的判断是针对某个结局的某个结果,不是针对整篇文献Sterne 2019 BMJ;Cochrane ROBINS-I V2
7 合并与异质性选效应量,随机效应 + REML + HK,报告 tau²、I²、预测区间不按异质性检验结果选择固定或随机效应Handbook 10.10.4
8 发表偏倚、敏感性分析≥10 个研究做漏斗图与检验;按方案做敏感性分析剪补法只作敏感性分析,不作为校正后的主结果Handbook 13.3;Peters 2007
9 证据确定性每个结局用 GRADE 评级,做结果总结表(SoF)PRISMA 2020 新增第 15、22 条,要求报告证据确定性的评价方法和结果PRISMA 2020;Core GRADE 2025

偏倚风险

研究类型推荐工具判断方式要知道的问题
随机对照试验RoB 2(2019)5 个领域:随机化过程、偏离既定干预、结局数据缺失、结局测量、选择性报告;总体判断为低风险、有一些担忧、高风险旧版 Cochrane 偏倚风险工具(7 条,2011)仍常见于中文文献,审稿人可能要求改用 RoB 2;RoB 2 需要先确定关注的是分配效应(ITT)还是依从效应
非随机干预研究(队列、病例对照比较两种治疗)ROBINS-I(2016);V2 于 2025 年发布以“目标试验”为参照,评价混杂、选择、干预分类等 7 个领域;V2 用算法根据信号问题给出建议判断,并纳入不朽时间偏倚ROBINS-I 比 NOS 费时,但能区分混杂处理是否充分
暴露因素研究(如吸烟与疾病)ROBINS-E(2024)与 ROBINS-I 结构相似,针对暴露工具较新,中文实例少
观察性研究(中文 Meta 分析的常见选择)Newcastle-Ottawa 量表(NOS)选择、可比性、结局三部分,最高 9 颗星Stang 2010 指出 NOS 的条目与评分缺乏依据,评分者间一致性低;用 NOS 时报告每个条目的判断,不要只报总星数,也不要按“≥7 星为高质量”剔除研究
诊断准确性研究QUADAS-24 个领域的偏倚风险与适用性诊断 Meta 分析的合并方法(双变量模型)与本页的干预性 Meta 分析不同

效应量

数据类型可选效应量怎么选依据
二分类RR、OR、RD默认用 RR 或 OR。相对效应在不同基线风险下比绝对效应更一致,RD 合并后异质性往往更大;Handbook 建议除非有理由认为 RD 一致,否则不合并 RD。OR 不能当作 RR 解读,事件率超过 10% 时两者差别明显。绝对效应在结果总结表里用基线风险乘以 RR 换算Handbook 10.4.3
连续,单位相同MD(均数差)同一量表、同一单位时用 MD,结果可直接按临床单位解读。变化值与终点值可以混合合并Handbook 10.5.2
连续,量表不同SMD(Hedges g)测量同一构念但量表不同才用 SMD。RevMan、meta 和 Stata 的 SMD 默认都是 Hedges g(含小样本校正)。变化值与终点值不能混在一起算 SMD,因为两者的 SD 含义不同。不同研究中量表方向相反时,要先把一侧乘以 -1Handbook 6.5.1.2、10.5.2
生存数据HR合并 log HR 及其 SE(通用倒方差法)。不要用某个时点的生存率代替 HR,除非所有研究都只报告这一时点。数据来源优先级见下一节Handbook 6.8.2;Tierney 2007
计数与率率比(rate ratio)时间单位在率比中相互抵消,统一不统一不影响结果Handbook 6.7.1

数据转换

先向通讯作者索要原始数据;拿不到时按下表换算,并把所有经过换算的研究在敏感性分析中剔除一次,看结论是否改变。

Wan、Luo、Shi 方法的作者团队(香港浸会大学童铁军等)提供了在线计算器和 Excel 表,先做偏度检验再换算;R 的 meta(metacont 的 median、q1、q3、min、max 参数)和 metafor(conv.fivenum)都内置了同样的公式。

Handbook 10.5.3 给出一个偏态判断:对只能取正值的指标,均值/SD 小于 2 提示偏态,小于 1 时偏态明显;这类研究报告的均值和 SD 用于 MD 合并时要谨慎,对数转换与未转换的数据不能混合合并。

单位不一致时先统一单位再合并。例如血糖 mg/dL 除以 18 得到 mmol/L,总胆固醇 mg/dL 除以 38.67 得到 mmol/L。用 SMD 合并不能代替单位换算,SMD 会把不同单位造成的 SD 差异当成效应差异。

meta 包中直接输入中位数和四分位数r
# 只有中位数与四分位数时,在 metacont 中直接输入,meta 内部完成换算
# 默认:均值用 Luo 2018,SD 用 Shi 2020(有极差时)或 Wan 2014(只有 IQR 时)
d <- data.frame(study = c("A", "B", "C"),
                n.e = c(40, 60, 35), med.e = c(12, 15, 11), q1.e = c(8, 10, 7), q3.e = c(20, 24, 18),
                n.c = c(42, 58, 33), med.c = c(16, 19, 14), q1.c = c(11, 13, 9), q3.c = c(25, 30, 22))
mq <- metacont(n.e, median.e = med.e, q1.e = q1.e, q3.e = q3.e,
               n.c = n.c, median.c = med.c, q1.c = q1.c, q3.c = q3.c,
               data = d, studlab = study, sm = "MD")
cbind(mq$mean.e, mq$sd.e)          # 研究 A:13.42、9.21
# 偏态数据可换用 McGrath 2020 的 Box-Cox 法(需要安装 estmeansd)
update(mq, method.mean = "BC-McGrath", method.sd = "BC-McGrath")
# metafor 等价函数
conv.fivenum(q1 = q1.e, med = med.e, q3 = q3.e, n = n.e, data = d)
文献报告了什么方法前提与局限
中位数 + 四分位数(Q1、Q3)均值:Luo 2018;SD:Wan 2014(IQR 除以随样本量变化的系数,n 很大时接近 1.35)这些方法假设数据近似正态。偏态数据会低估均值和 SD;可用 Shi 2023 的偏度检验判断,偏态明显时改用 McGrath 2020 的 Box-Cox 或分位数估计法
中位数 + 最小值、最大值均值:Luo 2018;SD:Wan 2014Handbook 6.5.2.6 不建议用极差估计 SD,极差受极端值影响大
中位数 + 四分位数 + 极差(五数概括)均值:Luo 2018;SD:Shi 2020利用信息最多,误差最小
均值 + 95% CISD = √n ×(上限 − 下限)/(2 × t₀.₉₇₅,ₙ₋₁);n≥60 时 t 可用 1.96CI 由 t 分布算出时才成立
两组均值 + 组间 P 值或 t 值由 t 值反推组间 SE,再求两组合并 SD文献只写 P<0.05 时,按 P=0.05 计算会高估 SD,结果偏保守
只给亚组的 n、均值、SD按 Handbook 表 6.5.a 公式合并为整组不要把两个亚组当成两个研究分别纳入
Cox 回归给出 HR 与 95% CIln(HR) 和 SE =(ln 上限 − ln 下限)/3.92 直接用首选
只有 log-rank P 值和事件数Tierney 2007:ln(HR) 的方差 ≈ 4/总事件数(1:1 分配时)需要知道效应方向和分配比例
只有 Kaplan-Meier 曲线用 WebPlotDigitizer 或 Engauge Digitizer 取点,再用 Tierney 表格(Parmar 法)或 Guyot 2012 算法重建个体数据后做 Cox 回归;R 包 IPDfromKM 实现了取点后的重建Guyot 2012 的验证表明,HR 只有在报告了风险人数表或总事件数时才能估得较准;两者都没有时,重建数据默认没有删失,事件数被高估,CI 偏窄

合并模型

Handbook 第 10.10.4 节明确:选择固定效应还是随机效应,不能依据异质性检验的结果。“I²>50% 用随机效应、否则用固定效应”是中文教程里最常见的错误做法。

决策建议依据与适用条件
固定还是随机默认报告随机效应;方案中预先写明,固定效应作敏感性分析Handbook 10.10.4.1 不给统一推荐,但反对按异质性检验选择。两种模型权重分配不同:随机效应会提高小研究的权重,存在小研究效应时两者结果会分开
tau² 估计方法REMLHandbook 2024 年更新后以 REML 为默认(10.10.4.4),RevMan 2025 年 1 月起默认 REML。Langan 2019 比较 9 种估计方法后推荐 REML;Veroniki 2016 认为 Paule-Mandel 在二分类和连续数据中都表现较好。DL 在小研究多、事件罕见时低估 tau²
置信区间tau²>0 且研究数大于 2 时用 Hartung-Knapp(HKSJ,t 分布,自由度 k−1)IntHout 2014 模拟中 DL 的 I 类错误率可超过 30%,HKSJ 最多约为名义值的两倍;689 个 Cochrane Meta 分析中,DL 下显著的结果有 25.1% 在 HKSJ 下不再显著
只有 2 个研究不用 HK,用 Wald 型区间,并对不同方法做敏感性分析HK 在 k=2 时 t 分布自由度为 1,区间极宽(本页实测 RR 的 CI 为 0.004–19.2)
tau²=0 或 Q < k−1用 Wald 型区间,或用修正 HK(mKH)这种情况下 HK 区间可能比 Wald 更窄(本页实测)。Röver 2015 建议在研究少且精度差异大时用修正版
预测区间研究数 ≥5 且漏斗图无明显不对称时报告Handbook 10.10.4.3;自由度用 k−1(原为 k−2)。预测区间回答“下一个类似研究的真实效应可能落在哪里”
tau² 的 CIQ-profile 法研究数 ≥5 时才有参考价值
研究数少于 5 且研究大小差异很大时,即使用 HKSJ 也要谨慎解读(IntHout 2014)。

软件差异

多数“结果对不上”来自默认设置不同。投稿前在方法部分写明 tau² 估计方法、CI 方法、预测区间的分布和自由度、I² 的算法。

本页实测(dat.bcg,13 个研究,REML):meta 默认的预测区间为 RR 0.136–1.762(t 分布,k−1);按 Stata 的 K−2 自由度为 0.134–1.785;metafor 在 test = "z" 时为 0.155–1.549。同一数据的 I²,meta 按 Q 计算为 92.1%(95% CI 88.3%–94.7%),metafor 按 tau² 计算为 92.2%(CI 81.9%–97.7%)。

旧教程照抄会遇到的问题:meta 6.0 起 hakn = TRUE 改为 method.random.ci = "HK";comb.fixed 在 5.0 改为 fixed、5.5 再改为 common;byvar 在 5.0 改为 subgroup,8.5 中旧参数仍能运行但会给出 deprecated 警告;forest() 的 file 参数在 8.5 中改名为 filename。

设置RevMan(2025 年 1 月起)Stata 16+ metaR meta 8.5R metafor 5.0
tau² 默认估计REML(旧版 RevMan 5 为 DL)REMLREMLREML
随机效应 CItau²>0 且 k>2 时提示用 HKSJWald;加 se(khartung) 用 HKWald(method.random.ci = "classic");改为 "HK"z 检验;test = "knha" 用 HK
预测区间t 分布,k−1predinterval 选项,t 分布,K−2prediction = TRUE,t 分布,k−1(8.0 起,之前为 k−2)predict():test = "z" 时用正态分布,test = "knha" 时用 t 分布
I² 算法由 tau² 计算(新)随机效应模型由 tau² 计算默认由 Q 计算;method.I2 = "tau2" 可改由 tau² 计算
零事件MH、Peto;0.5 连续性校正mhaenszel、peto;可设校正值MH 默认不加校正;可选 Peto、GLMMrma.mh、rma.peto、rma.glmm
Egger 检验 / 剪补法不提供meta bias, egger;meta trimfillmetabias;trimfillregtest;trimfill
meta 回归不提供meta regressmetaregrma(mods = ~ …)

异质性

亚组分析:亚组变量在方案中预先设定;用亚组间差异检验判断,不要比较各亚组的 P 值(一个亚组显著、另一个不显著不能说明有差异)。每个亚组的研究数太少时,亚组内随机效应几乎无法估计。本页实测中,按分配方式分 3 组时,固定效应下组间检验 P<0.0001,随机效应下 P=0.39,两种模型给出相反结论;只有 2 个研究的亚组用 HK 后 CI 为 0.016–20.8。

meta 回归:研究数少于 10 个时一般不做,每个协变量至少约 10 个研究(Handbook 10.11)。研究水平的协变量(如平均年龄)与结局的关系可能不反映个体水平关系,即生态学偏倚。meta 回归的 P 值建议用 Knapp-Hartung 调整(metafor 的 test = "knha"、Stata 的 se(khartung))。

Core GRADE(2025)判断不一致性时看点估计的分散程度和置信区间的重叠,并看各研究落在决策阈值哪一侧,不单凭 I² 降级。

指标回答什么问题常见误读
Q 检验观察到的差异是否超出抽样误差研究少时检验效能低,P>0.10 不代表没有异质性;研究多、样本大时很小的差异也会显著
I²观察到的总变异中,有多大比例来自研究间真实差异I² 是相对量,取决于研究精度:tau² 不变、研究样本量增大时 I² 会升到接近 100%(Rücker 2008)。I²=50% 无法告诉你效应在 40–60 之间还是 10–90 之间变化(Borenstein 2017)。Handbook 的分档(0–40%、30–60%、50–90%、75–100%)是重叠的,只作粗略参考
tau²、tau真实效应在研究间的方差、标准差,与效应量同一尺度研究少时 tau² 估计很不稳定,要报告 Q-profile CI
预测区间真实效应的分布范围合并效应显著而预测区间跨过无效线,说明在部分场景中效果可能不存在,这是讨论部分要写的内容

发表偏倚

本页实测(dat.bcg,k=13):Egger 检验 P=0.19,Harbord P=0.32,Peters P=0.23,均不显著。剪补法用 meta 默认设置(ma.common = TRUE,即用固定效应模型迭代)补入 4 个研究,RR 从 0.49(0.34–0.70)变为 0.71(0.46–1.10),不再显著;设为 ma.common = FALSE 或用 metafor 的 trimfill(rma 对象) 只补入 1 个研究,RR 为 0.52(0.37–0.74)。这组数据的异质性主要来自纬度(见 meta 回归),属于 Peters 2007 所说的情形。

方法使用条件局限
漏斗图至少 10 个研究;研究大小相近时不做不对称说明存在小研究效应,原因可能是发表偏倚,也可能是小研究质量差、真实异质性、效应量与 SE 的人为相关或偶然(Handbook 表 13.3.b)。等高线漏斗图可以区分缺失区域是否落在不显著区
Egger 回归检验连续结局的 MD;≥10 个研究对 OR 和 SMD,效应量与 SE 本身相关,原始 Egger 检验会出现假阳性;研究少时效能低
Harbord / Peters 检验二分类 ORPeters 以 1/总样本量为自变量,避免了与 SE 的人为相关
剪补法只作敏感性分析假设不对称完全由发表偏倚造成;存在较大异质性时,即使没有发表偏倚也可能错误补入研究并低估效应(Peters 2007)。不同软件默认设置不同,结果可能差别很大(见本页实测)

敏感性分析与 GRADE

证据确定性最终为高、中、低、极低四级,用 GRADEpro GDT 生成结果总结表。

GRADE 因素方向怎么判断
起点—RCT 从“高”开始,观察性研究从“低”开始(使用 ROBINS-I 时也可从高开始,再按偏倚降级)
偏倚风险降级权重大的研究是否为高风险
不一致性降级点估计分散、CI 不重叠,且不能由预设亚组解释
间接性降级人群、干预、对照或结局与问题不符
不精确性降级95% CI 跨过最小重要差异(MID)或无效线(Core GRADE 2)
发表偏倚降级漏斗图不对称、只有小样本企业资助研究
效应大、剂量反应、混杂会削弱效应升级主要用于观察性研究
  • 换模型:固定效应与随机效应;tau² 用 REML、DL、PM 各算一次。
  • 剔除高偏倚风险研究(RoB 2 判为高风险或 ROBINS-I 为严重/极严重)。
  • 剔除经过换算的研究(由中位数估均值、由曲线重建 HR)。
  • 零事件研究换一种处理方法(见常见错误)。
  • 留一法:逐个剔除研究,报告合并效应的范围和是否有单个研究改变结论;用于发现影响点,不用于挑选让 I² 下降的研究组合。
  • 主要结局只用调整后效应量或只用未调整效应量各算一次。

常见错误

多臂试验的共享对照组重复计入

A、B 两种剂量都与同一对照比较时,把两个比较都纳入同一合并,对照组人数被计算两次,权重偏大且两个结果相关。Handbook 23.3.4 推荐把相关的试验组合并为一组;拆分对照组人数只能部分解决问题。

同一人群的多篇报告分别纳入

主报告、亚组报告和长期随访报告常有不同作者顺序和题目。按注册号、入组时间、样本量核对,同一试验只纳入一次。

调整与未调整效应量混用

观察性研究中,部分研究报告多因素调整 HR,部分只有粗 HR 或原始计数,混合合并会把混杂控制程度不同的结果当成同一效应。方案中规定优先用调整最充分的结果,并做只含调整结果的敏感性分析。

零事件处理不当

单臂零事件时,倒方差法必须加连续性校正,0.5 校正会把结果拉向无效。双臂零事件的研究在 OR、RR 中默认被剔除。事件率低于 1% 且两组人数接近时 Peto 法偏倚最小;分组不均衡或效应很大时用不加校正的 MH 法或 GLMM(Bradburn 2007)。本页实测 rosiglitazone 数据中,方法不同会改变结论。

把 SE 当 SD

表格里写“均值 ± SE”的研究直接当 SD 用,SD 被低估 √n 倍,该研究权重和 SMD 都被放大。SD = SE × √n。提取时核对表注。

单位和方向不一致

不同单位的 MD 不能直接合并;量表方向相反(分数越高越好与越差)未统一时,合并效应被抵消。

为降低 I² 剔除研究

看到 I² 高就逐个删研究直到 I² 低于 50%,再报告剩余研究的结果,属于结果驱动的选择。异质性用预设的亚组或 meta 回归解释,解释不了的写入讨论并在 GRADE 中降级。

研究数不足仍做漏斗图和 meta 回归

5–6 个研究做 Egger 检验,P>0.05 被写成“无发表偏倚”。少于 10 个研究时写明未做检验及原因。

R 代码

以下代码可直接运行,示例数据随 metadat 包安装(install.packages(c("meta", "metafor")))。替换为自己的数据时,二分类结局需要每组的事件数和总人数四列。

meta_bcg.Rr
# R 4.5.3 + meta 8.5-0 + metafor 5.0.1;示例数据 dat.bcg 来自 metadat 包(13 项 BCG 疫苗试验)
library(meta); library(metafor)
data(dat.bcg, package = "metadat")
bcg <- dat.bcg; bcg$study <- paste(bcg$author, bcg$year)

# 1. 合并:REML 估计 tau2,同时给出 Wald 与 Hartung-Knapp 两种 CI 和预测区间
m <- metabin(tpos, tpos + tneg, cpos, cpos + cneg, data = bcg, studlab = study,
             sm = "RR", method = "Inverse", method.tau = "REML",
             method.random.ci = "HK", prediction = TRUE)
summary(m)
update(m, method.random.ci = "classic")   # Wald 型区间对照

# 2. 换 tau2 估计方法做敏感性分析
for (mt in c("DL", "REML", "PM")) print(update(m, method.tau = mt, method.random.ci = "HK"))

# 3. 森林图(meta 8.5 起保存文件的参数名为 filename)
forest(m, sortvar = TE, prediction = TRUE, print.tau2 = TRUE,
       filename = "forest_bcg.png")

# 4. 漏斗图与小研究效应检验(k >= 10 才做;OR 结局用 Harbord 或 Peters)
funnel(m, type = "contour", common = FALSE)
metabias(m, method.bias = "Egger")
metabias(m, method.bias = "Peters")

# 5. 剪补法:明确写出迭代所用模型,否则 meta 与 metafor 结果不同
trimfill(m, ma.common = FALSE)          # 随机效应迭代,与 metafor 一致
trimfill(m)                              # meta 默认:ma.common = TRUE(固定效应迭代)

# 6. 亚组与 meta 回归(研究数 >= 10 才做 meta 回归)
update(m, subgroup = alloc)
metareg(m, ~ ablat)

# 7. 留一法
metainf(m, pooled = "random")

# 8. metafor 写法:Hartung-Knapp 用 test = "knha",预测区间随之改用 t 分布
es <- escalc(measure = "RR", ai = tpos, bi = tneg, ci = cpos, di = cneg, data = bcg)
r <- rma(yi, vi, data = es, method = "REML", test = "knha")
predict(r, transf = exp)
regtest(r); trimfill(r); leave1out(r); confint(r)
# REML 不收敛(Fisher scoring algorithm did not converge)时:
# rma(yi, vi, data = es, control = list(stepadj = 0.5, maxiter = 1000))

本页实测

运行条件:R 4.5.3、meta 8.5-0、metafor 5.0.1、metadat 1.6-0、IPDfromKM 0.1.10,macOS arm64。数据为 metadat 包内置的 dat.bcg(13 项 BCG 疫苗试验,RR)与 dat.nissen2007(42 项 rosiglitazone 试验,心梗)。

对比结果说明
tau²:DL / REML / PM / ML0.309 / 0.313 / 0.318 / 0.280合并 RR 均为 0.49 左右,研究数 13 时估计方法对点估计影响小
Wald 与 HK(REML)RR 0.489,CI 0.344–0.696(P=7×10⁻⁵)与 0.330–0.726(P=0.002)HK 使 CI 变宽、P 值增大约 27 倍
固定效应与随机效应的权重最大研究 TPT Madras:固定效应 41.4%,随机效应 10.2%固定效应 RR 0.65,随机效应 0.49;两者差距来自小研究效应更强
研究数 2Wald 0.134–0.527;HK 0.004–19.2k=2 时不用 HK
研究数 4,tau²=0,Q=1.04<3Wald 0.188–0.310;HK 0.190–0.307;修正 HK 0.160–0.363HK 比 Wald 更窄,修正版纠正了这一点
meta 回归(纬度)每增加 1 度纬度 ln(RR) 降 0.029;R²=75.6%,残余 I²=68%KNHA 调整后 P 从 <0.0001 变为 0.005
留一法RR 0.452(去掉 TPT Madras)到 0.533(去掉 Hart & Sutherland)没有单个研究改变结论
零事件(42 项,4 项双零、26 项单臂零)MH OR 1.28(0.95–1.73);Peto 1.43(1.03–1.98);IV+0.5 校正 1.29(0.94–1.76);GLMM 1.43(1.03–1.98)Peto 与 GLMM 显著,MH 与 IV 不显著;该数据多项试验分组比例为 2:1,Peto 的均衡前提不满足,报告时要并列多种方法
SMD:Hedges g 与 Cohen d−0.536 与 −0.544(9 个研究)差别主要出现在 n<30 的小研究中
中位数转均值(对数正态,n=200,真值均值 23.3、SD 15.8)Wan/Luo:20.4、11.5;Box-Cox(McGrath):22.5、13.3偏态数据下正态假设方法低估 SD 约 27%
由 KM 曲线重建 HR(模拟数据,真值 HR 0.568)有风险人数表:0.572(0.417–0.785),事件 160/163;无风险人数表:0.565(0.435–0.735),事件 231/163没有风险人数时事件数被高估 42%,CI 偏窄,与 Guyot 2012 的结论一致

国内经验

以下内容来自中文期刊方法学文章、CSDN 专栏和方法作者提供的工具,只收录能与 Cochrane Handbook 或原始方法学论文对上的部分。CSDN 上大量 2025–2026 年的“Meta 分析避坑指南”是模板化文本,未采用。

连续性数据的“深度提取”

刘海宁等(中国循证医学杂志 2017 年第 17 卷第 1 期)整理了 7 种情形:由中位数和极值或四分位数估计、从图中取点、合并亚组、由均值 95% CI 反推 SD、由组间 P 值或 t 值反推合并 SD,并给出 Stata 与 Excel 的 t 分位数命令(invttail、T.INV.2T)。文中指出只有 P<0.05 时按 0.05 计算会高估 SD。与 Handbook 第 6 章一致。

Tierney 表格提取 HR 的操作

一篇 CSDN 专栏(2024 年 2 月)给出了 Engauge Digitizer 取点后填 Tierney 2007 Excel 的步骤:在 Sheet 2a 填坐标和随访期,在 Sheet 2b 对比模拟曲线与原曲线,差距大就重新取点,HR 及 CI 在 Sheet 4。与 Tierney 原文的说明一致。

童铁军团队的在线计算器先做偏度检验

Wan 2014、Luo 2018、Shi 2020 的作者团队(曾宪涛也是 Shi 2020 的作者之一)提供的在线计算器,要求先点“Detect the skewness”按 Shi 2023 方法检验偏度,显著偏态时提示不要用基于正态的方法。很多中文教程只引用公式,跳过了这一步。

“I²>50% 用随机效应”与“漏斗图 9 篇即可”

多篇 CSDN 和公众号教程沿用这两条规则。Handbook 10.10.4.1 明确不按异质性检验选模型;第 13 章要求漏斗图检验至少 10 个研究。审稿意见中这两点常被指出。

森林图里的权重不只与样本量有关

Bing 搜索“森林图”排第一的知乎文章写“样本量越大,权重越大”。这只在固定效应模型下近似成立;随机效应模型把 tau² 加到每个研究的方差上,大研究的权重被压低(本页实测中最大研究从 41.4% 降到 10.2%)。读图时看清每一列权重属于哪个模型。

交给 Agent

检索式编写、数据换算、合并分析和作图可以交给 Scientify 的科学智能体;纳入排除和偏倚风险判断仍需要你和合作者完成。

指令示例:“按附件的 PROSPERO 方案,对 12 项 RCT 的提取表做 Meta 分析:主要结局用 RR,随机效应 + REML + Hartung-Knapp,报告预测区间;中位数和四分位数按 Luo/Wan 换算并做偏度检验;按方案做亚组、留一法、剔除高偏倚风险研究的敏感性分析,输出森林图、漏斗图和方法段草稿。”

智能体在隔离云电脑中安装 R 的 meta、metafor 等包,读取提取表,检查 SE 与 SD 是否混淆、单位是否一致、多臂试验是否重复计入,完成换算、合并和全部敏感性分析,输出图表和与 PRISMA 2020 条目对应的方法段。智能体会对结果做对抗审阅,例如对比 REML 与 DL、HK 与 Wald 的结论是否一致,剪补法的迭代模型是否写明。工作区保留脚本、参数、日志和数据,可以复现;关闭本机后任务继续运行。

你仍需要自己核对:纳入排除决定、偏倚风险判断、效应量的方向与提取数值是否与原文一致、GRADE 评级的理由。

参考资料

常见问题

I² 很高还能合并吗?

能否合并取决于研究在人群、干预、结局上是否足够相似,不取决于 I²。临床上可合并时,用随机效应模型合并,报告 tau² 和预测区间,用预设的亚组或 meta 回归解释异质性,解释不了的在 GRADE 中按不一致性降级。效应方向相反且差异很大时,只做描述性综合。

只纳入了 3 个研究,用什么方法?

用随机效应 + REML,CI 同时给出 Wald 型和 Hartung-Knapp 两种并做敏感性分析;tau² 估计很不稳定,不做漏斗图、Egger 检验和 meta 回归,也不报告预测区间(Handbook 建议研究数 ≥5 时报告)。只有 2 个研究时不用 HK。

Egger 检验 P>0.05 能说明没有发表偏倚吗?

不能。研究少于 10 个时检验效能低;即使不对称,也可能来自小研究质量或异质性。应写“未发现小研究效应的证据”,并说明检验的研究数和方法(OR 结局用 Harbord 或 Peters)。

RevMan、Stata 和 R 算出的结果为什么不一样?

常见原因是 tau² 估计方法(旧版 RevMan 5 用 DL,其余默认 REML)、是否用 HK、预测区间的自由度(k−1 或 k−2)、I² 的算法、零事件的校正方式不同。把这些设置统一后,结果会一致到小数点后两三位。

文献只给了生存曲线,没有 HR,怎么办?

用 WebPlotDigitizer 或 Engauge Digitizer 取点,再用 Tierney 2007 的 Excel 表或 IPDfromKM 重建个体数据计算 HR。务必输入曲线下方的风险人数表和总事件数;两者都没有时 HR 的 CI 会偏窄。所有重建的研究在敏感性分析中剔除一次。

PROSPERO 注册晚了怎么办?

PROSPERO 只接受数据提取开始之前提交的方案。已经开始提取的可以在 OSF 等平台公开方案,并在论文中如实写明注册时间与方案修改情况(PRISMA 2020 条目 24)。

把 Meta 分析的计算部分交给 Scientify

科学智能体在隔离云电脑中完成数据换算、合并分析、敏感性分析和作图,保留全部脚本、参数和日志,并对结果做对抗审阅。新注册用户免费获得 5 美元等值额度。