進階已經雙重審閱,尚未人工抽查

固定效應與隨機效應

兩個模型的差別不是保守程度而是假設:一個問「這批研究的共同效應是多少」,另一個問「效應分布的平均在哪」。權重怎麼被改寫、τ² 有哪幾種估法、DerSimonian-Laird 在研究數少時錯在哪,以及 Knapp-Hartung 校正修的到底是什麼。

兩個模型問的不是同一個問題

最常聽到的說法是「隨機效應比較保守」。這句話碰巧描述了多數情況下的結果,但它把因果搞反了,而且會導出錯誤的操作(「異質性高就換模型讓區間寬一點」)。真正的差別在於兩者對世界的假設不同,因此估計的對象根本不是同一個東西

固定效應模型(fixed-effect model) 假設所有納入的研究都在估計同一個真值 θ\theta

yi=θ+εi,εiN(0,vi)y_i = \theta + \varepsilon_i, \qquad \varepsilon_i \sim N(0, v_i)

研究之間看起來不一樣,純粹是抽樣誤差。它回答的問題是:「這批研究共同指向的那個效應是多少?」

隨機效應模型(random-effects model) 假設每篇研究有各自的真值 θi\theta_i,而這些真值來自一個分布:

yi=θi+εi,θiN(μ,τ2),εiN(0,vi)y_i = \theta_i + \varepsilon_i, \qquad \theta_i \sim N(\mu, \tau^2), \qquad \varepsilon_i \sim N(0, v_i)

它回答的問題是:「這些真實效應的分布,平均落在哪裡?」 多出來的 τ2\tau^2 就是研究間變異數(between-study variance)。

在同一批資料上,兩者差多少

metadat::dat.bcg 這 13 篇 BCG 疫苗試驗(與上一頁B7-04 同一份資料)跑兩次:

模型合併 RR95% CI信賴區間寬度(log 尺度)
固定效應0.6500.601–0.7040.159
隨機效應(REML)0.4890.344–0.6960.705

兩件事值得停下來看:

  1. 信賴區間的寬度變成原本的 4.4 倍(在 log 尺度上量)。這是 τ² = 0.313 被加進每一篇研究的變異數所致。
  2. 點估計本身也移動了很多,從 RR 0.650 移到 0.489。這一點常被忽略——很多人以為換模型只會改變區間寬度。它會改變點估計,而且改變的幅度取決於「大研究與小研究的結果一不一致」。

權重被改寫成什麼樣子

固定效應下權重是 1/vi1 / v_i;隨機效應下是 1/(vi+τ2)1 / (v_i + \tau^2)。加上一個對所有研究都相同的常數 τ2\tau^2,效果是把權重往平均拉平——原本很精確的研究,它的優勢被 τ² 稀釋掉了。

啞鈴圖,13 篇 BCG 試驗各一列,每列有兩個點:藍點是固定效應權重、紅點是隨機效應權重,中間以灰線相連。最上面那篇的藍點遠在右側超過四成,紅點退回一成;最下面幾篇的藍點貼近 0,紅點都往右移到大約 4% 到 6% 之間。
同樣 13 篇試驗,兩種模型下的權重。線越長代表這篇研究的影響力被改寫得越多。TPT Madras, 1980 從 41.4% 掉到 10.2%,而權重最小的 Comstock & Webster, 1969 從 0.31% 升到 3.8%。產圖腳本 figures/scripts/B7-02-fixed-random.R
研究總人數該研究 RR固定效應權重隨機效應權重變動
TPT Madras, 19801767821.01241.4%10.2%-31.2
Stein & Aronson, 195329920.45623.8%10.1%-13.7
Comstock et al, 1974779720.71213.2%9.9%-3.3
Hart & Sutherland, 1977264650.2378.2%9.7%+1.5
Frimodt-Moller et al, 1973108770.8043.2%8.9%+5.7
Coetzee & Berjak, 1968147760.6252.9%8.7%+5.8
Comstock et al, 1976347670.9832.3%8.4%+6.1
Rosenthal et al, 196133810.2542.2%8.4%+6.1
Ferguson & Simes, 19496090.2050.8%6.4%+5.5
Vandiviere et al, 197331740.1980.7%6.0%+5.3
Aronson, 19482620.4110.5%5.1%+4.6
Rosenthal et al, 19604510.2600.4%4.4%+4.0
Comstock & Webster, 196948391.5620.3%3.8%+3.5

