立場新聞 Stand News

只得一幅圖,只得一種疫情判斷?

2020/4/17 — 10:18

資料圖片,來源:Miroslava Chrienova @ Pixabay

資料圖片,來源:Miroslava Chrienova @ Pixabay

【文:瑞榮】

瘟疫流行,留在家中,多看網上有質素文章,既可消遣,亦增廣見聞。網上有不同的瘟疫數字資料,反映疫情發展。其中,林超英先生於 6/4 撰文〈一幅圖看半個月疫情 — 努力有回報,守住!〉[1],簡潔分析疫情的大致趨勢,鼓勵市民繼續努力,應付瘟疫。

該文指出半對數圖表 [2] 上疫情資料的特徵,並道出疫情在 4/4 前的趨勢,文中提到兩點:

廣告
  1. 在文內的半對數圖上,將不同時段內的累積確診數字外推,顯示趨勢由較斜的粉紅色線,改變至較平的橙色線,推論出「疫情軌跡進一步下調,數字仍會上升」,以及「(香港人)推後了病人數目達 1,600 人的時間」。
  2. 文內同一圖表中灰色線顯示,自 19/3 至 20/3 的累積確診數字顯示,病者數量有三日倍增(如紐約)的危機。

惟 [1] 文當中的並未見其推論過程、及在何條件下得出以上兩點。雖然,上述兩點,與 [1] 文發表之前已公開的公開數據比較之下,趨勢性質上吻合(例:《冠狀病毒病個案流行病學曲線圖》[3]:約在 19/3 開始,每日新增及疑似個案升幅開始緩和)。不過如果細心推敲,便發現單靠閱讀 [1] 文裏面的圖表特徵而要得出類似的結論,其實背後存在一些限制。如果不點出及明白那些限制,推論過程及結論未必穩妥。

廣告

當然 [1] 文可以只是一個回顧,寫作背後依靠分析其他數據,只是不在文中明言。但從普通讀者的合理期望出發,自然預設了文中圖表已足夠向讀者展示以上兩點,以及圖中特徵確為「疫情軌跡進一步下調」的情境所獨有,讀者以分析 [1] 文中所引資料及半對數圖特徵,便足以重複得出文內結論,本文將對此過程檢視不同的數據,探討能否得出合理結果。又 [1] 文中並無說明推論適用的限制,故本文並無預設有此等限制存在,部分內容以模擬數字作討論對象。

有關討論避免了展示數式,但換來大量文字形容,望讀者不厭累贅。

1. 問題不因使用半對數圖,而是源於如何閱讀半對數圖的特徵

累積確診數字的變化趨勢,在半對數圖中,確是大約可從線的斜度(指定質的估計,qualitative estimation)窺得一二。尤其當數字是以指數式(exponential)變化時,我們更可直接得出線段的斜率(指定量的計算結果,quantitative)[4] 作出計算。

不過,現實世界中累積確診數字鮮以完美指數式變化,半對數圖上少有長直線出現,如果無考慮資料的實際變化模式及其參數,而半對數圖又未出現明顯橫向、斜率趨近於 0 的情況時,我們可否如 [1] 文般,外推線段的斜度,比較不同時段的數據,判斷疫情變化的趨勢?

1.1 以模擬數字驗證推論邏輯

以下,我們用一組模擬數字作示範,並將結果畫在半對數圖(圖1)及線性圖(圖2)上。後者不會於此深入探討,只供讀者迅速了解模擬數字的趨勢。

圖 1 及 2 上面的三條線,分別對應三種確診個案增加的情境:

紫色線:累積確診個案以三日倍增,即是每三日翻一倍,這情境對應瘟疫失控的情況。
藍色線:第一日增加 20 宗確診個案,第二日增加 30 宗,第三日增加 40 宗,如此類推,越增越快。這情境對應抗疫措施部分有效,但瘟疫仍然不受控的情況。
橙色線:每日固定增加 10 宗確診個案,這情境對應瘟疫恰好受控但未有好轉的情況。

