一個問題引發的統計學派之爭
- 2019 年 10 月 8 日
- 筆記
一天我偶然刷知乎刷到這樣一個問題,細想之後,覺得值得和大家分享我的理解:
假設某市流行一種病,發病率是0.1% 。在某地的醫院中有一個神醫,特別擅長診斷該病。神醫做出正確判斷的概率是99%。(神醫並不清楚發病率,做出正確判斷的概率實在實驗室得出來的。對於檢查是否患病的人,他的正確率不變。)有一次你去看病,神醫診斷說你有這個病。請問你真正有這個病的概率是多少?
大家不妨在往下讀之前可以先自己想想自己的思路,看看自己想的和我後面寫的有沒有相通之處。
問題作者藉此題說了他的貝葉斯模型的思路,並認為這樣想理所當然。我看了以後,覺得貝葉斯確實是一個流行的好想法,但是卻並不是唯一想法,聯想到一些其他思路和對模糊的題意理解方式,我認為有三種學派和理解以及四個不同答案,而且,不僅答案值不一樣,他們相互之間並沒有可比性,因為他們對題中要求的答案的定義都完全不同。
從中我們會回顧從概率統計到機器學習的一些經典模型,希望讀之能有所收穫。
頻率學派
頻率學派認為,自然界的某些性質會保持不變,這些性質被叫作「參數」的東西記錄下來,這個玩意的變數特性是常數,往往是未知而不變的。而這些性質唯一的觀測方式就是由帶有這個性質的系統產生的變數。比如人群的身高期望,硬幣正面向上的概率等,通過抽一群人測身高,扔一堆硬幣,我們可以就可以比較準確的計算人群身高和硬幣正面向上概率這兩個性質。
問題來了,到底測多少人身高算夠?扔多少次硬幣算夠?能夠準確地測量這個參數?
實踐上,對於這種一元變數,測個幾十上百次基本上就比較穩定,可以近似當成真值了。而對於複雜問題,這種平常經驗卻是無效的。比如,你要抽樣多少個對話系統的答案,多少query的搜索結果,所得統計結論才能在多少置信度下提升多少?
頻率學派最重要的思考就是把置信度計算,假設檢驗語言這一套理論說清楚了,而它的大前提是每個量:哪個是參數,是哪個分布的什麼參數,哪個是變數,是哪個分布產生的變數,要定義得一清二楚。在這個條件下,我們可以計算一般意義的點估計,置信區間估計,這兩種套路給了我們兩種回答問題的模式,對應解決問題到兩個程度:
點估計,給出估計值以及性質:參數的極大似然/矩估計值是X,具有無偏/有效/一致等興緻:
置信區間估計,給出置信區間以及置信度:參數在A的置信度下的置信區間是[X, Y];
前者的估計值往往就近似地拿著去做推斷了,但是嚴格來看還要做複雜的推斷結果的分布計算以及置信度計算等;而後者一般就讓人聽著舒服一下,覺得還比較可信和範圍接受就完事了,因為不知道具體值為多少,不好再往下推演了。
但是統計學最基本的,還需要能回答一些老闆關於是還是否的問題:
人口平均身高到底超過170沒有?硬幣向上的概率超過0.6沒有?
其實這些問題和參數值一樣,都不可以直接觀測,偉大的頻率學派學者發明了假設檢驗語言,在上面基礎上,能對任何這類相關的判斷類問題給出答案,並給出所謂檢驗水平來說明答案置信程度(p值法);
p值法那個p值啊,就是一個評價指標而已,用的是超出假設範圍的隨機變數的可能性大小。
所以,整個頻率學派留下來的精華就是:給出性質不錯的參數值,不信就給個區間和置信度,硬是要我下結論,就假設檢驗好了。而做這些事情的前提是定義清楚參數,變數和分布形式。頻率學派就是這麼一套方法論和建模思路。
在本問題上實踐一下這個建模思路:如果有病與否是個確定的未知參數,那要麼通過對該參數下產生的樣本來估計,要麼有人直接告訴我參數值為多少,或者置信度為何,就像上帝視角一樣給出已知條件。本問題中,並沒有估計樣本,這個參數值也和發病率沒有任何關係,僅能把醫生的判斷作為該未知參數值的1的置信度,即:
結論一:
根據醫生的說法,有病與否這個參數為1的置信度為0.99。
這個置信度,和扔了一堆硬幣樣本算的硬幣正面向上概率在一個區間X內的置信度為Y是一個意思,只不過這裡的向上概率這個[0, 1]範圍的變數為估計參數,問題中有病與否這個bool變數為估計參數。
自然地,這裡還有另外一個思路:得病概率是未知參數,得病結論是唯一的變數。此時,這個變數並不可觀測,頻率學家眼裡,醫生這種不能打保票的話是不予採納的!那得了,這個參數相關分布的變數,得沒得病這件事沒有絕對的觀測,咋辦,不怕啊,上帝告訴我了發病率啊,這個不就是適用每個人的得病概率啊!
結論二:
根據發病率資訊,有病與否的概率值為0.001。
怎麼樣,是不是感覺頻率學派有點生硬,無法融合多方資訊,非黑即白,結論邏輯通順但是似乎並不那麼好用?
正式這樣,貝葉斯學派才體現它的價值。
貝葉斯學派
貝葉斯同學和他的信徒們清晰地意識到了客觀世界之複雜,變數直接的影響關係往往順序地有好幾個層次,並不像一般地參數-隨機變數這樣單一。而他們的具體建模方式是:一個對象既可以作為某個分布的隨機變數結果,也可以作為下一個分布的參數或到此終止。至於有多少層次和相互的因果關係法則,這要看具體的實際問題假設來構建,頻率學派的一層模型僅僅是最簡單的特例。我們能夠處理估計任何參數值的問題(往往是極大似然估計)以及某變數在所有資訊條件下的分布問題。
在這裡,根據題意,構建貝葉斯DAG(有向無環圖)如下:

