Meta 分析森林图生成器
Meta 分析森林图生成器,用于系统评价、学位论文和期刊投稿:给它每项研究的效应估计值和置信区间,它画出方块、横线和合并菱形,权重、I²、τ² 和总体效应检验都是算出来的,不是估的。支持比值比、相对危险度、风险比和均数差,也支持亚组。
森林图生成器的期刊风格
五种期刊预设,各配一项森林图生成器画过的不同 Meta 分析:RevMan 式的相对危险度系统评价、异质性大的比值比分析、标准化均数差、单项试验的亚组,以及同时给出两种合并模型的图。点击卡片即可载入它的提示词和研究数据。
森林图示例
四个来自森林图生成器的森林图示例,都是按卡片上的提示词和研究数据实际生成的(均为示意数据)。点击卡片即可载入上方输入框,再把数字换成你自己的。
什么是森林图?
森林图是 Meta 分析的结果图:每项研究的效应估计值画成一个方块,它的置信区间画成一条横线,所有研究的合并估计值画成底部的一个菱形。 一条竖线表示无效应:比值比、相对危险度、风险比这类比值取 1,均数差取 0。每个方块的大小是该研究在合并结果中的权重,所以最精确的研究最先吸引目光。从上往下读各行,一眼就能看出各研究是否一致、哪几项占主导,以及合并结果能否排除无效应。名称来自一行行横线看起来像一片树林;较早的文献也叫它 blobbogram。
关于这个森林图工具
- 每项研究按 Smith 2019 OR 0.82 (0.61 to 1.10) 的格式输入,可选加上权重或 n;也可以附加估计值和 CI 上下限的 .csv、.tsv 或 .xlsx 表格。森林图生成器也能读取带亚组标题和 Total 行的 RevMan 式导出表。
- 森林图生成器用程序计算每项研究由区间推出的标准误、逆方差权重、固定效应和 DerSimonian–Laird 随机效应合并估计值、Q、I²、τ² 和 z 检验;图像模型只负责摆放给它的内容。
- 森林图生成器把比值画在对数轴上,采用 RevMan 的对称刻度(0.5–2、0.2–5、0.1–10……),把均数差或标准化均数差画在以 0 为中心的线性轴上。
- 森林图生成器每张图最多 40 行,支持亚组标题、每个亚组的小计菱形和亚组间差异检验。
- 森林图生成器的 Cochrane、JAMA、BMJ、The Lancet 和 NEJM 期刊预设决定配色和区间的写法,从 0.82 [0.61, 1.10] 到 0·82 (0·61–1·10)。
森林图怎么看
七项髋部骨折术后早期下床活动的示意试验,各自报告 30 天死亡的相对危险度。这就是上面第一个示例,用森林图生成器运行的同一套代码排版。按编号顺序阅读。
- 1
研究行
每项研究一行,通常写第一作者和年份,顺序与系统评价中的列法一致(按年份、按权重或按效应大小)。有亚组时,亚组标题位于各自的行上方,不带标记。
- 2
方块:该研究的估计值
每个方块的中心是该研究的点估计值。Tanaka 2019 位于 0.93,即早期下床活动使死亡风险降低 7%。方块面积是该研究的权重,Tanaka 的区间最窄,所以方块最大。
- 3
横线:置信区间
横线是 95% 置信区间。Brennan 2020 从 0.37 延伸到 0.91。横线宽,说明研究规模小或事件少;末端的箭头表示区间超出了坐标轴。
- 4
无效线
位于 1 的竖线(均数差则位于 0)。横线跨过它的研究,自身结果与无效应相容:这里七项中有五项是这样。这并不表示该研究什么都没发现,只说明它规模太小,单靠自己下不了结论。
- 5
菱形:合并估计值
菱形中心是合并的相对危险度 0.83,左右两个顶点是合并的 95% CI,即 0.73 到 0.95。大多数单项研究跨过了无效线,菱形却没有:合并各项试验使区间变窄了。
- 6
权重和右侧的数字列
右侧各列印出每项研究的权重以及它的估计值和区间,不用量也能读图;森林图生成器默认两列都印。权重合计为 100%,来自每项研究方差的倒数(随机效应下再加上 τ²)。
- 7
异质性和总体效应检验
图下方,I² = 26% 表示研究间差异约有四分之一超出了随机误差所能解释的范围;τ² = 0.008 是对数尺度上的研究间方差;Z = 2.72 (P = 0.007) 检验合并效应是否不同于无效应。
- 8
“有利于”标签
坐标轴下方的文字说明哪一侧是好消息。对死亡率而言,相对危险度小于 1 有利于早期下床活动,所以这个标签放在左边。读任何森林图之前都先核对它们:如果结局是康复这类指标,两侧就要对调。
把这个示例载入森林图生成器,改动一项研究,比如把 Kowalski 2022 改成 RR 1.40 (1.05 to 1.87),看看权重、菱形和 I² 怎么变。
如何用森林图生成器画森林图
把研究数据交给森林图生成器
每行一项研究或用逗号分隔:标签、效应指标、估计值和 95% CI,如 Lee 2020 RR 0.75 (0.55 to 1.02)。有权重或样本量就加上 weight 18% 或 n = 240,在一组行之前写 Subgroup Adults: 表示亚组。也可以附加电子表格或软件导出的表格,森林图生成器会读取各列。
说明合并方式和图上要显示的内容
森林图生成器默认用随机效应;也可以写固定效应、两种模型都要,或者不要合并估计值(用于回归或单项试验的亚组图)。写明两侧的“有利于”标签(左边有利于早期下床活动,右边有利于常规护理),置信水平不是 95% 时也要写明。
选择期刊风格并生成
选 Cochrane、JAMA、BMJ、The Lancet 或 NEJM,然后生成。方块、横线、菱形和印出的数字始终是森林图生成器算出的那些;风格只改变配色、字体和区间的写法。
森林图生成器如何合并 Meta 分析
Meta 分析森林图好不好,取决于它下面那一行合并结果。 下面是森林图生成器对每个请求使用的逆方差公式,与 RevMan、metafor 和 Stata 的 meta 命令处理“估计值加置信区间”这类输入时所用的公式相同。
由 95% CI 求标准误
比值:SE = (ln U − ln L) ÷ 3.92
差值:SE = (U − L) ÷ 3.92
比值比、相对危险度和风险比在对数尺度上合并,在那里它们的区间是对称的;3.92 是 95% 区间的 2 × 1.96,请求中注明时,森林图生成器对 90% 区间用 3.29,对 99% 区间用 5.15。
固定效应(共同效应)估计值
wᵢ = 1 ÷ SEᵢ²
θ̂ = Σ wᵢ yᵢ ÷ Σ wᵢ
SE(θ̂) = 1 ÷ √Σ wᵢ
每项研究按其精确度计入。这一模型假设所有研究估计的是同一个真实效应。
异质性:Q、I² 和 τ²
Q = Σ wᵢ (yᵢ − θ̂)²
I² = max(0, (Q − df) ÷ Q)
τ² = max(0, (Q − df) ÷ (Σ wᵢ − Σ wᵢ² ÷ Σ wᵢ))
Q 与自由度为 k − 1 的 χ² 分布比较,得到异质性检验的 P;I² 是超出随机误差的变异所占的比例;τ² 是 DerSimonian–Laird 法估计的研究间方差。
随机效应估计值
wᵢ* = 1 ÷ (SEᵢ² + τ²)
θ̂* = Σ wᵢ* yᵢ ÷ Σ wᵢ*
Z = θ̂* ÷ SE(θ̂*)
给每个方差加上 τ² 会让权重变得更平均,小研究的分量加大,研究之间不一致时菱形会变宽。这是森林图生成器的默认模型。
用 BCG 疫苗试验(13 项研究,Colditz 1994)核对过,这是 R 的 metafor 包里的教科书数据集:森林图生成器得到 Q = 152.23、I² = 92.12%、τ² = 0.3088,随机效应对数相对危险度为 −0.7141,与已发表的结果一致。
森林图生成器中的固定效应与随机效应
同样的研究,由森林图生成器用两种方式合并。试验结果一致时(髋部骨折示例,I² = 26%),两个菱形几乎重合。结果不一致时,随机效应把权重移向小研究并把区间加宽,这里宽到跨过了 1。
| 研究 | 模型 | 合并 RR [95% CI] | 最大权重 | 最小权重 |
|---|---|---|---|---|
| 髋部骨折试验,I² = 26% | 固定效应 | 0.84 [0.76, 0.94] | Tanaka 2019, 26.8% | Brennan 2020, 6.0% |
| 随机效应 | 0.83 [0.73, 0.95] | Tanaka 2019, 22.8% | Brennan 2020, 7.6% | |
| 五项结果不一致的试验,I² = 91% | 固定效应 | 0.88 [0.79, 0.97] | Ennis 2021, 27.9% | Adler 2015, 9.0% |
| 随机效应 | 0.77 [0.54, 1.10] | Ennis 2021, 20.9% | Adler 2015, 18.4% |
该报告哪一种? 各研究在人群、剂量或设计上有差别时用随机效应,大多数临床系统评价属于这种情况;各研究近乎重复实验,或者研究太少、无法估计 τ² 时用固定效应。很多系统评价两种都给出。写“两种模型都要”,森林图生成器就会画出一个共同效应菱形和一个随机效应菱形,并各配一列权重。
森林图生成器能画的森林图(按效应指标)
相对危险度森林图、风险比森林图和均数差森林图之间,不同的是坐标轴、无效线和数字的合并方式。在请求里写明效应指标,森林图生成器会把这三样都设好。
比值比森林图
用于二分类结局,来自病例对照研究和报告比值的试验。 对数轴,无效线在 1。每项研究按 名称 年份 OR 0.62 (0.41 to 0.94) 输入;森林图生成器在 ln(OR) 上合并,再把菱形换回比值尺度印出。OR 小于 1 表示第一组发生该结局的比值更低。
相对危险度森林图
用于报告风险本身的队列研究和试验(相对危险度,risk ratio)。 与比值比用同样的对数轴,二者只有在事件罕见时才接近。写 RR 或相对危险度;森林图生成器把这一列标为相对危险度,并让比值刻度在 1 两侧对称,0.5 和 2 离 1 的距离相同。
风险比森林图
用于时间-事件结局:生存、复发、再入院时间。 风险比来自 Cox 模型,根据报告的区间在对数尺度上合并。如果有原文报告的各试验权重,可以一并输入;森林图生成器用它决定方块大小,但仍然自己合并风险比。
均数差和 SMD 森林图
用于连续型结局,比如血压、疼痛评分或 HbA1c。 所有研究用同一量表时,均数差(MD)保留原单位,mmHg 或分;量表不同时,标准化均数差(SMD,Hedges' g)除以 SD。两者都用围绕 0 的线性轴,森林图生成器会把它设成对称的,让 0 位于正中。
亚组森林图
按人群、剂量或设计拆分的一项 Meta 分析。 在各自的行之前写 Subgroup Adults: 和 Subgroup Children:,森林图生成器就会把表格拆开。每个亚组有标题、小计菱形和自己的 I²,底注再加上亚组间差异检验,即判断亚组效应之差是否超出随机误差的 χ² 检验。
logistic 回归或单项试验亚组的森林图
一个回归模型中各协变量的校正比值比,或一项试验按年龄、性别和合并症分组的风险比。 这些行不是相互独立的研究,所以永远不做合并。森林图生成器能识别回归和单项试验亚组的请求,不为这些行画菱形,只有你给出总体结果时才画它。
解读森林图:不同 I² 长什么样
三个示意性的五研究 Meta 分析,都由森林图生成器按随机效应合并,平均效应几乎相同。它们的区别在于方块围绕菱形散开的程度,这正是 I² 衡量的东西。Cochrane 手册给出的粗略参考:0–40% 可能不重要,30–60% 为中度,50–90% 为较大,75–100% 为很大。
低异质性
I² = 0%,τ² = 0.000,合并 RR 0.79 [0.70, 0.88]
各区间几乎完全重叠,每个方块都靠近菱形。各项研究讲的是同一件事;固定效应和随机效应结果一致。
中度异质性
I² = 58%,τ² = 0.023,合并 RR 0.81 [0.68, 0.97]
两项研究靠近 1,两项远低于 1。值得在结果部分写一句,并在给出合并估计值前后看看它们之间有什么不同。
很大的异质性
I² = 91%,τ² = 0.145,合并 RR 0.77 [0.54, 1.10]
有些区间完全不重叠,分布在 1 的两侧。随机效应菱形变宽并跨过无效线:这时一个合并数字掩盖的比它说明的更多,下一步应做亚组分析或 Meta 回归。
I² 不像 Q 那样随研究数量增加而增大,这是系统评价报告它的原因;但研究少于大约十项时,I² 本身的不确定性很大。请在旁边同时报告 τ²;森林图生成器两个都会印出。
森林图生成器与 Excel、R、Stata、RevMan 和 SPSS 的对比
大多数森林图是用系统评价软件或 R 画的。下表列出每种工具需要你提供什么、合并结果从哪里来,以及森林图生成器适合什么场景。
| 工具 | 森林图怎么画 | 能否合并并给出 I² | 你需要准备什么 |
|---|---|---|---|
| 森林图生成器 | 输入或附加各项研究;森林图生成器按期刊风格画出图 | 能:固定效应、随机效应(DerSimonian–Laird)或两种都要,支持亚组 | 每项研究的估计值和 CI |
| Excel | 散点图加自定义水平误差线、对数刻度的 x 轴,再用一个辅助系列放标签 | 不能;Q、I² 和菱形要在单元格里手动计算 | 每张图花一小时调图表格式 |
| R (metafor, meta) | metafor 用 forest(rma(yi, vi)),meta 用 forest(metagen(...));要自定义外观可用 ggplot2 的 geom_pointrange | 能:DL、REML、Paule–Mandel 等,带预测区间 | R 以及调图样式的代码 |
| Stata | 先 meta set,再 meta forestplot(Stata 16 及以上),或用户编写的 metan | 能 | Stata 许可证和相应命令 |
| RevMan | 根据 Cochrane 系统评价中录入的数据自动绘制 | 能:Mantel–Haenszel、Peto 或逆方差法 | 在 RevMan 中建好系统评价;导出为图片 |
| SPSS, SAS, Prism | SPSS 28 及以上的 Meta 分析过程;SAS 用 PROC SGPLOT 配 HIGHLOW;Prism 画成水平误差线图 | SPSS 能;SAS 靠自己写代码;Prism 不能 | 各自的许可证和操作步骤 |
已经在 R、Stata 或 RevMan 里做完分析?把研究行和软件印出的合并行一起粘贴进来:森林图生成器按你给的合并结果原样画出,根据区间计算异质性那一行,你的权重保持不变。
森林图生成器与 Meta 分析常见问题
森林图上的菱形是什么意思?
菱形是合并估计值:中心是所有研究的合并效应,左右两个顶点是这个估计值的置信区间。 菱形不碰到无效线,说明合并结果在所选水平上有统计学意义。亚组森林图每个亚组有一个较小的菱形,底部是总体菱形。森林图生成器根据各项研究算出每个菱形的顶点,所以它的宽度就是真实的合并区间。
置信区间跨过无效线说明什么?
说明该研究的结果在 95% 水平上与无效应相容:它的区间包含比值比、相对危险度或风险比为 1,或差值为 0。 这不是“没有效应”的证据;即使真实效应存在,小研究也会跨过无效线,这正是要做合并的原因。森林图生成器在每一行旁边印出区间,哪些包含 1 一目了然。看菱形得到合并的答案,看每条横线的宽度了解每项研究掌握了多少信息。
森林图为什么用对数刻度?
因为比值在对数尺度上是对称的:比值比 0.5 在 1 下方的距离,和 2 在 1 上方的距离相同。 在线性轴上,0.5 离 1 的距离只有 2 离 1 的一半,区间看起来会一边倒。比值也是在对数尺度上合并的,所以菱形在那里同样对称。均数差保留线性轴;森林图生成器根据你写的效应指标在两者之间切换。
森林图上方块的大小是什么意思?
方块面积与该研究在 Meta 分析中的权重成正比,权重来自其方差的倒数:区间窄的大研究方块大。方块大小与效应大小无关。在森林图生成器里,每个方块的边长是其权重相对于最大权重之比的平方根,所以面积跟着权重走,并设有下限,让最小的研究也看得见。
怎样用 Excel 画森林图?
Excel 没有森林图图表,要用散点图搭出来: 把估计值放在 x、行号放在 y,加上自定义正负值的水平误差线(上限减估计值、估计值减下限),比值类指标把 x 轴设为对数刻度,反转 y 轴并隐藏数字,再用第二个系列或数据标签加上研究名称。合并菱形要在单元格里算好,再画成形状。想省去这些格式调整,把同样的几列粘贴进森林图生成器即可。
怎样用 R 画森林图?
用 metafor:res <- rma(yi, vi, data = dat, method = "DL"); forest(res)。 其中 yi 是每项研究的对数比值,vi 是它的方差(escalc() 可以从计数算出两者)。meta 包用 forest(metagen(TE, seTE, studlab)) 做同样的事,forestplot 或 ggplot2 的 geom_pointrange 可以做自定义外观。R 最灵活;如果你手上已有估计值和区间,想不写绘图代码就得到期刊风格的图,森林图生成器更快。
随机森林图和森林图是一回事吗?
不是。 随机森林是由许多决策树组成的机器学习模型,所谓随机森林图通常指它的变量重要性条形图或偏依赖图。森林图是 Meta 分析中画估计值和置信区间的图。两者名称相同纯属巧合;森林图生成器画的是 Meta 分析的那一种。
森林图和漏斗图有什么区别?
森林图展示每项研究的效应和合并结果;漏斗图把每项研究的效应对它的标准误作图,用来查找小研究效应和发表偏倚。 森林图生成器画的是前者;系统评价通常两者都有:森林图给出答案,漏斗图(研究达到十项或更多时)说明这个答案有多可信。
森林图生成器会帮我计算合并估计值吗?
会,森林图生成器自己合并各项研究,用由每个置信区间得到的逆方差权重:默认随机效应(DerSimonian–Laird),除非你要求固定效应或两种都要。它印出合并估计值、其区间、权重、I²、τ²、异质性 χ² 和 P,以及总体效应检验。这些数字交给图像模型,图像模型一个也不计算。
可以改用 RevMan、Stata 或 R 算出的合并结果吗?
可以,你给出的合并行,森林图生成器会原样画出。 输入 Overall 0.70 (0.59 to 0.82) 或 Total (95% CI) 0.70 [0.59, 0.82],或者放在附加表格的 Total 行里。这样软件算出的 Mantel–Haenszel 或 REML 结果就能保留在图上;异质性那一行则根据各研究的区间计算。
如果我的研究报告的是 90% 或 99% 置信区间呢?
在请求中写 90% CI 或 99% CI,森林图生成器在把区间换算成标准误时就会用 1.645 或 2.576 代替 1.96,并按同一水平印出合并区间。不支持在一张森林图里混用不同水平:请先统一换算成同一水平。
森林图生成器为什么需要每个点估计值?
因为图上每个数字都必须是你给出的,或者是根据你的数据算出来的。 一旦涉及四舍五入,单凭区间无法精确确定点估计值,所以森林图生成器要求你提供估计值,而不是去猜。权重和合并结果也一样:只有你写明或者代码算出时才会印出。
参考资料
- 第 10 章:数据分析与 Meta 分析(Chapter 10: Analysing data and undertaking meta-analyses) — Cochrane Handbook for Systematic Reviews of Interventions
- Forest plots: trying to see the wood and the trees (Lewis and Clarke, 2001) — The BMJ
- Measuring inconsistency in meta-analyses (Higgins et al., 2003) — The BMJ
- Meta-analysis in clinical trials (DerSimonian and Laird, 1986) — Controlled Clinical Trials
- dat.bcg: Studies on the effectiveness of the BCG vaccine against tuberculosis — metadat(R 包文档)