LEVEL 3 · 診斷與篩檢 · CH 12 · high-yield ★★★

PPV、NPV — 盛行率如何毀掉陽性預測值

這章讀完,你會:看到「陽性的人裡真的有病」就選 PPV,而不是敏感度。 你也會知道為什麼同一個 Sn/Sp 很漂亮的檢驗,放到低盛行率族群時,陽性結果仍可能大多是假的。

先想 30 秒再往下讀

一個檢驗敏感度 99%、特異度 99%。如果疾病盛行率只有 0.1%,驗陽性的人多半真的有病嗎?先不要算,先猜:陽性可信度會接近 99%,還是會被盛行率拉垮?

概念一

PPV:陽性的人裡,真的有病幾個

陽性預測值(positive predictive value, PPV)問的是:檢驗陽性的人裡,有多少比例真的有病。它從檢驗結果出發,所以分母是陽性那一橫列。

PPV
PPV = TP / (TP + FP)

考場上先用一句人話翻譯:PPV 問「這個陽性結果能不能信?」所以它不是檢驗對有病者的抓人能力,而是陽性結果交到你手上後,這個人真的有病的機率。

概念二

NPV:陰性的人裡,真的沒病幾個

陰性預測值(negative predictive value, NPV)問的是:檢驗陰性的人裡,有多少比例真的沒病。它同樣從檢驗結果出發,所以分母是陰性那一橫列。

NPV
NPV = TN / (TN + FN)

臨床對話會長這樣:病人拿著陰性報告問「我真的沒事嗎?」這就是 NPV,不是特異度。特異度問沒病者會不會驗陰;NPV 問陰性者是不是真的沒病。

流病史 · 貝氏定理進診斷學

貝氏定理(Bayes theorem)把「檢驗前你有多可能生病」和「檢驗本身多會分辨」接在一起。放到診斷題,就是 Sn/Sp 再好,也必須乘上盛行率這個事前機率;跟你考試有關的是:PPV/NPV 是事後機率,不是檢驗固有特性

概念三

盛行率低,PPV 會先被假陽性淹沒

PPV 會隨盛行率(prevalence)改變。疾病越少,真正有病的人本來就少;即使偽陽性率很低,沒病人口太大時,FP 仍可能堆出一大群。

BAYES FORMULA
PPV = (Sn × prev) / (Sn × prev + (1 - Sp) × (1 - prev))

盛行率下降時,分子 Sn × prev 變小;但分母裡的假陽性項 (1 - Sp) × (1 - prev) 會因沒病人口巨大而變得很有存在感。

把低盛行率想成在一座大型體育場找少數病人。檢驗再準,只要全場大多數人都沒病,少量誤報也會變成一排假陽性;陽性名單裡真正有病的比例就被稀釋。

別再搞混

Sn/Sp vs PPV/NPV — 本站最重要的一張表

看這個Sn/SpPPV/NPV
題目已知什麼已知真的有病或真的沒病已知檢驗陽性或陰性
問的是誰問檢驗:它能不能抓對疾病狀態問這個人:結果出來後到底有沒有病
公式方向直行 column:TP/(TP+FN)、TN/(TN+FP)橫列 row:TP/(TP+FP)、TN/(TN+FN)
會不會隨盛行率變不會,檢驗固有特性會,事後機率會被族群盛行率推動
題幹訊號「有病者中陽性」「沒病者中陰性」「陽性者中有病」「陰性者中沒病」
最大陷阱把 Sn 誤當 PPV以為高 Sn/Sp 就保證高 PPV

破題關鍵字

看到「檢查結果為陽性的病人中,確實有病的機率」→ 想 PPV;看到「篩檢陽性後真正得病的比例」→ 想 PPV,不是敏感度;看到「檢查結果為陰性的人真的沒病」→ 想 NPV;看到「Sn/Sp 固定但盛行率不同」→ 想 PPV/NPV 會變;看到「問陽性者沒有病的機率」→ 想 1 - PPV

動手實驗

千人點陣看 PPV 被盛行率打垮

調整盛行率,觀察同一組 Sn/Sp 下,陽性格子裡真正有病者的比例如何改變。

你剛剛看到了什麼

當盛行率下降,真的有病者變少,假陽性卻來自龐大的沒病族群;所以 PPV 會下跌。Sn/Sp 是檢驗本身的條件比例,PPV 是把檢驗放進某個族群後的結果。

案例檔案 · 低盛行族群的假陽性海嘯

把罕見疾病拿去做全民篩檢時,真正病人非常少;即使每一百個沒病者只誤報一個,因為沒病者太多,陽性名單仍可能充滿假陽性。全民 HIV 篩檢或罕病篩檢的政策討論,都繞不開這個問題。一句教訓:低盛行率不是小細節,它會直接把 PPV 拉低。

大家都搞錯

「99% 準」不等於「陽性後 99% 有病」。考試會給很高的 Sn/Sp,再把疾病放到低盛行率族群,問你陽性者沒有病的機率;正確做法是算 PPV 或 1 - PPV,不是背一句檢驗很準就結束。

考古題實戰

國考考過長這樣

難度 1/3 · 定義陷阱 · 115-1 醫二 Q43

「篩檢陽性者真正有病的比例稱為敏感度」是最不適當的敘述。

逐句解碼:「陽性者真正有病」就是 TP/(TP+FP),答案是 PPV。把它叫敏感度,是把橫列和直行互換。

難度 2/3 · 貝氏計算 · 102-1 醫一 Q89

愛滋篩檢 Sn=82%、Sp=93%、盛行率 3%,篩檢陽性者「沒有」愛滋的機率?答案約 0.73。

逐句解碼:題目問陽性者沒有病,這是 1 - PPV。PPV = (0.82×0.03) / [(0.82×0.03)+(0.07×0.97)] ≈ 0.27,所以沒有病的機率 ≈ 0.73。

難度 3/3 · 盛行率判讀 · 098-1 醫一 Q84

Sn=Sp=90%,對 60 歲男女 PPV 不同,主因為冠心病盛行率不同。

逐句解碼:題目故意固定 Sn/Sp,排除檢驗本身差異;PPV 仍不同,只能從族群盛行率解釋。這是本章最核心的「盛行率毀掉 PPV」概念。

你來當審稿人

某報告寫道:「此癌症篩檢 Sn=98%、Sp=98%,因此在低風險族群中,篩檢陽性者約 98% 真的罹癌,可安心作為全民篩檢。」

我挑好毛病了,看解答

坑一:Sn/Sp 不能直接當 PPV。坑二:低風險族群盛行率低,PPV 可能被假陽性大幅拉低。正確說法應先帶入盛行率,計算 PPV,再討論陽性後追加確認與篩檢政策。

還記得嗎 · CH 11

CH11 的 Sn/Sp 是直行、問檢驗;CH12 的 PPV/NPV 是橫列、問結果出來後這個人。10 秒小題:TP/(TP+FP) 是 Sn 還是 PPV?

看答案

PPV。分母 TP+FP 是所有檢驗陽性者,不是所有真的有病者。

這章只記一句話:PPV/NPV 看橫列、問這個人;盛行率越低,PPV 越容易被假陽性毀掉。
章末測驗

檢查你的理解