模擬中這三種情境一直維持下去,不會改變。

而從同一個模擬得出的每日新增確診個案數目則顯示在圖 3。

圖 1

圖 1

圖 2

圖 2

圖 3

圖 3

現在,彷如 [1] 文中,如果我們只有一張與圖 1 同類的半對數圖,上面只有其中一條累積確診個案數目的線,該線未出現橫向或斜率趨近於 0 的情況,其他資料闕如,我們可以得出甚麼結論?

紫色線是理想的直線,疫情最明顯,瘟疫快速傳播,每日新增個案逐日上升,累積確診個案數目指數式上升,固定以三日倍增。

但到了只看藍色線或只看橙色線時,會見到資料的斜度隨時間變小。套用 [1] 文中的推論邏輯,單單用不同時段數字的斜度及直線外推,便會得出「疫情正下調」、「達到某個宗數的日子被推後了」的結論。

對這兩個結論的檢驗如下:

對於「疫情正下調」的結論,明顯與模擬出藍色線(瘟疫一直都不受控)及橙色線(瘟疫一直都恰好受控但未有好轉)的設定不乎。

對於「達到某個宗數的日子被推後了」,這結論意味情況稍為緩和。但在模擬藍色線及橙色線時,都是設定了疫情不受控或恰好受控,完全沒有緩和的趨勢。可是,現在反而得出疫情趨向緩和的結論,亦是與設定矛盾。

用 [1] 文中的推論邏輯,去分析已知有特定趨勢的模擬資料,得出與模擬設定𣎴相乎的結論,足見單以累積確診數字半對數圖上不同時段斜度的變化有時是不足夠去準確評估疫情變化的趨勢。

1.2 回到現實,同樣的推論邏輯會得出矛盾的結論嗎?

以上指出的偏差可能,並非只在完美的模擬中出現。隨手拈來兩個現實例子:西班牙及意大利,看看從瘟疫不受控的時候的數據,可以得出甚麼結論。圖 4 及圖 5 分別羅列了兩國是的累積確診個案數目(圖 4 及圖 5 上部、中部)及每日新增確診個案數目(圖 4 及圖 5 下部)[5]。

圖 4

圖 4

圖 5

圖 5

我們先在圖 4(下)及圖 5(下)裏面,選出瘟疫未受控時段,即是每日新增確診個案仍然有增加趨勢的時段(有少部分是隔離個案被確診等特別情況,但不失一般性原則下現視整體為「瘟疫未受控」)。從圖 4(上)及圖 5(上)相同的時段中,檢視累積確診個案在半對數圖中七日的斜度,我們可見,兩國的斜度都是正在「下調」,但實情是每日新增確診個案都正在越升越快,升勢甚至越來越大,並未見頂。

在選出時段中,個別日子的新增確診個案會有比前一日下跌的情形,不過在大趨勢下仍然是上升,而且該日子在累積確診個案半對數圖上擬合直線的趨勢上並不見有決定性的影響,故此在定質的推論中不會等別考慮。

於此,憑半對數圖上累積確診個案數字的斜度,與每日新增個案的趨勢比較,再次判斷得到相反的疫情。

其實,面對這三個圖表,如要看出疫情趨勢是否正在緩和,很多人都會先直接去看圖 4(下)及圖 5(下)。觀察每日新增確診個案數目如何改變,較能直接得出更有根據的結論。

如果想以在院確診個案數目的改變去檢視現時醫療系統的壓力,網上亦有人將每日新增個案減去每日出院或死亡個案,以考慮每日在院病者的數目,以此估計醫療系統正面對的壓力,便更有說服力及更為直接,有興趣的讀者可以在網上搜尋,或者利用衛生防護中心網頁 [3] 內的數據處理。