P1: 得病概率,這裡即是發病率,為已知參數,P1 = 0.001;
X: 是否得病的隨機變數,服從伯努利分布:X ~ B(1, P1);
Y: 神醫的診斷結果,依據題意,有:(Y==X) ~ B(1, P2),P2 = 0.99;
在這個模型中,所有的參數都是已知的,不需要做參數估計,一切隨機變數的分布就都可以計算。
故原題所求即為:

結論三:
根據發病率先驗和神醫診斷後驗判斷,由貝葉斯公式,得得病與否的隨機變數的後驗分布仍然為伯努利分布,其分布參數約為0.090。
香農資訊學派
這裡泛指熵的引入,以及無向圖模型的系統描述方法等一系列成果。
香農同學在他的碩士研究論文中奠定了直到今天還在沿用的資訊理論基礎,在統計學中的意義即是,統一了市面上給出的幾乎所有的分布表達式的共同源頭:最大熵模型,並且逐漸總結出了指數分布族這樣的工具方便地對任意分布形式進行建模。
貝葉斯的有向圖模型的問題是,無論是否存在,必須假定一個變數間的順序生成過程,這個在一些時空系統中大體成立,可是你要硬說是因為體重重所以身高高還是反過來成立,就怎麼說都有點牽強了。強行構造的因果一定會因為和真實生成過程不符合導致最後的模型效果的偏離啊。有些變數之間是看不見摸不著的相關關係,並沒有誰先誰後的因果關係啊!
於是,我們把所有要研究的認為重要的變數列出來,按照認定其有無直接關係,即在其他變數都已知的條件下,二這是否獨立這件事的答案來決定是否連上一條無向邊,最後找到最大團計算勢函數,根據Hammersley-Clifford定理,得到最後的分布表達式。
我覺得,這些知識的大致邏輯是這樣的:無向圖提供了一種表達關係的方法(因子圖也是,有向圖也是,甚至還包括工程上CRF模型用的特徵模版也是如此。),最大熵模型是一個給定約束條件下求解最佳分布的準則,執行的的最大資訊熵目標,達到的是平均來看最小的和真實分布的交叉熵。而Hammersley-Clifford定理,則恰是在無向圖方式限定函數的變數關聯方式條件下最大熵模型的結論形式罷了。
回到我們研究的問題,如果用無向圖模型來理解,其圖示應該是這樣的:

字母含義同貝葉斯模型,且嚴格來說,P1,P2是兩個X,Y分布的約束,而不再是一個分布的固定參數了。
其對應的最大熵模型為:

注意,最後求解答案所用的公式是條件概率公式而已,並不是貝葉斯模型,貝葉斯模型的核心的有向圖加條件概率公式。
這裡所選取的特徵僅有兩個,而且都是給定了特徵函數期望值的,由於沒有真正的樣本,所以沒有很好的條件去使用其他的特徵了,否則這個約束下的最優化問題就沒法給出一個簡單的唯一可行解,也是最優解了。
結論四:
根據最大熵模型準則,在題設條件都成立的條件下,得到的最大熵模型的解,由條件概率公式得,此時得病概率為0.910。
總結
哈哈,一道這麼簡單的問題搞出四個大相徑庭的答案來了,有必要麼,到底信誰的呢?其實啊,這些結論都是在各自的理論下站的住腳的,也是完全不同的世界觀,方法論的推演結果,雖然都是一個數,但他們並無可比性,所代表的含義分別為參數置信度,變數服從分布的參數值,後驗概率以及最大熵的解下的條件概率。他們互相井水不犯河水。
這些思考不能幫助你迅速解決這個問題,但是能幫助提升你的思維能力到一個新的檔次。