近年來,隨著人工智慧(AI)與大數據的蓬勃發展,統計學中的「貝氏定理(Bayes' Theorem)」及其相關應用更顯重要。在做機器學習相關的效能分析時,會不會被一連串的英文縮寫搞得頭暈:True Positive (TP真陽性)、False Positive (FP偽陽性)、Sensitivity、Precision, 但這些名詞是判讀數據必備的濾鏡。
今天,我們就從大家都熟悉的快篩經驗出發,文末並利用布朗大學(Brown University)知名的視覺化教學網站 Seeing Theory 的邏輯,來探討一個直覺上最容易誤判的統計陷阱:「基率謬誤(Base Rate Fallacy)」。
1. 一個挑戰直覺的思考實驗
讓我們進行一個思想實驗。假設現在有一種相對罕見的疾病(Disease),在一般人群中的盛行率(Prevalence / Base Rate)是 1%。
醫院引進了一款極為先進的檢測儀器,原廠數據宣稱其準確率高達 99%。這意味著:
如果受測者真的患有疾病 ($Disease$),儀器有 99% 的機率顯示陽性。
如果受測者是健康的 ($Healthy$),儀器有 99% 的機率顯示陰性。
現在,你收到了一份健檢報告,上面顯示紅字的「陽性(Positive)」。
請問:你真正患有該疾病(Disease)的機率是多少?
(A) 99%
(B) 80%
(C) 50%
絕大多數人的直覺反應是:「既然準確率是 99%,那我確診的機率肯定也是 99% 吧?」然而,貝氏定理告訴我們的答案卻令人驚訝:大約只有 50%。 (文末再帶大家一起來計算)
這並非儀器故障,而是我們的大腦只著眼在「先驗機率(Prior Probability)」提供的資訊,然而這裡卻隱藏著條件機率,也就是說,在一堆同樣驗到陽性的人當中,真的有病的人比例是多少。
2. 數據視覺化:1,000 人的「點陣圖」真相
人類的大腦在處理抽象機率(如 P(Disease) = 0.01)時容易失真,但對於「具體圖像」的感知卻很敏銳。為了釐清悖論,我們將機率轉換為 1,000 人的群體 來進行推演。
在這張圖中,我們將人群分為兩類:
- 真正的患者 (Disease):根據 1% 的盛行率,1,000 人中只有 10 人 是真正的患者。因為儀器靈敏度高,這 10 人幾乎都被抓出來了。這就是 True Positive (真陽性)。
- 健康的未感染者 (Healthy):其餘的 990 人 其實是健康的。但請注意!儀器有 1% 的誤判率。當 990 位健康者接受檢測,1% 的誤差會導致大約 10 人 被錯誤標記為陽性。這就是 False Positive (偽陽性)。
3. 重新審視你的「陽性報告」
現在,請想像你拿著那張陽性報告。你並不屬於健康的陰性群體,你只可能屬於被標記為陽性的那一群人。
讓我們看看這群「陽性俱樂部」的成員結構:
- 來自真正患者 (Disease):約 10 人。
- 來自被誤判的健康者 (Healthy):約 10 人。
- 陽性總人數:20 人。
在一堆同樣驗到陽性的人當中,你只是這 20 位陽性受測者 當中的一員。由於「真病人」與「被誤判者」的人數竟然旗鼓相當(10 對 10),因此你真正患病的機率
P(Disease | +) = 10/20=50%
這解釋了為什麼在高靈敏度的檢測下,如果疾病很罕見(低 Prior),陽性結果的可信度會被大量的健康偽陽性給「稀釋」掉。
4. 進階知識
為了讓大家能更精確地閱讀相關文獻,這裡整理了上述提到的關鍵術語,這也是 Seeing Theory 網站上會看到的變數名稱:
- Prior (先驗機率):即 $P(Disease)$。指在還沒檢測前,疾病在人群中發生的自然機率。
- Sensitivity (靈敏度):即 P(+ | Disease)。有病的人,被正確檢測出陽性的機率。
- Specificity (特異度):即 P(- | Healthy)。健康的人,被正確檢測出陰性的機率。
- Posterior (後驗機率):即 P(Disease | +)。這才是我們最關心的——「當機器亮紅燈時,我是真的有病的機率是多少?」。
現在我們可以利用https://seeing-theory.brown.edu/bayesian-inference/index.html
這個網站來動手把P(Healthy)=0.99, P(-|H)=0.99, P(+|D)=0.99 及 讓大家視覺上觀察模擬結果。
最後我們來利用貝氏定理來算出Posterior (後驗機率):即 P(Disease | +)
- 真正驗出陽性的患者機率 =P(+|Disease)P(Disease)=0.99*0.01
- 來自被誤判的健康者機率=P(+|Healthy)P(Healthy)=0.01*0.99
- P(Disease | +) =0.99*0.01/(0.99*0.01+0.01*0.99)=50%