現實數字比模擬數字有更多變數,例如瘟疫潛伏期、廷遲報告、隱形患者、確診定義改變等因素,影響判斷,各位可以自己深究一下,如何在模擬中加入不同參數,去探討這些因素對圖表的影響。

英國又如何?簡單提一下,英國疫情的發展趨勢,似乎可以單由累積確診個案半對數圖上的斜度的變化分析出來 [5],各位可以自己深究一下,嘗試找出造成與上述兩國分別的原因。但無論如何,仍無損以上矛盾證法的論點。

香港又如何?在此鼓勵有興趣讀者自己設定問題及找尋答案。

1.3 出現偏差的原因?

在其他學科,對半對數圖作出初步分析時都容易出現類似的偏差,可以是因為分析思路假設了數字時刻都只會循指數式上升,因而套用指數式上升模型作擬合(fitting),但擬合的時段太短,而且對上升幅度的擬合極為重要的高值部分因使用了對數間距而被壓縮,加上在沒有使用數值方法檢驗擬合質素下,未能在用作擬合的時段內分辨出模型趨勢與數字之間不吻合之處。

隨著檢視的時段變長,不吻合之處越見明顯時,沒有考慮用作擬合的模型的適當性,只是繼續使用之前的模型,更改模型參數再擬合另一段資料,如此便會得出「疫情改變」「倍增日數改變」的判斷。

例如圖1中,藍色線數字一直都是以非線性上升,設定的疫情是一貫的差,沒有改變,沒有上調下調,只是升幅比指數式升幅少,但前段和後段仍可以用指數式的上升配以不同參數(倍增日數)作擬合。比較兩個擬合結果後,便會得出「升幅變少」、以及「推後了數字達某一水平所需時間」的效果。這例子示範了單用累積個案半對數圖上的斜度改變去判斷疫情,是如何可以得出過份樂觀的結論。

2. 輸入個案的影響

在 [1] 文中探討的時段內,累積個案中除了本地個案外,亦包括了相當數量的輸入個案 [3]。此章以模擬數字,突顯輸入個案的變化,示範這因素會如何影響閱讀累積個案半對數圖的特徵。與 1.1 節不同,該節裏模擬的是比指數式上升少的累積個案,本章則模擬在指數式上升的本地個案外,還額外有輸入個案的情境。

2.1 輸入個案的突變效果

圖表顯示的是整體累積個案數字,當中包括六種主要的個案,按衛生防護中心分類為 [3]:本地、輸入、可能本地、可能輸入、本地個案密切接觸者、輸入個案密切接觸者。如某日確診的輸入個案突增,當天的整體確診數字亦可以突增。

2.2 模擬:設定輸入個案能被完全隔離

現以模擬數據示範輸入個案的情況。

在模擬中,本地感染人數以七日倍增。先看圖 6 左下角七天,該時段內的累積個案,純為本地傳播。因為係指數式上升,在半對數圖上呈現直線,每日新增個案會越升越快,如圖 7 的藍色資料所示。無論有無輸入案例,所有日子的本地社區感染累積個案均設定以七日倍增。

圖 6

圖 6

圖 7

圖 7

現在,我們隨便選三個日子,分別有 200、400、800 宗輸入個案,是為圖 7 裏面的三個橙色的高峰,顯示當日新增感染人數因輸入個案而突增。再設定所有輸入個案在確診後都可以從社區完全隔離,並不會感染任何人,不會開始新的社區傳播鏈。

如此,當每次多添輸入案例時,累積確診數字的半對數圖(圖 6)便會出現一個階級式的躍升。之後累積確診數值的變化再次等同本地傳播的影響。

選定輸入個案的宗數,及本地社區感染累積人數按七日倍增,純為突顯圖表中的特徵。如將輸入個案與本地社區感染的數字高低對調,結果圖表仍可以有類似特徵作相同推論。

2.3 從模擬結果(輸入個案能被完全隔離)得出的奇怪結果?

