數據分析的力量

Phoebe Chen
Feb 11, 2019 · 12 min read

此篇文章為伊藤公一朗《數據分析的力量 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 年度介入開始(提高介入組的所得稅)後,介入組的則不再與比較組平行,反而出現了差距,而我們可以將這樣的結果,視為一種介入效果。

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

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

最後,

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


Whoscall 設計師們的學習筆記

如果我們沒有在搶零食,我們就是在學習的路上

Phoebe Chen

Written by

UX Designer @ Trend Micro

Whoscall 設計師們的學習筆記

如果我們沒有在搶零食,我們就是在學習的路上

More From Medium

More on UX Design from Whoscall 設計師們的學習筆記

More on UX Design from Whoscall 設計師們的學習筆記

Product Design 心法系列 – 何謂 Data-Driven Design

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade