數據分析的力量

Phoebe Chen
Gogolook 設計團隊的學習筆記
12 min readFeb 11, 2019

此篇文章為伊藤公一朗《數據分析的力量 Google、Uber 都在用的因果關係思考法》讀後心得與重點整理

在這個數據驅動的時代,任何決策的判斷似乎只要有數據佐證就能合理的被接受,然而,數據只是資料,他本身不具備優劣、正反的含義,重要的是如何正確地分析與解釋數據,才能讓數據發揮其最大的功能。

文章架構

首先,數據資料可以得出因果關係嗎?

假使你是冰淇淋公司的行銷部員工,公司正在研究在網站上打廣告,是否能提升今年夏天的業績,於是請你進行調查⋯⋯

冰淇淋業績與網路廣告量關係

由上圖可發現,相較於沒有打廣告的 2009 年,2010 年的冰淇淋業績上升了百分之四十,因此,你跟主管報告:

由圖可知,因為廣告的影響,2010 年的業績比 2009 年多了 40%,所以廣告是有效益的。

但,這樣的結論是對的嗎?

為什麼有可能是錯的?

除了投遞廣告的因素,我們發現 2010 年的日本的夏天氣溫比 2009 年高,另外,從 2008 年金融海嘯後景氣漸漸復甦,而這些因素都有可能影響冰淇淋的銷售業績,因此,無法斷言銷售業績的提高,就一定是廣告的功勞。

假使我們依照上面的結論進行廣告投放,結果可能會不如預期。

隱含著其他因素影響冰淇淋的業績

打鐵趁熱,那再舉一個例子,假使今天電力公司因應環保考量,希望透過調漲電費來促進民眾的節電意識,於是一樣進行資料分析⋯⋯

電價與用電量間關係

由上圖我們發現,當電價從 2008 年的 20 日圓,漲價到 2012 年的 25 日圓時,家庭平均每日的用電量從 20kWh 下降至 15kWh,因此,我們可以得出結論:「調漲電價有助於促進節電」

但,是不是也覺得哪裡怪怪的呢?

造成用電量下降其他可能的因素

我們發現,2012 年的夏天比 2008 年的夏天較涼,加上 2011 年東日本大地震後,後日本人節電意識增長,這些因素都有可能造成 2012 年的用電量降低,因此,無法直接地斷言是電價調漲所帶來的影響。

說到這裡,是不是有一點感覺了?

假使我們從資料上看到, X 與 Y 之間有相關關係時,有三種可能:
1. X 對 Y 造成影響
2. Y 對 X 造成影響
3. 其他因素 V 對 X 與 Y 皆造成影響

因此,對資料分析者而言,如果只觀察 X 與 Y 之間有相關關係,就直接得出因果關係結論的話,反而有可能因誤讀資料而做出錯誤的判斷。

然而,該如何解決「相關關係」並非「因果關係」的問題呢?

以往過去的方法總是找出所有可能產生影響的 V 因素,以統計分析的方法盡可能排除 V 的影響,但問題是,即使你找出了一個 V ,還有千千萬萬個你無法想像的 V。

那該怎麼辦呢?

想要得出因果關係,我們必須先了解,怎麼樣可以定義資料與資料之間具有「因果關係」。

因果關係用介入效果 (Treatment effect) 來定義

假使以上面電價調漲的例子來看,A 家庭 在 2012 年夏季的電力使用量,假設電費在尚未調漲前為 Y0,電費調漲後為 Y1,而 Y1 與 Y0 之間的差距,即是〔電費調漲〕〔使用量 〕介入效果

然而,在現實生活中,Y0 是無法被得知的,也是所謂的「未發生的潛在結果」,因此,我們無法做出因果關係的判斷。

也就是說,如果我們要能明確地看出介入效果的話,即必須要有如做實驗般的建立實驗組與對照組,在同樣的環境與時空背景下進行測試,並發現實驗組確實與對照組之間出現差距,而這樣的方法,也就是所謂的隨機對照試驗法

隨機對照試驗 (Randomized Controlled Trial)