在圖 8(資料與圖 6 一樣)的模擬數字中, 當我們連上躍升當日及之前一日這兩點,便會得出如黑線所示極陡的斜線。雖然每次輸入個案宗數逐次倍增,但黑線的斜度一次比一次小。是否代表每次輸入個案的影響力逐次減少?

另外,雖然本地個案的設定是固定的以七日倍增,在每次輸入個案的躍升後,比較圖 8 中紅、藍、紫、橙色四線所示的累積個案的斜度,卻是在逐次變小。這個模擬的設定,是在固定以七日倍增本地個案外,還加上逐次倍增的輸入個案,但模擬的結果卻是累積個案的斜度逐漸變小。

圖 8

圖 8

更甚者,我們可以在圖 8 中找到一些區域,在經過輸入個案的躍升後,以外推的手法估計,到達某個累積個案的時間反而會延後了。例如圖 8 中的紅線及藍線,兩者分別是未有輸入個案時段的外推、以及經過一次輸入個案躍升的外推。可見兩線到達 800 人時,時間上仍是藍線早到。不過當兩線到達 1,600 人時,反而是紅線先到。這樣又出現了一個奇怪的結論:在有輸入個案的情況下,到達某累積個案的時間反而會比無輸入個案的情況更早。

2.4 為何單單比較累積數字的斜度會「爆煲」?

對於圖 8 中的黑線的斜度在每次躍升後逐次變小,如果單單定質的去看這特徵,容易令人對疫情時產生不合理的結論,即是:越多人巳經確診,輸入個案對疫情的影響越小。

而在每次躍升後,原來按固定倍增日數指數式上升的本地個案,所得出的斜度都一次比一次小,這特徵亦會令人得出「疫情在下調」的判斷,但這個判斷既與本地個案持續的設定趨勢不乎,更可能會令人輕視了輸入個案每次倍增的影響。

這兩個特徵的成因,是因為累積個案中的各個成分都在各自增加。嘗試從累積個案的半對數圖中判斷出某個成分的改變趨勢時,其他成分就組成了一個不斷升高的基數,將想觀察的變化托高到高值區,壓縮了變化的斜度。這正是在 1.3 節提過,半對數圖將高值區間距壓縮的效果,這種間距壓縮更可以令混合各獨立成分的累積數據的斜度向下調。

故此,輸入個案的增幅不一定可從累積個案在躍升一刻的斜度變化直觀判斷出來。本地個案的增幅亦可因其他成分的變化而不能直觀地從累積個案的斜度定質變化閱讀出來。

但讀者都可能已知道解決方法,就是不要只是定質去看半對數圖上線段的斜度的變化趨勢而判斷疫情,而是要對升幅本身作出定量的估計。但這亦需要在數據展示上的配合,如果半對數圖的間距標遠闊於數據之間的變化,如圖8般垂直的一格中包含了超過七點數據而又缺乏足夠的副間距標,就無助於鼓勵讀者自己作出正確的判斷。

另外,如果撰文前已從其他數據得出合理的疫情趨勢判斷,僅想以半對數圖上線段的斜度變化趨勢去示範這個判斷時,適宜同時列出對趨勢判斷具有指標性作用的資料,令讀者在閱讀背後有不同趨勢的其他數據時,不會因見到累積個案半對數圖上又出現同性質的線段斜度變化而感到混亂。

 [1] 文推論思路在這模擬數據中「爆煲」,另一原因,是每一種成分個案,就算都同樣以指數式變化,但除非每種個案的倍增日數完全相等,否則相加後的總個案數,並不會同樣以指數式變化,即是不會在半對數圖中呈直線。看看圖 8 中每一個躍升後的階梯的點(藍、紫、橙色線),其實都是漸近於指數式上升的紅線,並非直線。細心比較橙色線的數據及其直線擬合外推(圖 8 橙色線),肉眼已可見到不吻合之處。