現在上一節那個「點估計為什麼會移動」有答案了:最大的那篇試驗(TPT Madras, 1980,176782 人)本身的 RR 是 1.012,也就是未偵測到保護效果。 固定效應下光是它一篇就佔 41.4% 的權重,把合併值往 1 拉;隨機效應把它降到 10.2%,合併值就退回其餘研究所指的方向。

τ² 有很多種估法,而且它們不會給同一個答案

隨機效應模型多出來的 τ² 是要估的,不是資料裡直接讀得到的。常見的估計式:

估計式τ²合併 RR95% CI說明
DL0.308892.1%0.4900.345–0.695DerSimonian-Laird, the historical default; closed form, no iteration
REML0.313292.2%0.4890.344–0.696restricted maximum likelihood, the current default in metafor
PM0.318192.3%0.4890.343–0.697Paule-Mandel, iterative moment estimator
SJ0.345592.9%0.4880.338–0.704Sidik-Jonkman
ML0.280091.4%0.4910.351–0.688maximum likelihood, known to be downward biased
HE0.328692.6%0.4890.341–0.700Hedges (variance component) estimator

在這份資料上(13 篇、異質性很大)差異不算大,因為研究數還算夠。研究數少的時候差異會變得很重要。

DL 在研究數少時錯在哪

用模擬把它看清楚:真實的 τ² 固定在 BCG 資料估出來的值(0.313),各研究的內部變異數從那 13 篇實際觀察到的變異數中重抽,只改變研究篇數 kk,每種情境跑 1500 次。

三格並排的盒鬚圖,分別對應五篇、十篇、三十篇研究三種情境。每格有 DL、REML、PM 三個盒子,並有一條紅色虛線標示真實的研究間變異數。五篇的那一格,三個盒子的中線都明顯低於紅線且盒子很長;三十篇的那一格,三個中線都貼近紅線、盒子明顯變短。
每個盒子是 1500 次模擬的 τ² 估計值分布,紅色虛線是真值。研究數少時三種估計式都偏低,DL 偏得最多;研究數增加後三者收斂到一起。注意盒子的長度——即使中位數對了,單一一篇統合分析拿到的那個 τ² 仍然很不穩。產圖腳本 figures/scripts/B7-02-fixed-random.R
研究篇數 kτ² 平均值τ² 中位數估為 τ² = 0 的比例
DLREMLPMDLREMLPMDLREMLPM
50.3150.3170.3250.2060.2410.2446.8%4.6%6.8%
100.2910.2990.3070.2350.2690.2730.5%0.3%0.5%
300.3140.3140.3160.2850.2990.3040.0%0.0%0.0%

平均值會受少數極端估計拉動,故本段以中位數描述單一統合分析較常遇到的典型估計;零估計率則顯示三法都可能把異質性估成 0。

真值是 0.313。在 kk = 5 時,DL 的典型估計只有 0.206——低估了約 34%,而 REML 與 PM 各是 0.241 與 0.244。而且 DL 有 6.8% 的機率直接回報 τ² = 0,也就是說出「這幾篇研究之間沒有異質性」——在一個真實 τ² 明明不小的世界裡。

τ² 被低估的直接後果是信賴區間太窄,因為 τ2\tau^2 就加在每一篇研究的變異數上。這就是下一節要修的東西。

Knapp-Hartung 校正修的是什麼

標準的隨機效應信賴區間用的是常態分位數(1.96),並且把估出來的 τ^2\hat\tau^2 當成真值在用。當 kk 小、τ^2\hat\tau^2 本身很不穩的時候,這兩件事都會讓區間太窄。

Knapp-Hartung 調整(Knapp-Hartung adjustment,也叫 Hartung-Knapp-Sidik-Jonkman,HKSJ)做兩件事:改用 tt 分布(自由度 k1k - 1)取代常態,並用一個把 τ^2\hat\tau^2 的不確定性納入的變異數估計式。

同一份 BCG 資料,各估計式加不加 KH 的差別:

估計式標準 95% CI加 Knapp-Hartung區間變寬
DL0.345–0.6950.330–0.726+12.4%
REML0.344–0.6960.330–0.726+11.8%
PM0.343–0.6970.330–0.726+11.2%
SJ0.338–0.7040.329–0.725+7.8%
ML0.351–0.6880.332–0.727+16.4%
HE0.341–0.7000.329–0.725+9.8%

