森林圖工具

統合分析森林圖產生器

給系統性回顧、學位論文和期刊投稿用的統合分析森林圖產生器:給它每篇研究的估計值和信賴區間,它就畫出方塊、鬚線和合併菱形,權重、I²、τ² 和整體效應檢定都是算出來的,不是猜的。支援勝算比、風險比、危險比和平均差,也能分次群組。

森林圖產生器的期刊風格

五種期刊預設,各由森林圖產生器畫一份不同的統合分析:RevMan 風格的風險比回顧、高異質性的勝算比分析、標準化平均差、單一試驗的次群組,以及同時呈現兩種合併模型的圖。點選卡片即可載入它的提示詞和研究。

Cochrane

RevMan 樣式:森林圖產生器加上 n 欄,並像 Cochrane 回顧那樣印出 Chi²、df、P 和 I²。

JAMA

I² 高達 67%,森林圖產生器畫出的隨機效應菱形很寬,勉強沒碰到無效應線。

BMJ

標準化平均差讓森林圖產生器改用以 0 為中心的線性軸,而不是對數刻度。

The Lancet

單一試驗的次群組:森林圖產生器不做任何合併,整體結果照原報告畫出。

NEJM

兩種模型並列,森林圖產生器為每種各印一欄權重。

森林圖範例

四張森林圖範例都出自森林圖產生器,各依卡片上的提示詞和研究算繪(全為示意資料)。點選卡片即可載入上方輸入框,再把數字換成你的。

風險比,隨機效應

森林圖產生器的預設:隨機效應、權重、菱形和 Cochrane 頁尾。七個區間只有兩個沒跨過 1,合併的區間也沒有。

依次群組的勝算比

兩個次群組各有自己的菱形;森林圖產生器在合計下方加上次群組差異檢定。

平均差

是差值不是比值:森林圖產生器改用線性軸,無效應線在 0。

附權重的危險比

照原報告輸入的權重決定方塊大小;森林圖產生器仍自己合併危險比,並說明合併方法。

什麼是森林圖?

森林圖是統合分析的圖:每篇研究的效應估計值畫成方塊,信賴區間畫成水平線,所有研究的合併估計值則是最下方的菱形。一條垂直線標出無效應的位置,勝算比、風險比或危險比這類比值為 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,然後產生。方塊、鬚線、菱形和印出的數字都維持森林圖產生器算出的結果;風格只改變顏色、字型和區間的寫法。

森林圖產生器如何合併統合分析

統合分析森林圖的好壞,取決於它下方那一列合併結果。以下是森林圖產生器對每次請求套用的反變異數公式,和 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(θ̂*)

每個變異數都加上 τ²,使權重趨於平均,小型研究的分量變重,研究結果不一致時菱形也會變寬。這是森林圖產生器的預設模型。

以 R 的 metafor 套件中的教科書資料集 BCG 疫苗試驗(13 篇研究,Colditz 1994)驗證:森林圖產生器重現了 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 表示第一組發生該結果的勝算較低。

相對風險森林圖

風險比(相對風險),用於報告風險本身的世代研究和試驗。與勝算比相同的對數軸,只有在事件罕見時兩者才接近。寫 RR 或 risk ratio;森林圖產生器把該欄標為風險比,並讓比值刻度以 1 為中心對稱,所以 0.5 和 2 與 1 的距離相同。

危險比森林圖

用於事件發生時間的結果:存活、復發、再住院時間。危險比來自 Cox 模型,以報告的區間在對數尺度上合併。若有各試驗報告的權重就一併輸入;森林圖產生器依它決定方塊大小,但仍自己合併危險比。

平均差與 SMD 森林圖

