Think Bayes - 我所理解的貝葉斯定理

貝葉斯定理是統計學中非常重要的一個定理,以貝葉斯定理為基礎的統計學派在統計學世界裡佔據著重要的地位,和概率學派從事件的隨機性出發不同,貝葉斯統計學更多地是從觀察者的角度出發,事件的隨機性不過是觀察者掌握信息不完備所造成的,觀察者所掌握的信息多寡將影響觀察者對於事件的認知。

條件概率和全概率

在介紹貝葉斯定理之前,先簡單地介紹一下條件概率,描述的是事件 A 在另一個事件 B 已經發生條件下的概率,記作 P(A|B), A 和 B 可能是相互獨立的兩個事件,也可能不是:

P(A|B)=frac{P(Acap B)}{P(B)}

P(Acap B) 表示 A,B 事件同時發生的概率,如果 A 和 B 是相互獨立的兩個事件,那麼:

P(A|B)=frac{P(Acap B)}{P(B)}=frac{P(A)	imes P(B)}{P(B)}=P(A)

上面的推導過程反過來證明了如果 A 和 B 是相互獨立的事件,那麼事件 A 發生的概率與 B 無關。

稍微做一下改變:

P(Acap B)=P(A|B)	imes P(B)

考慮到先驗條件 B 的多種可能性,這裡引入全概率公式:

P(A) =P(Acap B)+P(Acap B^C)=P(A|B)	imes P(B)+P(A|B^c)	imes P(B^c)

這裡 B^c 表示事件 B 的互補事件,從集合的角度來說是 B 的補集:

P(B)+P(B^c)=1

條件概率和全概率公式可以通過韋恩圖形象地表示出來:

貝葉斯公式

在條件概率和全概率的基礎上,很容易推導出貝葉斯公式:

P(A|B)=frac{P(Acap B)}{P(B)}=frac{P(B|A)	imes P(A)}{P(B)}=frac{P(B|A)	imes P(A)}{P(B|A)	imes P(A)+P(B|A^c)	imes P(A^c)}

看上去貝葉斯公式只是把 A 的後驗概率轉換成了 B 的後驗概率 + A 的邊緣概率的組合表達形式,因為很多現實問題中 P(A|B)P(Acap B) 很難直接觀測,但是 P(B|A)P(A) 卻很容易測得,利用貝葉斯公式可以方便我們計算很多實際的概率問題。

一個很有意思的例子

在生活中,幾乎所有人(包括統計學者)都會無意識地將兩個事件的後驗概率混淆,即:

P(A|B)=P(B|A)

最經典的一個例子就是疾病檢測,假設某種疾病在所有人群中的感染率是0.1%,醫院現有的技術對於該疾病檢測準確率為 99%(已知患病情況下, 99% 的可能性可以檢查出陽性;正常人 99% 的可能性檢查為正常),如果從人群中隨機抽一個人去檢測,醫院給出的檢測結果為陽性,那麼這個人實際得病的概率是多少?

很多人會脫口而出 "99%",但真實概率遠低於此,因為他們把兩個後驗概率搞混了,如果用 A 表示這個人患有該疾病,用 B 表示醫院檢測的結果是陽性,那麼 P(B|A) = 99\% 表示的是「已知一個人得病的情況下醫院檢測出陽性的概率」,而我們現在問的是「對於隨機抽取的這個人,已知檢測結果為陽性的情況下這個人患病的概率」,即 P(A|B)

我們可以用貝葉斯定理來計算這個人實際得病的概率:

P(A|B)=frac{P(B|A)	imes P(A)}{P(B|A)	imes P(A)+P(B|A^c)	imes P(A^c)}

其中:

  • P(A)=0.001,被檢測者患病的概率
  • P(A^c)=0.999,被檢測未者患病的概率
  • P(B|A)=0.99,已知患病的情況下檢測為陽性的概率
  • P(B|A^c)=0.01,已知未患病的情況下檢測為陽性的概率

將上面的概率代入到貝葉斯公式中,可得:

P(A|B)=frac{P(B|A)	imes P(A)}{P(B|A)	imes P(A)+P(B|A^c)	imes P(A^c)}=frac{0.99	imes 0.001}{0.99	imes 0.001 + 0.01	imes 0.999}approx 0.09

這個公式在這裡的實際意義是什麼?讓我們用圖來解釋(圖中概率經過四捨五入,考慮到圖片的尺寸,面積並沒有和概率嚴格對應起來):

從貝葉斯的角度來看,隨意選取的一個被測者,由於信息並不充分,未檢測之前有假陽性、真陽性、假陰性和真陰性四種可能,這些可能性由檢測技術和該疾病的感染率決定,當檢測結果為陽性的時候,只剩下真陽性和假陽性兩種可能,而真陽性的概率僅為假陽性的十分之一,貝葉斯公式在這裡的實際意義是:

P(A|B)=frac{True Positive}{True Positive+False Positive}=frac{0.001}{0.01+0.001}approx0.09

即使被醫院檢測為陽性,實際患病的概率其實還不到10%,有很大可能是假陽性,往往需要複檢來確定是否真的患病,讓我們再來計算初檢和複檢結果都為陽性時,患病的可能性。假設兩次檢查的準確率相同,都是99%,這裡令 B 為第一次檢測結果為陽性,C 為第二次檢測結果為陽性,A 為被檢測者患病,那麼兩次檢測結果都是陽性患病的概率可以表示為:

P(A|(Bcap C))=frac{P((Bcap C)|A)	imes P(A)}{P((Bcap C)|A)	imes P(A)+P((Bcap C)|A^c)	imes P(A^c)}

其中:

  • P(A)=0.001,被檢測者患病的概率
  • P(A^c)=0.999,被檢測者未患病的概率
  • P((Bcap C)|A) = 0.99	imes 0.99 = 0.9801,已知患病情況下連續兩次檢測結果為陽性的概率
  • P((Bcap C)|A^c) = 0.01	imes 0.01 = 0.0001,已知未患病情況下連續兩次檢測結果為陽性的概率

代入後可得:

egin{split}P(A|(Bcap C)) &=frac{P((Bcap C)|A)	imes P(A)}{P((Bcap C)|A)	imes P(A)+P((Bcap C)|A^c)	imes P(A^c)}\&=frac{0.9801	imes 0.001}{0.9801	imes 0.001 + 0.0001	imes 0.999}\&approx 0.9end{split}

可見複檢結果大大提高了檢測的可信度,聯繫上面的圖,複檢的意義在於大幅減少假陽性的可能(0.01 -> 0.0001)從而提高陽性檢測的準確性。


推薦閱讀:

伊朗是威脅海灣國家安全的罪魁禍首?海灣民眾:我們不信
怎麼樣才能對數據敏感?
AI的發展優勢劣勢有哪些?
[數據分析] Markov Chain Monte Carlo

TAG:机器学习 | 数据 | 贝叶斯统计 |