在軟體開發產業中俗稱 A/B testing ,以下三項守則必須嚴格地遵守,才能確保因果關係的推論是合理且正確的。

守則一、妥善定義群組:先建立對照組 (default),再建立含有變動的實驗組 (receive alternative treatment)。

守則二、一定要隨機分組:如果不是隨機分組,而是根據某項性質排序或篩選,那麼實驗結果即無法肯定因果關係,因為這些機制可能某部分影響了結果。

守則三、各組的樣本數要充足:樣本數越大,平均數誤差越小。

而隨機抽樣的作法,在這篇文章便不詳述,有興趣或者不知道該如何進行隨機抽樣的小夥伴們,可以參閱簡單的維基百科:

但很多時候,並不是所有決策都能做 A/B testing,例如某些政策的決定,可能礙於預算、人力或道德考量,並不是那麼容易可以在全國進行 A/B testing。

那這樣怎麼辦?怎麼樣能得出因果關係?

沒關係,山不轉路轉,路不轉偶們轉!

自然實驗法 (Quasi-Experiment)

自然實驗法不同於 A/B testing 的地方在於,A/B testing 是由資料分析者「主動」設計實驗,而自然實驗法則是運用某種緣故自然形成的、彷彿做了實驗一般的狀況。

書中提到的自然實驗法,有以下三種:斷點迴歸設計 (Regression Discontinuity Design,俗稱 RDD) 、堆集分析 (Bunching Analysis)、縱橫資料分析 (Panel Data Analysis)。

斷點迴歸設計 (Regression Discontinuity Design, RDD)

直接講他是什麼會非常難理解,所以我們用例子來解釋。

醫療龐大支出一直以來都是很多國家的問題,如果要抑制醫療支出,直覺會先想到的解方就是調整民眾的自負額。

但,假使自負額太低,很多沒必要上醫院的小病都為去看診;自負額如果太高,又會發生很多小病其實趁早可以醫治,但卻因為費用太高無法看病,最後釀成大病,仍導致整體國家醫療支出增加的狀況。

因此,對醫療政策而言,該如何調整自負額成為最重要的課題,然而,這樣的假設有辦法使用 A/B 來驗證嗎?可以說一個地區的民眾醫療自付額較高,另一地區的民眾自付額較低嗎?如果要在全國進行這種實驗,從預算、勞力及倫理層面來看都可想見是很不容易的事情。

然而,在日本有一項政策:

民眾只要滿 70 歲,醫療自負額會從 原本的 3 成減少至 1 成。

因此,假使我們想了解自負額與醫療使用間是否有因果關係,可以推論以下假設:

如果自付額會影響醫療服務的使用,七十歲以上的患者應該會比未滿七十歲的患者更常使用醫療服務。

從圖中 65 歲至 72歲的點狀分佈,可以正面的肯定:「年紀越大健康越容易出問題」的觀點,但是,自 70 歲開始,資料與前一段發生明顯的斷層,而這樣的斷層可以用「年紀越大健康越容易出問題」來解釋嗎?

人不會 70 歲唱完生日快樂歌後,身體狀況突然驟降而大量的需要使用醫療服務,故排除資料的斷層與病理因素的關係,因此,可以做出以下虛無假設:

在 70 歲的斷點上,如果自負額沒有變動,醫療服務的使用人數就不會出現不連續的狀況(斷層)。

換句話說,也就是如果自負額沒有變動,醫療服務的使用資料應該是平滑的曲線,如下方圖中,70 歲右邊的下方虛線。

然而,實際資料卻是如上方的實線與 70 歲左方的線差距了一個斷層,所以我們可以得出,自負額的變動與醫療服務使用之間是因果關係

還是不太懂嗎?好,我們再靠近一點點看。

(咦,不是只是圖放大啦)

斷點迴歸設計其實就是在斷點附近自然發生有如 A/B 測試 的效果,
我們可以將 :

69 歲又 11 個月的人作為〔對照組〕

70 歲又 0 個月的人作為〔實驗組〕