用於連續型結果,例如血壓、疼痛分數或 HbA1c。所有研究使用同一量表時,平均差(MD)保留單位(mmHg 或分);量表不同時,標準化平均差(SMD,Hedges' g)以 SD 相除。兩者都用以 0 為中心的線性軸,森林圖產生器會選對稱的範圍,讓 0 落在正中間。

次群組森林圖

同一份統合分析依族群、劑量或設計拆開。在各組研究列之前寫 Subgroup Adults: 和 Subgroup Children:,森林圖產生器就會拆分表格。每個次群組各有標題、小計菱形和自己的 I²,頁尾再加上次群組差異檢定,也就是判斷各次群組效應的差異是否超出機率的 χ²。

邏輯斯迴歸或單一試驗次群組的森林圖

單一迴歸模型中各共變數的調整後勝算比,或單一試驗依年齡、性別和共病分組的危險比。這些列不是獨立的研究,所以絕不合併。森林圖產生器能辨識迴歸和單一試驗次群組的請求,不替這些列畫菱形,只有你提供整體結果時才畫出它。

解讀森林圖:I² 長什麼樣子

三份各含五篇研究的示意統合分析,由森林圖產生器以隨機效應合併,平均效應幾乎相同。區分它們的是方塊在菱形周圍散開的程度,也就是 I² 所衡量的東西。Cochrane Handbook 的大致準則: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 的兩側。隨機效應菱形變寬並跨過無效應線:這裡的合併數字掩蓋的比說明的多,下一步應該做次群組分析或統合迴歸。

I² 不像 Q 那樣隨研究數增加而變大,所以回顧都報告它;但研究少於約十篇時,它本身的不確定性很大。請在旁邊一併報告 τ²;森林圖產生器兩者都會印出。

森林圖產生器 vs 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 Analysis 程序;SAS 用 PROC SGPLOT 搭配 HIGHLOW;Prism 畫成水平誤差線圖SPSS 可以;SAS 要自己寫程式;Prism 不行各自的授權和操作程序

已經在 R、Stata 或 RevMan 做完分析了?把研究列和軟體印出的合併列貼上:森林圖產生器會照你給的合併結果畫出,從區間算出異質性說明列,權重則保持原樣。

森林圖產生器與統合分析常見問題

森林圖上的菱形代表什麼?

菱形是合併估計值:中心是所有研究的綜合效應,左右兩端是該估計值的信賴區間。菱形沒有碰到無效應線,表示合併結果在選定的水準下具統計顯著性。次群組森林圖每個次群組各有一個較小的菱形,最下方是整體菱形。森林圖產生器從研究資料算出每個菱形的頂點,所以菱形的寬度就是真實的合併區間。

信賴區間跨過無效應線是什麼意思?

表示該研究的結果在 95% 水準下與無效應相容:它的區間包含勝算比、風險比或危險比等於 1,或差值等於 0。這不是「沒有效應」的證據;即使真實效應存在,小型研究也會跨過這條線,這正是要合併它們的原因。森林圖產生器在每一列旁邊印出區間,看得出哪些包含 1。綜合答案看菱形,每篇研究掌握多少資訊則看鬚線的寬度。

森林圖為什麼用對數刻度?

因為比值在對數尺度上是對稱的:勝算比 0.5 低於 1 的程度,和 2 高於 1 的程度相同。在線性軸上,0.5 到 1 的距離只有 2 到 1 的一半,區間看起來會一邊大一邊小。比值也是在對數尺度上合併,所以菱形在那裡同樣對稱。平均差維持線性軸;森林圖產生器會依你寫的效應量在兩者之間切換。

森林圖上方塊的大小代表什麼?

方塊面積與該研究在統合分析中的權重成正比,權重來自其變異數的倒數:區間窄的大型研究方塊就大。大小和效應有多大無關。森林圖產生器中每個方塊的邊長是其權重相對於最大權重的平方根,所以面積對應權重,並設有下限,讓最小的研究也看得見。

怎麼用 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 最有彈性;手上已有估計值和區間、想不寫繪圖程式就得到期刊風格的圖時,森林圖產生器最快。

random forest plot 和森林圖是同一種東西嗎?

不是。隨機森林(random forest)是由許多決策樹組成的機器學習模型,random forest plot 通常指它的變數重要性長條圖或部分依賴圖。森林圖則是呈現估計值和信賴區間的統合分析圖。兩者同名只是巧合;森林圖產生器畫的是統合分析的森林圖。

森林圖和漏斗圖有什麼不同?

森林圖呈現每篇研究的效應和合併結果;漏斗圖把每篇研究的效應對其標準誤作圖,用來檢查小型研究效應和發表偏誤。森林圖產生器畫的是前者;回顧通常兩者都放:森林圖給出答案,漏斗圖(研究十篇以上時)說明這個答案有多可信。

森林圖產生器會幫我算合併估計值嗎?

會,森林圖產生器自己合併研究,以每個信賴區間算出的反變異數權重:除非你要求固定效應或兩者並列,否則使用隨機效應(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² 都替你算好。

開啟森林圖產生器