在 13 篇的情況下加寬約一成,看起來不多。研究數更少時它救的東西才明顯——同一組模擬,看信賴區間實際涵蓋真值的比例:

研究篇數 kDL 標準區間的涵蓋率DL + Knapp-Hartung
585.7%93.4%
1089.5%94.3%
3093.1%95.0%

kk = 5 時,名目上 95% 的區間實際只涵蓋真值 85.7%;加上 Knapp-Hartung 之後回到 93.4%。換句話說,一篇只納入五篇研究、用 DL 標準區間的統合分析,它的「95% 信賴區間」實際上大約是一個 86% 區間。

那到底該選哪一個

情境建議理由
研究在臨床上高度相似(同一個藥、同一種族群、同一個結果定義)固定效應可以考慮「共同效應」這個假設有現實基礎
多數臨床統合分析隨機效應 + Knapp-Hartung,τ² 用 REML 或 PM族群、劑量、追蹤長度不可能完全相同
研究數很少(少於 5 篇)隨機效應,但τ² 幾乎估不準,要在限制裡明講此時 τ² 的估計極不穩,任何模型都撐不起強結論
只有兩三篇研究考慮不要合併,改做敘事性整合一個估不出來的 τ² 加上一個看不出形狀的分布,合併值的意義有限
想知道「下一篇研究會落在哪」兩者都不夠,要預測區間異質性那一頁

動手跑一次

library(metafor)
library(metadat)

data(dat.bcg, package = "metadat")
d <- escalc(measure = "RR", ai = tpos, bi = tneg, ci = cpos, di = cneg,
            data = dat.bcg, slab = paste(author, year, sep = ", "))

fe <- rma(yi, vi, data = d, method = "FE")     # 固定效應
re <- rma(yi, vi, data = d, method = "REML")   # 隨機效應(現在的預設)
fe; re

# 權重被改寫成什麼樣子 —— 這張表是本頁第三節的來源
# slab 不會變成 d 的欄位(d$slab 是 NULL),它跟著 weights() 的 names 走。
data.frame(study = names(weights(fe)),
           fixed  = round(weights(fe), 1),
           random = round(weights(re), 1))

# 換 tau^2 估計式,看合併值與區間跟著動
for (m in c("DL", "REML", "PM", "SJ", "ML", "HE")) {
  r <- rma(yi, vi, data = d, method = m)
  cat(sprintf("%-5s tau2=%.4f  RR=%.3f (%.3f-%.3f)\n",
              m, r$tau2, exp(r$beta), exp(r$ci.lb), exp(r$ci.ub)))
}

# Knapp-Hartung:改用 t 分布,並納入 tau^2 的不確定性
rma(yi, vi, data = d, method = "REML", test = "knha")

# 用 meta 套件也一樣(它的輸出格式更接近論文表格)
# library(meta)
# metabin(tpos, tpos + tneg, cpos, cpos + cneg, data = dat.bcg,
#         sm = "RR", method.tau = "REML", hakn = TRUE)

驗證環境:R 4.6.0 + metafor 5.0.1 + metadat 1.6.0

怎麼讀報表

論文裡與這一頁有關的通常是 Methods 的一兩句加上 forest plot 底下的那一行。要找五件事:

  1. 用了哪個模型,理由是什麼。 只寫「random-effects model」而沒說為什麼,是常態但不理想;完全沒寫模型,是實質缺漏。
  2. τ² 用哪個估計式估的。 沒寫通常是 DL。舊的 review 尤其如此。
  3. 有沒有 Knapp-Hartung。 寫法是 “Hartung-Knapp adjustment” 或 “HKSJ”。研究數少於十篇又沒有它,那個信賴區間要自己在心裡放寬。
  4. 模型是不是事後才決定的。 出現「因為 I² 高於某個值,故改採隨機效應」這種句子,就是資料驅動的模型選擇。
  5. 權重集中在誰身上。 forest plot 上有一個方塊特別大,就把它單獨拿掉再看一次結論——這件事讀者自己做得到,只要論文有附各研究的數據。

常見誤用

