你看到一套防毒軟件,這個軟件聲稱會對你下載的所有檔案都掃描一次,病毒偵測準確度達99%。
這個「99%」令你眼前一亮,心想︰「這個軟件看來相當可靠,準確度99%呢﹗﹗」於是你便把它買下,並成功把它安裝了。
安裝了這個軟件一段日子,有一天,這個軟件突然響起警報,這個時候最正常的問題便是「我下載的檔案真的帶有病毒嗎?」又或者說,這個軟件誤鳴的機率有多高?
你認為誤鳴率就是 1- 99% = 1% 嗎?
在探討這個防毒軟件問題前,先回到貝氏定理(上) - Monty Hall 的三扇門中的女生看書例子。還記得那個例子嗎?我們可以用這個表描述該例子的情況:
| 男 | 女 | 總和 | |
| 不喜歡看書 | 0.2 | 0.1 | 0.3 |
| 喜歡看書 | 0.3 | 0.4 | 0.7 |
| 總和 | 0.5 | 0.5 |
這個表的意思是 (事件A是喜歡看書,not A 是不喜歡看書,B是指女生,not B 是指男生):
有20% 的人既是男生,又不喜歡看書。 (P(not B|not A)*P(not A))
有10% 的人既是女生,又不喜歡看書。(P(B|not A)*P(not A))
有30% 的人既是男生,又喜歡看書。(P(not B|A)*P(A))
有40% 的人既是女生,又喜歡看書。(P(B|A)*P(A))
女生佔50% (0.4+0.1)
男生佔50% (0.3+0.2)
不喜歡看書的人佔 30% (0.2+0.1)
喜歡看書的人佔 70% (0.3+0.4)
所如果現在我隨機選一個人,剛巧選到一個女生,要估計這個女生喜歡看書的機率,用貝氏定理
P(A|B)=P(B|A)*P(A)/P(B)
配合 P(B)=(P(B|A)*P(A)+P(B|not A)*P(not A))
只要把數字代進公式便得到 0.4/0.1+0.4 = 0.8,和上篇得到的答案一樣是80% 。(當然是一樣了,因為是同一個定理,只是從不同角度去看而己)
留意即使你不懂那些煩人的機率公式,這兒也有一個很直觀的理解方法,便是
「女生有兩種,一種是不喜歡看書,佔0.1 ,第二種是喜歡看書,佔0.4,喜歡看書的便是全部女生中的4/5 了,所以當我們剛巧選到一個女生,我們便知道有80% 的機會她是喜歡看書的。」
很多時候,用一個表把機率列出來,是理解機率問題的最佳辦法。
回到一開始的問題。首先,故事裏防毒軟件廣告中的99% 是指,當有病毒入侵時,有99% 會響起警報,而不是響起警報時,有99%機會是真的有病毒,這兩個概念是完全不同的。
如果下載的檔案有0.005 的機會是帶有病毒(這是為了簡化問題,就把它看們是平均每200個下載的檔案中便有一個帶有病毒吧)。上述的情況便可以用以下的表來描述:
| 警報響起 | 警報沒響起 | 總和 | |
| 有病毒 | 0.99*(0.005) | 0.01*(0.005) | 0.005 |
| 沒有病毒 | 0.01*(0.995) | 0.99*(0.995) | 0.995 |
有病毒的機率是 (0.005),當中99%警報會響起,所以
「有病毒同時警報響起」的機率便是 0.99*(0.005)=0.00495
同理
「有病毒同時警報沒響起」的機率便是 0.01*(0.005)=0.00005
「沒有病毒同時警報響起」的機率便是 0.01*(0.995)=0.00995
「沒有病毒同時警報沒響起」的機率便是 0.99*(0.995)=0.98505
結果就是
| 警報響起 | 警報沒響起 | 總和 | |
| 有病毒 | 0.00495 | 0.00005 | 0.005 |
| 沒有病毒 | 0.00995 | 0.98505 | 0.995 |
運用貝氏定理公式,我便知道
P(有病毒|警報響起)= 0.00495/(0.00495+0.00995)=33%
(又或者用文字說,警報響起有兩種情況,一是有病毒,佔0.00495,二是沒有病毒,佔0.00995,有病毒的情況佔總和的33%)
這便是說,即使病毒測試的準確度是99%,當警報響起時,仍然有67%機會是誤鳴。
這個例子告訴我們什麼呢?以下三個結論,是同等重要的。
- 軟件在病毒出現時有很大機會響起警報,並不代表軟件響起警報時很大機會是有病毒出現。
- 當有病毒時,軟件有大一點的機會響起警報的話,軟件響起警報時,真的是有病毒的機會也會提升。也就是說99%的確不代表「很準確」,但它仍是比80% 的準確度好一些。
- 不要單看99%這個數字,便說某個測試是不是「很準確」,我們要看這個測試是要測什麼才下定論。
為什麼我要特別提出這三個結論是同樣重要呢?因為通常人們在分析這種例子時,常常把重點放在第一點來解說。可能因為這是一個較令人驚奇的結論吧,很容易會使人想到「99% 不代表什麼!!原來這個這個機率是騙人的!!我們不要理會它!!」。但不要忘記這是因為故事中病毒出現率是0.005,所以才會造成這樣的效果。如果病毒出現率是5% 或10%,你會發現用這個99%準確的軟件是確實是很準確的。就像以下的例子:
如果病毒出現率是0.1 而不是0.005
| 警報響起 | 警報沒響起 | 總和 | |
| 有病毒 | 0.099 | 0.001 | 0.1 |
| 沒有病毒 | 0.009 | 0.891 | 0.9 |
這樣P(有病毒|警報響起)= 0.099/(0.099+0.009)=92%
在這個情況下,警報響起時,只有8% 機會是誤鳴,和剛才的67%差很遠。所以這個99%的準確度雖然不代表誤嗚率一定很低,但我們不可以說這個99%是完全沒有意義的。
所以較好的說法是,當我們要測試的事情出現率很低 (好像0.005),這樣一個99% 準確度的測試仍然會造成很高的誤鳴率,但如果要測試的事情出現率較高(好像0.1),這個一個99% 準確度的測試已經很好了。測試的準確度是相對要測試的事情而言的,沒有一個絕對的「準確」和「不準確」的分界。在不知道要測試的事情出現機率下,我們是不能說某個測試的「準確度」是不是很高的。
而在我們選購這些防護軟件時,通常人們都會留意防護軟件的準確度,但其實病毒出現的機率也很重要。例如A 軟件比B 軟件可以測出多20% 種病毒,但其實那20%種病毒都是那些極罕見的病毒,出現率只有0.0000001%,這樣A軟件也不見得比B 軟件好很多。這個情況很常見,因為一般防毒軟件都是先做到可以處理常見的病毒,才處理那些很少出現的病毒的。
換個角度看,我們在判斷防毒軟件是否誤鳴時,不能單靠軟件的準確度,也要配合「病毒出現的機率」這項資訊。簡單來說,如果防毒軟件警報是在平常作業時響起,你可能還會以為它是誤鳴。但如果它在你正在瀏覽某些危險網站時響起,即使我們是在仍用同一個防毒軟件,我們對這個軟件是誤鳴的機率估計也會降低很多。
另外,在選擇防毒軟件時,很多時候我們會傾向選擇多疑一點的。也就是說寧可它誤嗚多一點,但不要在真的病毒時測不出來。這是因為誤嗚對我們造成的不便,遠比電腦中毒來得小。在上面的計算中,我是沒有理會這個分別的(正如在上篇中我也沒有把「主動責任」計算在Monty Hall problem中一樣)。但這涉及到所謂Type 1 error 和Type2 error,另文再說好了。
這兩篇有關貝氏定理的文章我羅列了很多不同的角度去看這個定理,我也不厭其煩地多說一遍,在學習定理時,不要只固守一個方式。有些人愛用數式証明,因為它們嚴謹清晰;有些人愛用直觀解說,因為它能把定理和日常的思考方法連在一起。我則有點偏愛模擬的方法,把統計問題中的情況用電腦甚至是用紙筆模擬運作數百次,讓我可以把結果看清楚。每個人都可以選擇自己喜歡的方式。
但當用自己喜歡的方式學懂了一個概念之後,便要嘗試看看自己是否明白其他角度的想法。畢竟如果我們真的明白一個定理的話,總不會因為它轉換了皮膚不認得它的。最常見的說法便是因為不喜歡用數式便每事都只用文字說過便算,又或是覺得計出了答案之後,便不用管內裏的原理。對我來說,嚴謹的計算和直觀的解說也是同樣重要的。硬要用一個不合自己的方法和定理糾纏,和用懂了一個方法便認為不用理會其他,同樣是對學習有害的。
補充1︰
運用和這篇中的列表方式,我們可以把上篇中的monty hall problem用這個表描述一次,假設你選了一號門
| 主持人打開2號門 | 主持人打開3號門 | 總和 | |
| 1 號門中有獎金 | 1/6 | 1/6 | 1/3 |
| 2 號門中有獎金 | 0 | 1/3 | 1/3 |
| 3 號門中有獎金 | 1/3 | 0 | 1/3 |
| 總和 | 1/2 | 1/2 |
解說:
「1 號門中有獎金」同時「主持人打開2號門」的機率是 (1/2)(1/3)=(1/6)
「1 號門中有獎金」同時「主持人打開3號門」的機率是 (1/2)(1/3)=(1/6)
「2 號門中有獎金」同時「主持人打開2號門」的機率是 0,因為當2號門有獎金時,主持人便不會選2 號門了。如此類推。
所以,你選了1號門,在主持人打開2 號門之後,1號門有獎金的機率是 (1/6)/((1/6)+1/3))=1/3,而3號門有獎金的機率是 (1/3)/((1/6)+1/3))=2/3,同樣得到轉換結果可以使得獎機率加倍的結果。
和女生看書的例子同一原理,我們也可以把貝氏定理的計算解釋為︰
「主持人打開2號門,有以下兩種可能,第一是「1 號門中有獎金」,機率1/6 ,第二是「3 號門中有獎金」,機率1/3,所以「1 號門中有獎金」便在這兩個可能性中佔了1/3 了」
補充2:
這篇文章中我沒有詳細解釋貝氏定理如何把先驗機率(prior) 轉換成後驗機率(posterior),畢竟一篇文章不可能什麼都寫完,相信在將來的文章中總有機會回到這個主題上的。現在可以說的是,貝氏定理不是憑空把一個機率算出來的,而是一個討論如何把機率估計上調或下調的定理。意思是我們本來對門後有獎金的機率有一個想法,好像1/2 (這便是先驗機率),之後我們用貝氏定理,利用「主持人開門」的資訊把估計上調到2/3,(這便是後驗機率)。又或者是本來我們知道70%的人愛看書(先驗機率),知道那人是女生之後,利用這個資訊我們把估計上調到80%(後驗機率)。而因為貝氏定理只是在說如何把先驗機率變成後驗機率,所以我一直都把先驗機率當成一項已知的資訊,沒有討論它的由來。
另外,由於先驗機率是主觀機率(subjective probability),那麼計出來的後驗機率也是一個主觀機率。統計學中客觀機率(objective probability)是指我們經過反覆試驗得出的機率。當我們在遊戲之中,面對兩個門的選擇,這個情景如果不會重複出現,不能重複試驗,不論你是用貝氏定理把機率計出來,還是憑空亂猜一個機率,那個機率都是主觀機率,使用定理不會使你的機率變「客觀」了啊。(笑)
過去的今天:
- 微軟放棄併購 Yahoo! - 2008
- 免費內容與日行一善員工的商業模式 - 2008
- Pandora即日起停止對美國境外提供服務 - 2007
熱門程度: 34%
相關推薦
![]() |
![]() |












