資料分析中最好用的估演算法:費米思想

數據分析那些事
7 min readApr 2, 2020

在很多資料分析面試中,主考官都喜歡問應試者這樣的一些問題:

“不用任何公開參考資料,估算今年新生兒的出生數量?”

“估算你所在的城市,每年收集到的家庭垃圾的總重量是多少?”

“估算此時此刻的世界上,有多少人正在挖鼻孔?”

……

像這種看似無釐頭的問題,卻常常在資料分析的面試中見到,而如果應試者沒有一定的資料思維,第一反應一定是:

“你瘋了吧?這種問題我怎麼回答?”

如果你這麼回答,或者是胡亂猜一個數字,那麼恭喜你,你可以去準備下一場面試了。

其實這樣的題目看似無法回答,但實際上主考官考驗的是你的資料思維能力,如何在資料不明確、以及各種限制條件下,利用一些假設的理由和經驗推算出正確答案。

這也就涉及到了我們今天要分享的資料分析思想 — — 費米問題。

一、神奇的費米問題

費米是義大利裔的美國物理學家,曾在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年調一次,這樣一高一低,錯誤估計就會被相互抵消。

換成資料分析的語言就是,你在假設或者猜測某一個小事件的時候,你的推測假設有可能有的過高,有可能有的過低,如果這些“點”的數量足夠,最終誤差就會被相互抵消,整體結果最終會呈現為一個平均值,這就是平均律理論。

其實就類似於上圖,我們確定一個估算上邊界,以及一個估算下邊界,所有落在這個範圍裡面的點都會趨向於平均值,落在平均值上的點和平均值下的點就會相互抵消消除,其結果也就趨於一個準確值了。

這也就是為什麼費米估演演算法會百試百靈,準確率十分之高了!

四、費米思想如何用在資料分析中

費米估演演算法求出的是一種數量級上的準確,這種準確是由一些要素保證的,首先是模型的準確性,這是基礎,無論是物理定律還是生活經驗都要經受住檢驗;

其次是變數估計的準確,這個很好理解,你對這個變數越不確定,答案就有可能越不靠譜;

第三條很重要,是對第二條的補救,對一個變陣列,每個變數都選擇可能性最大的值,最後會在概率意義上得到很好的結果(通俗地說,有可能估計大也可能估計小了,但是最後抵消了,所以參數越多,穩定性越好)。

所以說,費米處理問題的方式是將複雜、困難的問題分解成小的、可以解決的部分,從而以最直接的方法迅速解決問題。這種思維方式非常實用,可以幫助我們解決很多日常甚至重要的問題。

在實際生活中,我們常常需要在資訊不全的情況下做出判斷決策,要使我們的決定儘可能正確,最有效的策略就是“費米思維”。

回顧十週入門數據分析系列文:

關注數據君的臉書:

我是「數據分析那些事」。常年分享數據分析乾貨,不定期分享好用的職場技能工具。按贊我的臉書,會有豐富資料包贈送唷!

接受贊助/免費投稿/商業合作!!!

--

--

數據分析那些事

這是一個專注於數據分析職場的內容部落格,聚焦一批數據分析愛好者,在這裡,我會分享數據分析相關知識點推送、(工具/書籍)等推薦、職場心得、熱點資訊剖析以及資源大盤點,希望同樣熱愛數據的我們一同進步! 臉書會有更多互動喔:https://www.facebook.com/shujvfenxi/