誤用為什麼錯
把兩個模型的差別理解成「保守程度」它們估計的對象不同;隨機效應的推論範圍其實更大
先看 I² 再決定用哪個模型資料驅動的模型選擇,等於未校正的兩階段程序
認為換模型只會改變區間寬度點估計也會移動,幅度取決於大小研究是否一致
異質性高就改隨機效應了事該做的是找異質性的來源;換模型只是把它吸收掉
忽略隨機效應會放大小研究的影響小研究品質差或有發表偏誤時,隨機效應反而更容易被帶偏
研究數很少仍宣稱估到了 τ²k 小時 τ² 的估計極不穩,DL 甚至常回報 0
用 DL 且不加 Knapp-Hartung,研究數又少名目 95% 的區間實際涵蓋率可能只有八成多
把隨機效應的合併值當成「下一個病人/下一篇研究會怎樣」那是預測區間的工作,合併值只是分布的平均
只報合併值不報 τ²少了 τ²,讀者無法判斷這個平均代表性有多高
臨床上不可比的研究照樣合併統計上跑得動不代表那個 μ 有意義

重跑本頁的所有數字

/opt/homebrew/bin/Rscript figures/scripts/B7-02-fixed-random.R

讀讀看這張圖

答案取自產生本頁圖表的同一份統計輸出,不是另外打上去的。

同一批 13 篇 BCG 試驗,固定效應合併 RR 是 0.650,隨機效應是 0.489。點估計為什麼會移動?

看答案與解析

正確答案: 因為權重被重新分配:最大那篇試驗從四成以上掉到 10.19%,而它自己的 RR 接近 1,它把合併值往 1 拉的力道被削弱了

固定效應下最大的那篇試驗一篇就佔了四成以上的權重,而它自己的 RR 接近 1;隨機效應把它壓到 10.19%,其餘研究指向的方向於是浮出來,合併值從 0.650 移到 0.489。移動的方向是離開 1,不是靠近 1——所以「隨機效應比較保守」這句話連方向都說錯了,區間確實變成 4.44 倍寬,但那是另一件事。I² 的 92.22% 描述的是研究間變異佔總變異的比例,它說異質性有多大,不決定合併值往哪一邊走:把同一批研究的效果方向整批倒過來,I² 一樣,合併值卻會往反方向移。真正決定移動方向的是大研究與小研究的結果一不一致。

一組模擬把真實的 τ² 固定在 0.313,只改變研究篇數。k = 5 時 DerSimonian-Laird 的表現說明了什麼?

看答案與解析

正確答案: 它的典型估計只有 0.206,把研究間變異數低估了超過三分之一,而低估 τ² 會直接讓信賴區間太窄

0.206 是 k = 5 時 DL 估計的中位數,真值是 0.313,低估超過三分之一。平均值 0.315 看起來正中真值,但那是少數極端高估把平均拉回來的結果;單一一篇統合分析拿到的是這個分布裡的一次抽樣,中位數才是它典型會遇到的東西。0.285 是研究篇數最多那一列的中位數,方向剛好相反——研究數變多之後 DL 才逐漸靠回真值,所以說問題要等研究數更多才浮現,是把兩端顛倒了。低估 τ² 不是學術瑕疵:τ² 就加在每一篇研究的變異數上,估小了區間就窄,而區間正是讀者用來判斷結論穩不穩的東西。

同一組模擬裡,k = 5、名目 95% 的 DerSimonian-Laird 隨機效應區間實際只涵蓋真值 85.7%。Knapp-Hartung 校正在這裡做了什麼?

看答案與解析

正確答案: 把涵蓋率拉回 93.4%,做法是改用 t 分布分位數並把 τ² 估計本身的不確定性算進變異數——它修的是區間,不是點估計

Knapp-Hartung 換的是區間的算法:用 t 分布分位數取代常態分位數,再用一個把 τ² 估計本身的不穩定納進來的變異數估計式,於是 k = 5 的涵蓋率從 85.7% 回到 93.4%。它完全沒有動 τ² 的估計式,也沒有動點估計。93.1% 是不加校正、但研究篇數多很多那一列的涵蓋率,把它算成校正的功勞,等於把「研究變多」與「區間算法改了」兩件事混在一起。至於代價,在這份 BCG 資料上區間加寬約 12.4%,換到的是名目與實際對得上——在研究數少時這個交換很值得,在研究數多時它幾乎不改變任何結論,所以現行建議是預設就加,而不是等研究數少了才加。