將所有種類的個案混在一起,再將總累積個案在半對數圖上以直線擬合外推,等於將直線硬套在曲線資料上,並以直線估計曲線的未來變化,故造成了圖 8 中紅藍線外推相交的「奇景」。

提供一個例子,示範半對數圖上以直線擬合外推混合數據的限制。

先建立兩組指數式變化數據,各以數值 2 開始,一組以 6 日倍增,另一組以 7 日倍增,計出 20 天的數據。現在建立一組新數據,新數據等於把前兩組數據逐日相加,放在半對數圖中,之後取圖中頭十天新數據作直線擬合外推。

因為是在計算外推的範圍內,外推與真值頭十天的平均絕對誤差為 0.12% 左右。但到了 13 天,外推的誤差已可上升超過 7 倍。到 16 天,超過 15 倍。如果原本的數據不是「完美」的指數式變化,這種外推的誤差會更加驚人。

對於這裏的模擬數據,分析時沒有深究成分個案的最佳擬合模型,直接選擇以某一種模型作局部擬合,沒有數值方法檢驗擬合質素,之後更以外推作預測,我們不會詫異所得結果與模擬設定迴異。在現實世界的累積個案數字中,各種成分個案的變化模式及誤差特性各有不同,情況會比模擬更複雜,以閱讀模擬數據的方向閱讀現實世界數字,結論當中的局限及邏輯的嚴謹程度可想而知。

就算各個參數及模型有多「完美」,以非線性函數擬合數據作外推的顧慮從來都是外推會於多近「爆煲」。故此這樣包含了外推的判斷,必須輔以對各個參數及其誤差的考慮,列明外推的限制及條件,才可為推論結果提供科學基礎。

2.5 混合輸入個案及本地個案作分析

有一點很重要的邏輯要說明:階級式的躍升,可以非因本地疫情造成,例如是因為輸入個案大突增的躍升。當然,個案的躍升都可以對本地疫情有影響,但影響疫情是躍升出現之後的事,躍升本身與之前一日的個案數字,不一定存在與本地瘟疫傳播有關的因果關係。例如有疫情的外國停止來往本地的飛機航班,停飛日前後都會令從該國的輸入個案按日突變,這突變就不是本地疫情所造成,更可受大量不同的原因而突然變化。

將這類突變與之前的個案數字混合考慮,無助於評估突變本身及原本疫情的趨勢。考慮混合數據的增幅,無疑可以去約略估計本地醫療系統面對的壓力,但在沒有深究令數字躍升的因素,針對該因素的趨勢作出單獨評估,將不同數據混合分析,將未證有必然關係的數據連合,就不容易估計躍升的趨勢會如否持續。而從中得出極端的躍升情境(圖 8 黑線),亦會令之後出現的趨勢「看似」是「進一步下調」的機會大增,如果不去探究躍升的原因,會令人在判斷之後的疫情時失去依據。

2.6 模擬:設定輸入個案「不能」被完全隔離

在 2.3 節看過的外推線相交情況,這裏再進一步探討該特徵在模擬數據中的性質。

如題,在 2.2 節的模擬中,更改設定為:「輸入個案『不』被完全隔離」,即是每次輸入的個案中,會有一定比例的個案流入社區,並即開始傳播,倍增日數與本地個案傳播的一樣(7 日)。除此以外,其餘設定與 2.2 節的模擬中一樣。結果顯示在圖 9:

綠色線是輸入個案全部被隔離(與圖 6-8 為同一樣組數據);
藍色線是 70% 輸入個案被隔離,其餘 30% 流入社區傳播;
橙色線是 50% 輸入個案被隔離,其餘 50% 流入社區傳播;
紅色線是所有輸入個案都流入社區傳播。

圖 9

圖 9

模擬結果中,當然又再在輸入個案出現的日子見到躍升。但如前文所言,躍升與前一日數字之間的升幅,並不反映輸入個案在本地傳播的影響。

