記得兩年前大選的時候,文攻武衛,打得正歡。突然一聲晴天霹靂,川普總統被測試出新冠陽性。這一下兩黨震驚,有沮喪的,有祝福的,有高興的,也有嘲弄的。結果沒過兩天,劇情反轉,川總出院了。這一下更是捅了馬蜂窩,各種質疑紛至遝來。很自然的,就有人說,總統在裝病。陰謀論總是太複雜,姑且不談,讓我這個理工男,從概率的角度來聊聊新冠測試出現假陽性的可能性。
要判斷一個人的測試是否為假陽性,首先要講一點新冠測試的準確性問題。一談到準確性,當然就要搞清楚到底什麽是假陰性和假陽性。這個比較簡單,如果有100個病毒攜帶者,100個非攜帶者。如果通過某種試劑的測試,這100個攜帶者中隻有90個顯陽性,那假陰性就是10%;而這100個非攜帶者中有20個顯陽性,那假陽性就是20%。那麽問題來了,為什麽不能做個理想的試劑,讓假陰性和假陽性都是零呢?
答案很簡單,這是因為現有的技術條件有局限。一般的試劑盒或者其它類似的生物測試,都是依據某種算法,來得到一個測試指標。這種指標一般是某種測量數值,比如說是個範圍從0到100的數值。我們可以假設,病毒攜帶者的數值範圍是60到100,而非攜帶者的範圍是0到90。要判斷是陽性或是陰性,一般需要事先確定一個標準值(cutoff value),當某個測試對象的測量數值小於這個標準值(比如說80),就定義為測試陰性;而如果大於等於80,就定義為測試陽性。這樣一來,測試的準確性就和兩個因素息息相關,一個是測試範圍,一個是標準值。如果因為技術的限製,測試範圍沒辦法進一步改進,那麽提高精度的核心就在於這個標準值的確定。
這裏有一個問題,到底是應該更多的控製假陽性,還是更多的控製假陰性。為什麽會有這樣的考慮呢?原因是,如果我們人為的把這個標準值定為0,那麽所有的測試都將是陽性,假陰性就是零;而如果把標準值定為100,那麽所有的測試都是陰性,假陽性就是零。顯而易見,這兩個極端的例子都沒有任何實用的價值。所以一個好的試劑,它所確定的標準值總是假陽性率和假陰性率的協調和均衡,不能走極端。在新冠測試的時候,假陽性率和假陰性率這兩個指標都很重要,如果是假陰性,會造成病情的延誤;如果是假陽性,嗯,這要是擱在年初的上海,就有可能會造成整個小區被封,甚至小區的所有居民都被送到方艙醫院。不過,假陽性和假陰性的均衡也不是絕對的數學上的一半一半,總還是有所側重的。一般來說,對極具傳染性的重症,為防止漏診,假陰性率會盡量控製得更低一點。當然總的來說,對一種可靠的試劑,假陽性率和假陰性率最好都小於5%。
另外,測試的操作也是一個大問題。測試的精度和準度在不同環境和衡量手段下會有較大的變化。這個道理很簡單,我們每次測心跳還有不同的數值,更何況這複雜得多的生物測試。試劑的標準一般是事先就定死了的,如果出現了因測試操作而造成的係統誤差和較大測量誤差,那麽假陽性和假陰性的提高也就在所難免。
還有一個問題,那就是有一個概念上的重要區別,試劑測試的假陽性率和假陰性率,和實際測試中的假陽性和假陰性,是完全不同的。比如說,現在有一款核酸試劑的假陽性率和假陰性率都是5%,準確性相當不錯了。假設我們用這款核酸試劑測試一百萬人,其中五萬人是病毒攜帶者。那麽問題來了,根據所列的這些條件,如果有一個人被測出了陽性,他是病毒攜帶者的可能性是多大?
有朋友可能會說,這不是很簡單嗎,不就是95%嘛。其實不然!這個是需要用到條件概率來計算的,具體的公式我不寫了,並不難,有高中數學的基礎就足夠了。答案是:
這個人的假陽性概率是50%!
當然現在大部分的核酸測試的準確性比我剛才舉的例子還要高一點,但是也的確存在一些快速試劑,它們的測試標準比這個還低。回到我們開始講到的問題,我覺得排除人為因素,如果隻憑概率計算,川普總統當時是假陽性的可能並不低。
我們還可以繼續引申,討論一下全體檢測的問題。現在中國政府采取的是清零政策,比如說,最近的成都,就是全城核算檢測。但是,有沒有人想過這樣一個問題,群體檢測到底有沒有意義?
群體檢測的意義,是要建立在試劑的高精確性和群體的高發病率上的。舉個簡單的例子,假設現有的核酸檢測試劑的假陽性率和假陰性率都是0.1%,這應該算是非常精確的試劑了吧?而另一方麵,如果全社會的實際病毒攜帶者的比率隻有0.01%,那麽,在成都這樣規模的城市進行全城全員核酸檢測(假設一天一千萬人員的檢測規模),那麽,每天我們都會檢測出一萬左右的陽性;而實際的病毒攜帶者呢,其實隻有一千左右。也就是說,絕大多數的檢測陽性者都是假陽性。
我覺得共產黨並不是不懂這個道理,而是它希望所有的老百姓都不懂這個道理!
最後總結一下,如果同學們在家裏做快速試劑的測試,查出來是陽性,先不用太驚慌,可以查一下這個試劑的假陽性率和假陰性率是多少,然後再估算一下當前社會上的病毒攜帶者的比例,然後就可以算一下自己是假陽性的概率了。隻不過,這種方法,並不能降低您感染新冠的可能。要想做到後麵這一點,我覺得第一是戴口罩,第二是勤洗手,第三是打疫苗,簡單易行,愛人愛己,童叟無欺。
祝各位健康如意!
(本文圖片來自網絡)
第一是戴口罩,第二是打疫苗 -- agree!
P(D|+) = P(+|D)*P(D)/( P(+|D)*P(D) + P(+|d)*P(d) )
您說的對,這裏麵用到了Bayes' theorem。當P(D)值較小時,這個條件概率的值會增加,也就是說測試出假陽性的可能性會比較大。
P(D|+) = P(+|D)*P(D)/( P(+|D)*P(D) + P(+|d)*P(d) )
假陰性有,假陽性不太可能吧:-)
-- 十足的科盲