在很多資料分析面試中,主考官都喜歡問應試者這樣的一些問題:
“不用任何公開參考資料,估算今年新生兒的出生數量?”
“估算你所在的城市,每年收集到的家庭垃圾的總重量是多少?”
“估算此時此刻的世界上,有多少人正在挖鼻孔?”
……
像這種看似無釐頭的問題,卻常常在資料分析的面試中見到,而如果應試者沒有一定的資料思維,第一反應一定是:
“你瘋了吧?這種問題我怎麼回答?”
如果你這麼回答,或者是胡亂猜一個數字,那麼恭喜你,你可以去準備下一場面試了。
其實這樣的題目看似無法回答,但實際上主考官考驗的是你的資料思維能力,如何在資料不明確、以及各種限制條件下,利用一些假設的理由和經驗推算出正確答案。
這也就涉及到了我們今天要分享的資料分析思想 — — 費米問題。
一、神奇的費米問題
費米是義大利裔的美國物理學家,曾在1938年獲得諾貝爾物理學獎,而他被世人所更為熟知的,則是他在芝加哥大學課堂上憑空拋出的一個看似荒謬的問題:
“芝加哥有多少個鋼琴調音師?”
聽到這個問題的學生都是一臉茫然,費米則提示遇到這樣看似龐大的問題,可以把這個問題分解成一些便於操作和認知的小問題,根據猜測和假設去估算問題。
這也就是費米問題思想的核心:邏輯拆解。
也就是說把一個龐大的、抽象的、複雜的問題,逐級拆解為微小的、具體的、簡單的問題,然後再將這些小問題進一步拆解,只要保證了邏輯關係,那麼將這些可以回答的小問題答案,逐步反推到費米問題上,就可以得到最終的準確答案。
在麥肯錫分析思維中,這種方法叫做“邏輯樹法”。
現在我們再回過頭來,看一下費米是怎麼解答的呢?
首先費米將這個問題拆解成了兩個問題:每年芝加哥全部調音師的工作時長,以及一位調音師每年的工作時間。
為什麼要拆解成這兩個問題呢?因為我們在拆解問題的時候需要按照一定的邏輯關係,這個邏輯關係必須要保證能夠完全覆蓋費米問題的所有範圍。
比如這個問題的拆解邏輯是:
總人數=總時長/單個時長
然後我們再先看一下,每年芝加哥全部調音師的工作時長是多少?費米繼續將這個問題進行拆解,拆解為了3個問題:
- 芝加哥有多少架鋼琴?
- 每架鋼琴多久調一次音?
- 一位調音師的調音時長?
拆解邏輯是:
鋼琴數*每年調音次數*調音時長=每年總調音時長
現在問題又變成了芝加哥有多少鋼琴和每年調音的次數,這樣的問題還能繼續拆解嗎?
答案是不能,這樣的問題就屬於費米問題的基本問題,基本問題的確定就要涉及費米問題的另一個主要思想:問題估算。
二、天才的大數估演演算法
對於基本問題的估算方法,費米給出了一個天才式的估算方法:
對於小問題的估算,不要估算其本身,而是先估算其上下界,然後在10倍的範圍內估算出數值,這種方法竟然能保證極高的準確率。
至於原因,我們稍後再講,先看一下費米是怎麼估算的。
首先是如何知道芝加哥的鋼琴數,費米先估算了芝加哥總居民數是300萬(這個不用估算也基本能知道),平均每個家庭有4個人(美國四人家庭居多),那麼芝加哥估計會有75萬個家庭。
這些家庭中有多少有鋼琴呢?在當時的美國,鋼琴屬於半稀缺物品,擁有鋼琴的家庭應該不會超過1/2,也不會低於1/10,因此費米估算為1/3,那麼全市大概會有25萬架鋼琴。
第二個基本問題是每架鋼琴每年需要調音幾次,調音師不是常見的崗位,調音次數應該不會超過1年3次,也不會低於10年1次,因此費米估算為3年1次,也就是每年0.33次,那麼每年全市有8.3萬架鋼琴需要調音。
第三個基本問題是調音一次要花多久,不會超過10小時,也不會低於1小時,因此費米估算為3小時。
這樣第一個大問題我們就解決了,總鋼琴的總調音時長大約是3*83000=249000
下面估算第二個大問題:每年每位調音師工作多久?
假設調音師一年工作250天,算上他每天需要往返的路時,那麼他一年的工作時間就是250*24*0.6=3600H
這樣所有的問題都已經估算出了結果,最終調音師數量=249000/3600=69位
那麼實際上有多少人呢?經過費米和學生們事後進行電話號碼驗證,大概芝加哥市有80位調音師,除去一些號碼重複的,其結果竟然跟費米估算的相差無幾!
三、暗中幫助的平均律
但是可能有人會產生質疑,如果將費米估算中家庭擁有鋼琴率改為1/5,而不是1/3,其結果不就會改變了嗎?費米的這些估算難道都是巧合嗎?
其實,費米估演演算法中涉及到了一個資料概念:平均律。
他的原理是在任何一組計算中,估算帶來的錯誤都可以相互抵消,所做的假設越多,被抵消的概率就會越大。
也就是說,有人會假設1/5的家庭擁有鋼琴,他也可能同時會假設每架鋼琴需要1年調1次音,而不是3年調一次,這樣一高一低,錯誤估計就會被相互抵消。
換成資料分析的語言就是,你在假設或者猜測某一個小事件的時候,你的推測假設有可能有的過高,有可能有的過低,如果這些“點”的數量足夠,最終誤差就會被相互抵消,整體結果最終會呈現為一個平均值,這就是平均律理論。
其實就類似於上圖,我們確定一個估算上邊界,以及一個估算下邊界,所有落在這個範圍裡面的點都會趨向於平均值,落在平均值上的點和平均值下的點就會相互抵消消除,其結果也就趨於一個準確值了。
這也就是為什麼費米估演演算法會百試百靈,準確率十分之高了!
四、費米思想如何用在資料分析中
費米估演演算法求出的是一種數量級上的準確,這種準確是由一些要素保證的,首先是模型的準確性,這是基礎,無論是物理定律還是生活經驗都要經受住檢驗;
其次是變數估計的準確,這個很好理解,你對這個變數越不確定,答案就有可能越不靠譜;
第三條很重要,是對第二條的補救,對一個變陣列,每個變數都選擇可能性最大的值,最後會在概率意義上得到很好的結果(通俗地說,有可能估計大也可能估計小了,但是最後抵消了,所以參數越多,穩定性越好)。
所以說,費米處理問題的方式是將複雜、困難的問題分解成小的、可以解決的部分,從而以最直接的方法迅速解決問題。這種思維方式非常實用,可以幫助我們解決很多日常甚至重要的問題。
在實際生活中,我們常常需要在資訊不全的情況下做出判斷決策,要使我們的決定儘可能正確,最有效的策略就是“費米思維”。
回顧十週入門數據分析系列文:
關注數據君的臉書:
我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。按贊我的臉書,會有豐富資料包贈送唷!