除了「輸入個案 0% 隔離」的情境外,2.4 節所提到的「爆煲」情形俱適用於圖 9 中的其他情境,即是:躍升後的斜度不一定符合數據的設定;以直線擬合曲線的誤差;及同一顏色線上的不同線段直線擬合外推線相交。這又再帶出了「不能單從累積個案半對數圖上以斜度判斷或示範疫情趨勢」,重申了在分析中加入其他具指標性資料的必要。

在模擬中疫情最壞的情境,是設定了每次的輸入個案都會即時全數流入社區傳播瘟疫(圖 9 紅線),話雖如此,個案輸入日子之後線段的斜率,都會從如圖 8 中的從黑線斜率「下調」,依從 [1] 的推論邏輯,疫情是在「下調」,但細看之下,這是將個案輸入的躍升跟本地傳播的速度作比較,兩者無必然因果關係,只因為後者比較小,在半對數圖中斜率較小,便得出疫情是在「下調」的結論。

當然,單考慮輸入個案的話,由躍升當日的「有輸入個案」,到之後一日的「沒有輸入個案」,也可說是這個個別因素在那一剎那「下調」。但是,如果同時考慮躍升前的「沒有輸入個案」,到躍升當日的「有輸入個案」的這個「上調」,是否就抵消了之後的「下調」?

當然,這不會有固定的科學準則。取態樂觀的會說疫情已經「下調」,到達某累積人數的日子好過推後了。取態悲觀的會說「下調」只是抵消、甚至是不能抵消之前的「上調」,達某累積人數的日子其實沒有推後,反而因出現過「上調」而推前了。這點不是科學化的分析,每一個人都會分析出不同的結論。但本文希望每一個人能在閱讀這些圖表時,如上面 2.5 節的討論,會記得如果單單只有累積個案的半對數圖,就不能直觀出是某一個成分個案的變化,就未能分析出是哪一個持分者的哪一個防疫措施、甚至是哪一個國家的政策造成這個下調,當然也不會判斷得出本地的防疫措施可否保護、或配合國際合作去保護本地的醫護和弱勢群體。

3. 結論

本文探討了判定半對數圖上特徵的限制,並以不同的模擬及引用現實外國數字,示範了就算定質的在累積個案在半對數圖上出現斜度變小,每日確診個案仍有可以是按日上升,疫情仍可能尚未受控,故未可單單根據斜度變小,就得出疫情漸趨緩和或「下調」的結論。

文中亦指出了在利用指數式模型去擬合資料,推測改變趨勢時,是會出現不可忽視的誤差,故宜先檢驗擬合質素估計誤差,以及評估是否適宜在沒有作出誤差估計情況下,單以外推擬合結果作預測。故此,在判斷疫情上,宜輔以其他資料,例如最簡單的每日新增個案等,以及說明推論中適用的限制,以確立推論過程及結論。

除此以外,文中亦模擬了不同的輪入個案情境,以顯示對累積個案半對數圖的影響及特徵,說明累積個案裏面混合了不同的成分的變化,各成分並不一定有因果關係,更可以互相蒙蔽甚至扭曲各自對累積個案數字的影響。所以檢視每個主要成分個案的變化,比只看累積個案更能判斷數字變化的原因及估計趨勢。

最後,無論疫情如何,本文絕對同意 [1] 文的尾段所講,一定要努力,保護醫護人員,保護各階層的香港人。而保護的方法,包括使用經得考驗的科學方法作判斷,避免製造恐慌時,同時亦要避免過早對疫情作出過份樂觀的評估。

【全文完】

 

附註:
[1] 林超英〈一幅圖看半個月疫情 — 努力有回報,守住!〉
[2] 即是對數 y-軸為累積確診數字,線性 x-軸為日子。
[3] 衛生防護中心網頁
[4] 本文中累積個案半對數圖中的斜率,為累積個案的對數的變化,除以相應的日數變化。
[5] 資料來源

作者自我簡介:別無工夫科學人

發表意見