R₀ 看起來只是一個數字,為什麼專家在疫情中算出來的 Rₜ 卻天天打架?
從 SIR/SEIR 區隔模型、世代間隔與下世代矩陣,深入拆解傳染病防治背後的動力學、Rₜ 估計陷阱與疫苗策略數學。
R₀ 看起來只是一個數字,為什麼專家在疫情中算出來的 Rₜ 卻天天打架?
你已經知道基本再生數(basic reproduction number, R₀)描述「一名感染者平均傳染給多少人」,也知道把有效再生數(effective reproduction number, Rₜ)壓到 1 以下就能讓疫情消退。但 2020–2022 年新冠疫情期間,你或許注意到一個怪現象:同一週、同一個地區,不同團隊估出的 Rₜ 可以從 0.9 到 1.4 不等,有人說「疫情正在收斂」,有人說「還在擴大」。如果 Rₜ 真是一個明確的物理量,怎麼會吵成這樣?
答案藏在一個入門篇刻意略過的細節裡:R₀ 不是病原體的固定屬性,而是一個從動力學模型「推導」出來的合成量。 它牽涉到傳染期有多長、世代間隔(generation interval)如何分布、人群如何混合接觸,以及你用什麼方法把「過去幾天的病例數」反推回「此刻的傳播力」。這篇進階篇不再重述傳播鏈與群體免疫門檻的基礎,而是直接走進傳染病防治真正吃功夫的地方:如何把一條看不見的傳播鏈,寫成一組能計算、能預測、能據以決策的方程式,以及這些方程式在哪裡會騙人。

