本筆記是數據科學導論系列的第五篇,Markdown 文件開源於 GitHub。題圖和下圖來自 xkcd。
這篇筆記講模型和真實世界的誤差(error)。筆記會先介紹常見的統計偏差(bias),以及如何減少偏差,最後用直覺和數學的方式說明為什麼存在偏差(bias)和方差(variance)的取捨。
常見偏差
選擇性偏差(selection bias)
選擇性偏差可能是最重要的偏差了,它關於一個基本問題:數據到底是怎麼來的?有哪些數據是沒有的?
做數據分析時,我們不可能有所有數據,數據只能從總體(population)里抽樣,但如果不是隨機取樣,樣本是不能反映總體的,這就產生了選擇性偏差。比如人生規劃的選擇性偏差,你聽到的很多道理都來自「成功人士」,但「成功人士」的道理只來源於他們自己的經歷,這些道理真的是最佳路徑嗎?可能還有更多「失敗人士」和「成功人士」用同樣的方法,但因為失敗了而沒有被我們看到罷了。
選擇性偏差和其他偏差有重疊,以下的一些偏差可以看作選擇性偏差的一種。
發表性偏差(publication bias)
發表性偏差(publication bias),也叫文件抽屜偏差(file drawer problem),指很多文章被放在抽屜里沒有出版,但這些文章其實和出版的文章一樣重要。許多科學論文因為沒有達到顯著的 p 值(0.05)而沒有出版,但這些論文其實和達到顯著 p 值(0.05)的論文一樣重要,憑什麼 0.05 就能代表論文的重要程度呢?關於創業成功的書籍很多,創業失敗的書籍很少,但這兩種書籍都揭示了重要的道理。
時距偏差(length time bias)
時距偏差(length bias)指因為觀察對象的死亡或者消失,在某一時刻的觀察結果不能反應總體情況。
例如調查癌症的死亡率,如圖所示,虛線指調查時間,因為許多癌症患者已經死亡了,這時候的調查結果只會顯示癌症的死亡率比實際結果低。
另一個例子是調查監獄里囚犯的服刑時長,如果你去監獄里調查囚犯的服刑時長,然後得出 10% 的美國囚犯需終生服刑這樣的結論,那麼你就犯了時距偏差,因為你在監獄調查的時候,服刑時間短的犯人更不容易被觀察到,如圖所示,線的長度表示各個犯人的服刑時間,藍線表示調查時刻,可以看到,只有服刑時間長的犯人更容易被調查到。
反應偏差(non-response bias)
2016 年的總統大選民調可能是反應偏差(non-response bias)的最佳例子了,民調顯示希拉里大幅領先,但為什麼是川普獲勝呢?因為民調不能反映拒絕調查的「沉默者」的意見。調查只能得到回應者的態度,但如果拒絕回應的人與回應者的態度不同,那麼調查結果就會有反應偏差。
倖存者偏差(survivorship bias)
研究對象如果是經過「篩選」的,不考慮篩選過程而直接判斷,容易導致倖存者偏差(survivorship bias)。最有名的例子就是二戰飛機彈孔問題了,一批戰鬥機從戰場返航,如何從彈孔分佈判斷加固部位?換言之,是加固彈孔多的地方還是加固彈孔少的地方?答案是加固彈孔少的位置,因為擊中致命傷的飛機根本無法返航,返航的飛機恰恰沒有被擊中要害(也就是彈孔少的地方),更詳細的倖存者偏差討論可以參考知乎。
以上是一些常見偏差,更多的偏差類型可以參考維基百科上的 認知偏誤列表。
如何減少偏差我們有許多方法來降低偏差,一個是使用權重,給不同來源的數據乘上權重,且。
Nate Silver 在 How The FiveThirtyEight Senate Forecast Model Works 指出了其通過歷史民調數據來判斷不同來源的民調可信度,為這些來源施加不同的權重;統計學家費雪提出了 Fisher Weighting,指出權重應該與數據方差成反比。
另一個方法是多次實驗並驗證假設(Multiple Hypothesis Testing),但需要使用邦費羅尼校正(Bonferroni correction)決定 p 值:如果你做 100 次實驗,總有一次 p 值是低於顯著值(比如 0.05)的,邦費羅尼校正要求我們把顯著值除以實驗次數(也就是把 0.05 ÷ 100 = 0.0005)作為新的顯著值。
偏差和方差的取捨(the Bias-Variance Tradeoff)
為什麼我們不直接把模型的偏差減掉呢?一個原因是我們根本不知道偏差的具體數值,另一個原因是降低偏差可能帶來方差的升高,也就是存在偏差和方差的取捨。
Gareth J. et al. 在大名鼎鼎的 Introduction to Statistical Thinking 里指出,誤差(Error)可以分成三個部分:偏差(Bias)、方差(Variance)、不可避免的誤差(也叫噪音,Irreducible Error)。下圖中,Scott Fortmann-Roe 用圖像解釋了偏差和方差的區別,簡而言之,偏差指與真實世界的偏離,方差指接受不同數據后的模型輸出的穩定程度。
我們這樣直覺(intuitively)地解釋偏差和方差的取捨,如果我們選了簡單的模型(參數少),給這個模型不同的樣本,就算不同的樣本有偏差,模型輸出的結果都差不多,方差小,而因為模型簡單,不能完全反映真實世界,偏差大;如果我們選了複雜的模型(參數多),因為模型複雜,更能反映真實世界,偏差小,但給這個模型不同的樣本,不同的樣本哪怕有微小的差別,因為參數多,導致輸出的結果差別很大,也就是方差大。因此,當模型逐漸從簡單到複雜,偏差不斷地減小,而方差不斷地增大,MSE 呈一條 U 形曲線,如下圖所示,好的模型就是誤差最低(虛線對應)的點。
定義 MSE
如何嚴格證明誤差包括偏差和方差?首先,我們需要定義如何評估模型的誤差。最簡單的方式是用均方差(MSE, mean square error):
真實模型不可避免的錯誤、噪音,其均值為 0,估計模型(統計符號表示估計)
好了,我有三個 x 值:,那麼估計值就是,真實值(y)是,那麼
期望值和方差的關係
期望值(就是均值)和方差的關係是:
,是一個隨機變數,確切地講是把結果實數的
映射(mapping),期望值是的積分或總和,
Introduction to Statistical Learning說這個可以當成向量,所以這個到底怎麼定義、用向量定義離散隨機變數有沒有問題我也沒搞懂,我猜想在機器學習里用向量表示不同的數據足矣,還能用上漂亮的矩陣計算何樂不為,根本不必考慮集合論的映射,所以這裡我用非常不嚴謹但更易懂的集合形式(你看做向量也沒問題)來證明期望值和方差的關係,你把期望值理解為求平均就可以了,默認讀者已知期望值是
線性的:
重新排列可得:
MSE 和偏差、方差的關係
首先定義偏差、方差的數學表達式:
描述了給定不同樣本,估計模型產出 的穩定程度
描述了估計模型產出 與真實值的差
以下證明參考自
維基百科,簡化符號由可得:
的輸出是定值,所以;已知
回到:
理想情況下,我們可以讓 bias 和 variance 等於 0 的,但模型是對真實世界的簡化,我們也不可能獲得總體的所有數據,因此誤差是必然存在的。當誤差已經足夠低時,偏差降低會帶來方差升高,方差降低則帶來偏差升高。
細想一下第二行的公式很有意思,這裡我們認為,這個假定的條件是和相互獨立,就是我們估計出的模型不會影響真實世界,真實世界不會影響估計出的模型,但如果有一個模型對世界產生了巨大的影響(心理學家提出的智商理論就是一個例子)或者真實世界對模型設計者產生了影響(意識形態),那麼 the Bias-Variance Tradeoff 就不成立了,我們可以做一個思維實驗,在未來某一天,人工智慧科學家研究出了一個極佳的模型(人工智慧),這個人工智慧改變了世界和我們的認知,打破了 the Bias-Variance Tradeoff,使得 MSE 無限趨近於 0,成為超智能體,然後世界就被人工智慧毀滅了(這句是我瞎猜的),但是最後我「失望」地發現
Hyndman 以及學術界的證明都沒有用到這個假定(也使得證明繁瑣了點),這個科幻設定暫時不會發生,的證明並不是完美的證明。不過話說回來,只證明包含了,但為什麼會降低到一個常數呢?這個常數到底是多少?
StackExchange有人說
Abraham Wald 的論文已經證明完了,我沒看懂,也不打算深挖下去了。深入閱讀
現有的大部分資料都把證明一筆帶過,我有考據癖,就花了好幾個小時查閱和寫證明,因為只有嚴格的數學證明才能摸清定理的假設和邊界。我儘可能地讓證明足夠直白和繁瑣以確保基礎水平的讀者(我就是基礎水平)能看懂。但是,這篇筆記仍然存在統計學和機器學習的 gap,像是 variance,雖然數學式子都一樣,但在傳統統計學和在機器學習領域的解釋不太一樣,傳統統計學解釋 variance 側重於數據整體分佈(spread),機器學習解釋 variance 側重於訓練結果(realisation of models),如果你從來沒接觸過機器學習(或者了解得很少),有些內容可能理解不透,可以查閱以下內容:
Understanding the Bias-Variance Tradeoff
帶你讀機器學習經典: An Introduction to Statistical Learning (Chapter 1&2)
機器學習中的 Bias(偏差),Error(誤差),和 Variance(方差) 有什麼區別和聯繫?
Introduction to Statistical Learning Course
Introduction to Statistical Learning
致謝
數據科學導論筆記基於加州大學伯克利校區 DS100 與哈佛大學 CS109 的課程主頁改寫,參考了課件、筆記、閱讀材料及作業,感謝製作這兩門課程的 Joe Blitzstein、Hanspeter Pfister、Verena Kaynig-Fittkau、Joseph E. Gonzalez、Joseph Hellerstein、Deborah Nolan 和 Bin Yu。本文基於 CS 109 的 Lecture 7: Bias and Regression,還參考了「深入閱讀」部分里的文章,感謝作者 @阿薩姆 和 Scott Fortmann-Roe。