而這兩個群組僅在出生時間上有些微差異(差一到兩個月)。平均而言,生存的社會經濟條件、健康狀況等等各項因素,應該都非常相似,但只是因為生日的些微差距,對照組就要付三成的自負額,實驗組只需要付一成,而這種非常相似的兩個群組,就自然生成了類似 A/ B 測試的效果,即能正向的肯定因果關係。

咦?這麼簡單?

RDD 設計的優點就是可以斷言,只要其他因素(也就是上一部分提到的 V)「不會造成不連續的斷層」,就不會影響分析,就像健康狀況不會在 70 歲突然驟降ㄧ樣。

因此,如果需要使用 RDD 來檢驗因果關係,資料分析者要做的事情就是,檢驗其他因素的資料分布,是否會在斷點處發生不連續的斷層。

同理可證,假使其他因素也在斷點上發生不連續的斷層,例如: 70 歲給付的老人年金提高,這時如果你使用 RDD 來分析,就無法區辨,究竟是因為老人年金給付提高,因此有資金可以使用醫療服務,還是自負額下降的關係了。

RDD 設計也有另一個缺點,就是外在效度低

以這個例子來說,也就是說 RDD 的結果沒有辦法推及至「其他年齡層」的人自付額與醫療使用的關係,或者其他國家 70 歲的人自付額跟醫療使用的關係。

堆集分析 (Bunching Analysis)

生活中有不少東西是呈現階梯狀的變化,例如:商品折扣(滿 3000 打 9 折、滿 5000 打 8 折⋯⋯)、所得稅稅金、政府發放的補助等等,都是成階梯狀(級距)變化。

堆集分析即是利用這種階梯狀變化,從資料導出因果關係的手法。

一樣很難理解對不對,讓我們來看例子。

日本針對汽車的油耗政策,是根據汽車的重量,規定不同的油耗值。車輛越輕,要求的規定越嚴格;反之,車輛越重,要求的規定越寬鬆。

油耗政策成階梯狀這點,有助於分析汽車公司的行為。

假如,某輛車位於規定值平坦的部分(如上圖左),他只要再增加一點重量,就能移動到下一個級距。所以如果企業對油耗政策這個誘因有反應,車輛會集中在規定分界點的右邊(如右圖)。

上圖的階梯狀曲線是油耗規定值,從圖左( 2001–2008)到圖右(2009–2013)規定的區間變窄、變多,同時你也可以發現在階梯的右邊出現資料堆集的狀況,因此我們可以正向地得出:政府規定的油耗值與企業生產的汽車重量有因果關係

跟斷點迴歸設計一樣,必須確定成階梯狀變化的,只有想透過分析釐清的因素 (X) 而已,像在這個例子裡的油耗政策,其他因素的資料並不會呈現階梯狀分佈。

縱橫資料分析 (Panel Data Analysis)

縱橫資料分析也是一種自然實驗法,係針對數個群組數個期間內,收集的資料進行分析。

這裡舉的例子是,移民數與所得稅間的關係。假使今天想知道「提高年平均所得在 A 金額以上的人的所得稅,會不會與移民數之間有因果關係」,我們可以收集以下資料:

比較組(對照組):年平均所得在 A 金額以下的人

介入組(實驗組):年平均所得在 A 金額以上的人

資料一、比較組、介入組在提高所得稅之前的資料

資料二、比較組、介入組在提高所得稅之後的資料

我們可以發現,在 91 年度之前,介入組與比較組之間的資料呈現平行的狀態,然而,當 91 年度介入開始(提高介入組的所得稅)後,介入組的則不再與比較組平行,反而出現了差距,而我們可以將這樣的結果,視為一種介入效果。

縱橫資料分析需要的假設:平行趨勢假設,也就比較組與介入組的長時間資料證明,分佈呈現平行的趨勢。

然而,這樣的資料非常難收集,需要收集兩組資料在數個期間的資料,常常會有資料遺漏、或時間太短不足以推論的狀況,但他也是可以用來作為因果關係推論的自然實驗之一。

最後,

以下表格是上述數據分析方法的優缺總整理

本書介紹的數據分析方法總整理

--

--