從區隔模型重新理解 R₀:β 與 γ 的真正意義
入門時 R₀ 是被「給定」的數字。進階流行病學則把它拆解到動力學的根。最簡單的 SIR 區隔模型(Susceptible–Infected–Recovered compartmental model)用三條微分方程描述一個封閉族群中三種人的流動:
$$\frac{dS}{dt} = -\beta \frac{SI}{N}, \quad \frac{dI}{dt} = \beta \frac{SI}{N} - \gamma I, \quad \frac{dR}{dt} = \gamma I$$
其中 $\beta$ 是有效接觸率(一個感染者單位時間內造成的有效傳染接觸數),$\gamma$ 是康復率(等於平均傳染期 $D$ 的倒數,$\gamma = 1/D$)。把 $dI/dt$ 在疫情初期($S \approx N$)的條件下整理,可以得到那個著名的關係:
$$R_0 = \frac{\beta}{\gamma} = \beta \cdot D$$
這條式子比「平均傳給幾個人」深刻得多,因為它告訴我們 R₀ 同時受傳染力(藏在 β 裡,與病毒、口罩、通風、社交距離有關)與傳染期長度(D,與病程、隔離速度有關)牽動。這也解釋了防治的兩條獨立戰線:降低 β(戴口罩、改善通風)與縮短 D(快篩早期發現、及早隔離),兩者都能壓低 R₀,而且效果是相乘的。
把潛伏期納進來,就得到 SEIR 模型:在 S 與 I 之間插入一個「已感染但尚無傳染力」的暴露區隔(Exposed, E)。對於潛伏期明顯的疾病(如麻疹),SEIR 比 SIR 更貼合真實的時間延遲,也讓模型能區分「潛伏期」與「傳染期」這兩段在防治上意義截然不同的時間窗。
看一個例子:同樣 R₀ = 2,為什麼一個慢燒、一個爆發
假設疾病甲與疾病乙的 R₀ 都是 2,但甲的平均傳染期 $D = 10$ 天、乙只有 2 天。由 $R_0 = \beta D$ 反推,甲的 $\beta = 0.2$、乙的 $\beta = 1.0$。雖然「每代傳給 2 人」相同,但乙的「每一代」只花 2 天就完成,甲卻要 10 天。
這意味著在同樣的指數成長階段,乙的病例數翻倍速度比甲快上數倍——它的世代間隔(generation interval)短,傳播鏈一代接一代滾得飛快。這正是公共衛生最害怕的組合:短世代間隔 + R₀ > 1。它讓你幾乎沒有反應時間,等你算出 Rₜ、開完會、下達指令,疫情已經滾過好幾代。理解這一點,你就懂為什麼「及早、果斷」在短世代間隔疾病上不是口號,而是數學上的硬約束。
世代間隔與序列間隔:Rₜ 估計的隱形地基
要在疫情「進行中」估計 Rₜ,我們手上通常只有每天通報的病例數。從這串時間序列反推傳播力,必須依賴一個關鍵分布:世代間隔(generation interval)——「感染者被感染」到「他傳染給下一個人」之間的時間。問題是,感染時刻無法直接觀察,於是實務上常用序列間隔(serial interval)替代:「前一個病例發病」到「後一個病例發病」之間的時間,因為發病時間看得見。
這個替代埋了三個陷阱,正是不同團隊 Rₜ 打架的根源:
- 序列間隔不等於世代間隔。 當存在症狀前傳播(presymptomatic transmission)時,序列間隔甚至可能是負的(後一個病例比傳染他的人更早發病)。用序列間隔當世代間隔,會系統性地偏移 Rₜ 估計。
- 世代間隔分布本身會隨防疫措施改變。 隔離越快,傳染期被截斷得越早,實際的世代間隔就被「壓縮」。用疫情早期估的世代間隔去算後期的 Rₜ,會高估傳播力。
- 通報延遲(reporting delay)與右設限(right truncation)。 最近幾天的病例還沒被完整通報,直接拿來算會讓 Rₜ 看起來「假性下降」,必須做 nowcasting 校正。
主流方法如 Cori 等人提出的瞬時再生數(instantaneous reproduction number)估計,正是把「今天的新發病例」除以「過去病例經世代間隔分布加權的傳染壓力」。換句話說,Rₜ 的估計值,對你假設的世代間隔分布極度敏感。 兩個團隊只要餵進不同的世代間隔,就會吵出不同的結論——這不是誰算錯,而是輸入假設不同。對研究者的啟示是:報告 Rₜ 時,必須一併公開所用的世代間隔與資料校正方式,否則數字無法被檢驗。
把群體免疫門檻算得更誠實:異質性如何讓 1 − 1/R₀ 偏高
入門篇給了那條漂亮的群體免疫門檻公式 $HIT = 1 - 1/R_0$。麻疹 R₀ ≈ 15 代入得 93%。但在真實族群中,這個數字其實是偏保守的高估,原因在於它假設了「均勻混合(homogeneous mixing)」——每個人和每個人接觸機會相等。現實並非如此。
考慮兩種異質性:
- 接觸異質性。 人群中有高接觸者(如服務業、學生)與低接觸者(如居家長者)。高接觸者既容易感染、也容易傳染,因此他們往往較早就被自然感染或優先接種。當這群「傳播樞紐」先退出易感池,剩下的傳播效率會比均勻混合模型預期的更快下降,使得實際達到群體免疫所需的免疫比例低於 $1 - 1/R_0$。
- 易感性異質性。 人群對病原體的天生易感程度不同,高易感者也會優先被感染而退出,產生類似效果。
這帶出一個進階概念:不該用單一 R₀ 套全人口,而要用「下世代矩陣(next-generation matrix)」。 把人群分成若干次群(依年齡、職業、地理),矩陣的每個元素 $k_{ij}$ 代表「次群 j 的一個感染者平均傳染給次群 i 的人數」。R₀ 不再是 β/γ,而是這個矩陣的主特徵值(dominant eigenvalue)。對應的特徵向量則告訴你疫情成長期各次群的感染比例——這解釋了為什麼許多呼吸道疾病在學齡兒童間先爆發:接觸矩陣裡「學童對學童」那一格的值特別高。
動手試試:算一算「年齡分層」會怎麼改變防疫策略
假設某疾病主要由 20–40 歲的高接觸成人驅動傳播,但重症與死亡集中在 65 歲以上長者。疫苗數量有限,你只能先打一半人口。試比較兩種策略:
- 策略 A(保護易感者):優先打 65 歲以上長者。
- 策略 B(阻斷傳播):優先打 20–40 歲高接觸成人。
直覺上「先保護最脆弱的人」似乎理所當然,但用下世代矩陣思考會發現:若 B 能把整體 Rₜ 壓到 1 以下,疫情根本起不來,連帶保護了沒打疫苗的長者——這是間接保護(indirect protection)。反之若傳播力極強(即使打了高接觸者仍無法把 Rₜ 壓到 1 以下),則直接保護重症高風險群(策略 A)能最快減少死亡。
真實答案取決於 R₀、疫苗對「阻斷傳播」與「預防重症」兩種效果的高低、以及各年齡層的重症率。這正是 COVID-19 疫苗分配時各國模型團隊激烈辯論的核心——沒有放諸四海皆準的答案,只有「在你的接觸矩陣與目標函數下的最適解」。這個練習的價值,是讓你體會到族群層次的最佳策略,往往違反個體層次的直覺。
疫苗效果的兩種數學模型:leaky 還是 all-or-nothing?
入門篇把疫苗視為「讓人獲得免疫」。進階防治必須面對一個尷尬現實:沒有疫苗是 100% 有效的,而「不完全有效」可以用兩種截然不同的機制建模,對群體免疫門檻的影響大不相同。
- 全有全無模型(all-or-nothing):疫苗讓比例為 VE(疫苗效力)的人獲得完全免疫,其餘的人完全沒有保護,彷彿沒打。
- 滲漏模型(leaky):每個接種者面對每一次暴露,被感染的機率都降低 VE。也就是說,沒有人是金鐘罩,但每個人每次暴露的風險都按比例打折。
兩者在低暴露時看起來相似,但在高暴露、長時間的情境下分歧巨大:leaky 疫苗下的接種者只要暴露夠多次,終究有相當機率突破(breakthrough),這部分解釋了高傳播壓力下「突破性感染」為何不代表疫苗失效。把 VE 代入群體免疫門檻,公式要修正為:
$$HIT_{\text{vaccine}} = \frac{1 - 1/R_0}{VE}$$
代麻疹(R₀ ≈ 15、麻疹疫苗 VE ≈ 0.97):$HIT = 0.933 / 0.97 \approx 0.96$,需要約 96% 接種率。注意:當 $VE < 1 - 1/R_0$ 時分母太小,HIT 會超過 1——意味著光靠這支疫苗、無論打到 100% 都達不到群體免疫,必須搭配其他措施。這個邊界條件,正是評估一支新疫苗「能否單獨終結流行」的硬指標。
此外要嚴格區分效力(efficacy,臨床試驗的理想條件下)與效果(effectiveness,真實世界):真實世界有保存運送的冷鏈損耗、接種劑次不全、變異株免疫逃脫、以及免疫力隨時間衰退(waning immunity)。waning 的存在讓「一次接種達標」變成「需要持續補強」,也讓 SEIRS(多一個 S,康復者會重新變回易感)這類模型在描述反覆流行的疾病時更貼近真實。
為什麼麻疹會「週期性」回來:臨界社區規模與動力學共振
入門篇說麻疹覆蓋率稍降就復燃,但沒解釋一個更迷人的現象:在疫苗時代之前,許多大城市的麻疹疫情呈現驚人規律的兩年週期。這不是巧合,而是 SEIR 動力學的內在性質。
關鍵在於易感者的補充速度。每一波麻疹大流行會「燒掉」大量易感兒童,使易感池枯竭、疫情消退;之後新生兒陸續出生,易感池慢慢回填,直到累積到足夠引爆下一波——這個「消耗—回填」的循環,疊加在疾病本身的世代間隔上,產生了規律的振盪(damped oscillation)。出生率越高、回填越快,週期越短。
另一個族群層次的概念是臨界社區規模(critical community size, CCS):一個社區要大到一定人口,麻疹這類「感染後終身免疫」的疾病才能持續存在而不自行絕跡。麻疹的 CCS 估計約在 25–50 萬人。小於此規模的社區,疫情燒完後因為新生易感者補充太慢,病毒會在兩波之間「斷鏈」而本地滅絕,必須靠外部移入才能再起。這個洞見對島嶼、偏鄉與根除策略至關重要——它告訴我們,有些疾病不必把全球都打到群體免疫,只要讓每個社區都低於 CCS,就能逐步擠壓病原的生存空間。 天花的根除、麻疹的區域消除目標,背後都有這層動力學邏輯。
重點回顧
- R₀ 不是病原體常數,而是 $R_0 = \beta D$:拆成有效接觸率 β 與傳染期 D 後,防治就有了降低 β(口罩、通風)與縮短 D(早篩早隔離)兩條相乘的戰線。
- Rₜ 估計極度依賴世代間隔分布:序列間隔不等於世代間隔、分布會隨防疫改變、近期資料有通報延遲——這三點是不同團隊 Rₜ「打架」的真正原因,報告 Rₜ 必須附上假設。
- 群體免疫門檻 $1 - 1/R_0$ 假設均勻混合,是高估:接觸與易感性異質性讓實際門檻偏低,正確做法是用下世代矩陣的主特徵值,分年齡/職業次群分析。
- 疫苗不完全有效有 leaky 與 all-or-nothing 兩種模型,修正後 $HIT = (1-1/R_0)/VE$;當 VE 太低時 HIT 會超過 1,代表單靠疫苗無法達群體免疫。
- 麻疹的週期性與臨界社區規模源自「易感者消耗—回填」的動力學振盪;低於 CCS 的社區會自行斷鏈,這是根除策略的理論基礎。
深入探討(研究所視角)
把上述模型推到當代研究前沿,第一個值得深究的方向是 R₀ 平均數背後的離散度(overdispersion)。入門篇提過超級傳播者,進階的量化工具是以負二項分布(negative binomial)刻畫每個感染者實際傳染人數,並用離散度參數 $k$ 描述異質性——$k$ 越小,傳播越集中於少數事件。SARS 與 COVID-19 的 $k$ 估計都很小(約 0.1–0.5),意味著或許 80% 的傳播來自不到 20% 的感染者。這個事實從根本上改變了控制策略的成本效益:前瞻性接觸者追蹤(forward tracing)找下一波受害者,效率遠不如回溯性追蹤(backward tracing)去找「那個把病傳給我的群聚事件」,因為在高離散度下,找到源頭往往能一次截斷一大叢集。
第二個前沿是 參數估計的不確定性與模型結構誤差的區分。當模型給出「若不介入將有 X 萬人感染」時,這個預測同時承載兩類不確定性:參數不確定性(β、γ、世代間隔的估計區間)與結構不確定性(你假設的是 SIR 還是 SEIR、有沒有 waning、接觸矩陣對不對)。當代做法是用貝氏推論(Bayesian inference)搭配 MCMC 或粒子濾波(particle filter)將觀測資料同化進機制模型,得到 Rₜ 的後驗分布而非單點估計。值得警惕的是:再精緻的統計也無法修正錯誤的模型結構——這正是流行病學建模「全錯但有用(all models are wrong, but some are useful)」的精神所在,使用者必須誠實揭露模型的假設邊界。
第三個交會領域是 動力學模型與基因體流行病學(genomic epidemiology)的結合。傳統 Rₜ 估計靠病例計數,但病原體全基因體定序提供了獨立的傳播訊號:透過 phylodynamics(親緣動力學),研究者能從病毒序列的演化樹直接推估有效族群大小的變化、傳播叢集的結構,甚至跨境傳入的時間點,與流行曲線互為交叉驗證。這把「看不見的傳播鏈」從仰賴問卷回溯,提升到能以分子訊號重建的精度。
最後是一個倫理與方法交織的反思。所有這些模型的輸出——封城門檻、疫苗分配順序、檢疫天數——本質上都在替不同族群分配風險與資源。下世代矩陣告訴我們「先打高接觸年輕人能救最多長者」,但這牽涉代際公平、自主權與信任。對有志於公共衛生研究的學生而言,掌握 SEIR、下世代矩陣與 Rₜ 估計只是入場券;更難也更重要的,是學會在模型的數學確定性與真實世界的價值取捨之間,誠實地劃出那條界線——承認模型能照亮決策,但永遠不能代替決策。