森林图生成器

Meta 分析森林图生成器

Meta 分析森林图生成器,用于系统评价、学位论文和期刊投稿:给它每项研究的效应估计值和置信区间,它画出方块、横线和合并菱形,权重、I²、τ² 和总体效应检验都是算出来的,不是估的。支持比值比、相对危险度、风险比和均数差,也支持亚组。

森林图生成器的期刊风格

五种期刊预设,各配一项森林图生成器画过的不同 Meta 分析:RevMan 式的相对危险度系统评价、异质性大的比值比分析、标准化均数差、单项试验的亚组,以及同时给出两种合并模型的图。点击卡片即可载入它的提示词和研究数据。

Cochrane

RevMan 的样式:森林图生成器加上 n 列,并像 Cochrane 系统评价那样印出 Chi²、df、P 和 I²。

JAMA

I² 达到 67% 时,森林图生成器画出的随机效应菱形很宽,刚刚避开无效线。

BMJ

标准化均数差让森林图生成器改用以 0 为中心的线性轴,而不是对数刻度。

The Lancet

单项试验的亚组:森林图生成器不做任何合并,按报告的结果画出总体效应。

NEJM

两种模型并排,森林图生成器为每种模型各印一列权重。

森林图示例

四个来自森林图生成器的森林图示例,都是按卡片上的提示词和研究数据实际生成的(均为示意数据)。点击卡片即可载入上方输入框,再把数字换成你自己的。

相对危险度,随机效应

森林图生成器的默认设置:随机效应、权重、菱形和 Cochrane 式的底注。七个区间中只有两个不跨过 1,合并区间也不跨过。

按亚组的比值比

两个亚组,各有自己的菱形;森林图生成器在合计下方加上亚组间差异检验。

均数差

这是差值,不是比值:森林图生成器改用线性轴,无效线在 0。

带权重的风险比

按原文报告输入的权重决定方块大小;森林图生成器仍然自己合并风险比,并说明合并方法。

什么是森林图?

森林图是 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 天死亡的相对危险度。这就是上面第一个示例,用森林图生成器运行的同一套代码排版。按编号顺序阅读。

带编号标注的森林图:七项试验的相对危险度画在 0.2 到 5 的对数轴上,方块大小按权重,横线为 95% 置信区间,竖直无效线在 1,合并菱形位于 0.83,各部分都有编号标注研究权重相对危险度 IV,随机,95% CIOkafor 20169.6%0.71 [0.48, 1.05]Lindqvist 201719.5%0.88 [0.69, 1.12]Moreau 20188.6%0.64 [0.42, 0.97]Tanaka 201922.8%0.93 [0.75, 1.15]Brennan 20207.6%0.58 [0.37, 0.91]Haddad 202116.7%0.80 [0.61, 1.05]Kowalski 202215.3%1.04 [0.78, 1.39]Total (95% CI)100.0%0.83 [0.73, 0.95]0.20.5125Favours early mobilisationFavours usual careHeterogeneity: Tau² = 0.008; Chi² = 8.16, df = 6 (P = 0.23); I² = 26%Test for overall effect: Z = 2.72 (P = 0.007)12345678
示意数据。方块、横线、权重和菱形都是森林图生成器为第一个示例实际输出的结果:随机效应,RR 0.83 [0.73, 0.95],I² = 26%。
  1. 1

    研究行

    每项研究一行,通常写第一作者和年份,顺序与系统评价中的列法一致(按年份、按权重或按效应大小)。有亚组时,亚组标题位于各自的行上方,不带标记。

  2. 2

    方块:该研究的估计值

    每个方块的中心是该研究的点估计值。Tanaka 2019 位于 0.93,即早期下床活动使死亡风险降低 7%。方块面积是该研究的权重,Tanaka 的区间最窄,所以方块最大。

  3. 3

    横线:置信区间

    横线是 95% 置信区间。Brennan 2020 从 0.37 延伸到 0.91。横线宽,说明研究规模小或事件少;末端的箭头表示区间超出了坐标轴。

  4. 4

    无效线

    位于 1 的竖线(均数差则位于 0)。横线跨过它的研究,自身结果与无效应相容:这里七项中有五项是这样。这并不表示该研究什么都没发现,只说明它规模太小,单靠自己下不了结论。

  5. 5

    菱形:合并估计值

    菱形中心是合并的相对危险度 0.83,左右两个顶点是合并的 95% CI,即 0.73 到 0.95。大多数单项研究跨过了无效线,菱形却没有:合并各项试验使区间变窄了。

  6. 6

    权重和右侧的数字列

    右侧各列印出每项研究的权重以及它的估计值和区间,不用量也能读图;森林图生成器默认两列都印。权重合计为 100%,来自每项研究方差的倒数(随机效应下再加上 τ²)。

  7. 7

    异质性和总体效应检验

    图下方,I² = 26% 表示研究间差异约有四分之一超出了随机误差所能解释的范围;τ² = 0.008 是对数尺度上的研究间方差;Z = 2.72 (P = 0.007) 检验合并效应是否不同于无效应。

  8. 8

    “有利于”标签

    坐标轴下方的文字说明哪一侧是好消息。对死亡率而言,相对危险度小于 1 有利于早期下床活动,所以这个标签放在左边。读任何森林图之前都先核对它们:如果结局是康复这类指标,两侧就要对调。

把这个示例载入森林图生成器,改动一项研究,比如把 Kowalski 2022 改成 RR 1.40 (1.05 to 1.87),看看权重、菱形和 I² 怎么变。

如何用森林图生成器画森林图

1

把研究数据交给森林图生成器

每行一项研究或用逗号分隔:标签、效应指标、估计值和 95% CI,如 Lee 2020 RR 0.75 (0.55 to 1.02)。有权重或样本量就加上 weight 18% 或 n = 240,在一组行之前写 Subgroup Adults: 表示亚组。也可以附加电子表格或软件导出的表格,森林图生成器会读取各列。

2

说明合并方式和图上要显示的内容

森林图生成器默认用随机效应;也可以写固定效应、两种模型都要,或者不要合并估计值(用于回归或单项试验的亚组图)。写明两侧的“有利于”标签(左边有利于早期下床活动,右边有利于常规护理),置信水平不是 95% 时也要写明。

3

选择期刊风格并生成

选 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, PrismSPSS 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,并按同一水平印出合并区间。不支持在一张森林图里混用不同水平:请先统一换算成同一水平。

森林图生成器为什么需要每个点估计值?

因为图上每个数字都必须是你给出的,或者是根据你的数据算出来的。 一旦涉及四舍五入,单凭区间无法精确确定点估计值,所以森林图生成器要求你提供估计值,而不是去猜。权重和合并结果也一样:只有你写明或者代码算出时才会印出。

把你的研究数据粘贴进森林图生成器

输入或附加每项研究的估计值和置信区间,森林图生成器返回一张期刊风格的森林图,合并菱形、权重和 I² 都替你算好。

打开森林图生成器