隨機效應把權重往平均拉平:這批試驗裡權重最小的一篇從 0.31% 升到 3.8%,最大的一篇則從 41.4% 降下來。這個改寫的代價在哪裡?

看答案與解析

正確答案: 代價在於被提高權重的正是精確度最低的研究:這一篇的 RR 是 1.56,方向與合併值相反,而它的權重被提高了十倍以上

隨機效應的權重是 1 除以「單篇變異數加上 τ²」,對所有研究加同一個常數會把差距壓縮,於是精確度最低的那幾篇一起被提上來。權重最小那一篇的 RR 是 1.56,方向與合併值完全相反,它的權重卻被提高了十倍以上——這些低精確度的研究若系統性地誇大效果(盲性不足、分配隱蔽不當、選擇性報告,或根本是發表偏誤的倖存者),隨機效應會把那個偏誤一起放大,固定效應反而受害較輕。10.19% 是最大那篇改寫後的權重,離「一篇一票」還很遠,而且一篇一票本身就不是統合分析該做的事,那等於丟掉精確度資訊。方向上也要小心:1.01 是最大那篇自己的 RR,拉平權重是削弱它的影響力,合併值因此離開 1,不是被拉往 1。

固定效應的 95% CI 是 0.601 到 0.704,隨機效應是 0.344 到 0.696。有人說隨機效應比較保守,這個說法哪裡不精確?

看答案與解析

正確答案: 不精確在於保守只是結果不是理由:兩個模型估的不是同一個量,區間變成 4.44 倍寬是因為多估了一個效應分布的離散度

固定效應的區間回答的是「這批研究共同的那個效應在哪」,隨機效應的區間回答的是「效應分布的平均在哪」。後者多含一個 τ² = 0.31,也就是研究之間真實效應的離散度,所以區間變成 4.44 倍寬——寬是假設不同的後果,不是刻意選了保守。把它當成保守程度的旋鈕,就會導出「異質性高就換模型讓區間寬一點」這種操作,而那是先看結果再挑模型。0.16 是固定效應在 log 尺度上的區間寬度,它窄不是因為它比較準,而是因為它假設 τ² 等於零,這個假設在 Q 檢定強烈拒絕同質的時候站不住。而且隨機效應連點估計都移動了,保守這個詞連移動方向都沒說。

同一批 13 篇資料換六種 τ² 估計式,合併 RR 全落在 0.488 到 0.491 之間,I² 也都在 91% 到 93% 之間。可以據此說估計式的選擇不重要嗎?

看答案與解析

正確答案: 不行。這裡差異小是因為研究數還算夠:最高的 0.346 與最低的估計差了超過兩成,而研究數少時這個差距會直接改寫區間寬度

六種估計式在這份資料上確實靠得很近,但那是研究篇數撐出來的。SJ 給 0.346、ML 給 0.280,相差超過兩成;τ² 直接加在每一篇的變異數上,兩成的差距在研究數少、單篇變異數又大的時候會明顯改變區間寬度,而區間寬度決定結論。ML 已知會系統性低估,這正是它落在最低的原因,把「它差最遠」讀成「所以無所謂」是把偏誤當成雜訊。0.309 是 DL 的估計,它是歷史預設而不是無偏的標竿——它在研究數少時偏低得最嚴重,metafor 與 meta 兩個套件都已經換掉這個預設。報表上該寫清楚的是用了哪一種估計式,而不是預設它們可以互換。

延伸觀看

醫學統計 EP18 統合分析:加權整合多項研究、看懂森林圖
繁中EDMAN MURMURS· 9 min繁中,核心就是「為什麼要加權」——本頁第三節在做的正是把那個權重拆開來看。
Systematic reviews and meta analysis
ENCochrane Mental Health· 29 minCochrane 的教學版本,模型選擇那一段講得比多數教科書務實。
How to do your first meta-analysis from start to finish
ENLearn Meta-Analysis· 212 min三個半小時的完整工作坊。想真的動手跑一遍、看每個選項在軟體裡長什麼樣,看這支。

素材來源與授權

本頁為原創內容

回報內容問題

這個站的統計內容由 AI 撰寫、AI 互審,人工只做抽查。你看得出來的錯,我們不一定看得出來。

寫得越具體越修得動,例如哪一句話跟哪本教科書/哪篇論文的說法不一致。

留了才回得了信;不留也會看。

一併送出的資訊

這些是自動帶上的,每一項都可以取消。