Good article, learn a lot from posts u wrote….thanks a lot
老實說, 我發現 Mr. Tomorrow 的文章一篇比一篇還精采,還犀利,真是棒啊!
很喜歡你對貝氏定理精彩的解說。
然而對上文我有一點不太理解,還希望你的指教。
檔案有病毒的機率的 0.005
有病毒時,警報響起的機率是 0.99
如此,「有病毒同時警報響起」的機率可以計算是沒問題的。
但只知道「有病毒時,警報響起的機率是 0.99」
如何得知「沒有病毒時,警報響起的機率是 0.01」??
是 1 - 0.99 = 0.01 得到的嗎??
這點我有點困惑。
因此不太理解文中 第二個表格(警報有無響起/檔案有無病毒) 的計算過程。
謝謝大家。
chan: 你感到困惑是很正常的,因為………是我沒有寫清楚。
文中的「99% 準確度」是指「99% 給出正確的提示」。所以已包含了「在有病毒時,99% 機會會響起警報」和「在沒有病毒時,99% 機會不會響起警報」這兩項資訊了,因為在沒有病毒時,「不響起驚報」便是「正確的提示」。
謝謝你指出這一點,這是應該說清楚的。
收集一下大家的意見: 我有構思過的題目有 t-test,Wilcoxon test, 回歸分析,anova,Granger causality,移動平均線和bollinger(有買股票的人該有聽過吧),又或者是介紹一些好像熱門文章中 「M型你個大頭」那篇文章中指出的一些統計學欺騙手段,overgeneralization之類。這麼多topic是不可能通通都寫的,如果讀者們在這堆題材中有哪個特別喜歡的可以告訴我啊。
誤鳴=flase alert
我在猜 下一次 Mr. Tomorrow會不會寫 矩陣
我一直認為:
把困難的東西講到沒有人聽得懂,是任何人都辦得到的事情;能用任何外行人都能夠清楚瞭解的文字來解釋困難的概念,才算得上是真功夫。Mr. Tomorrow 的文章真是令人激賞,佩服佩服。:D
我比較好奇的是這一段:
==
運用貝氏定理公式,我便知道
P(有病毒|警報響起)= 0.00495/(0.00495+0.00995)=33%
(又或者用文字說,警報響起有兩種情況,一是有病毒,佔0.00495,二是沒有病毒,佔0.00995,有病毒的情況佔總和的33%)
這便是說,即使病毒測試的準確度是99%,當警報響起時,仍然有77% 機會是誤鳴。
==
33% + 77% != 100% 啊 … =p
idreamer: 那是typo(…..其實這個不算是typo,是計錯了減數=p)….對不起……應是67% 才對,謝謝你的指正。
真棒的介紹,清楚又有深度!
謝謝分享心得
男生女生那邊看的好想睡,病毒那邊就有趣多了!
一個從一本很棒的書”隱藏的邏輯”這本書p87裏看到的一個問題, 書中的答案令人吃驚但書裏解釋相當簡化, 能否請Tomorrow大大幫忙解答.
…現在對愛滋病毒(HIV)的血液篩檢已經相當準確; 如果一個人本身就是愛滋病患者, 檢驗結果(即HIV呈陽性反應)的準確度是99.9%. 而如果某人並沒有感染愛滋病, 檢驗結果(HIV呈陰性反應)的準確度更高達99.99%.
現在, 若在街頭上隨便找個人, 為他做HIV篩檢, 如果得到的結果是陽性反應, 那麼他真的是愛滋病帶原者的機率有多大?
steven: 這本書說的例子和我的電腦病毒例子差不多一模一樣。
你試試用上面有病毒/無病毒 和 警報響起/警報沒響起 那個表。只要把數字擺進去便會得到結果啊。
但這本書有沒有告訴你愛滋病的prior 呢,就是說在街頭上隨便找個人,不做任何檢驗,他是愛滋病者的機率。如果沒有這個機率便不能完成計算。
我沒有仔細的計,但如果這個機率是在0.01% 以下,這樣你便會得到和文中一樣的結果,就是說「即使測試準確度這麼高,他真的是愛滋病的機率仍是低於50%。」
花了很久時間看完這貝式定理兩篇,然後看到回應的時候嚇了一跳,
原來在這裡叫steven的不只我一個XD
Steven!我確定書裡面對於這個問題已經有詳細的解說和答案了,而且解法就和Mr. Tomorrow一模一樣,你是故意拿來考他的嗎?XD,另外,書裡面有提到「路上隨便找一個人,他有得到愛滋的機率薇0.01%」,因此這個問題的答案就是Mr. Tomorrow說得50%!