兩公司提供的商品價格有極高的相關性等於有合謀操控價格?

tyler

圖: Tyler Vigen

數據愈來愈多,很多人都認為處理數據的技能重要。沒有新聞不需要數據,只是多還是少。人人都談數據新聞 (data journalism) ,數據新聞都是新聞, The Element of Journalism 一書說新聞的第一要務是講出事實的真相 (‘Journalism’s first obligation is to the truth’),意見是很廉價的。要從數據中找事實 (fact) ,例如找出兩條時間序列之間有極高相關性,這只是找出事實。但單單是講出事實,不代表就是事實的真相 (truth, truth is a perception that matches reality) 。如何解讀數據中反映的事實真相,這是科學的範疇。故此,數據新聞記者,除了要有記者所應有對追尋真相的堅持,還要具有一定的科學頭腦,最少要知道數據分析的限制。隨便解讀數據,到頭來就不是講事實的真相,也即是根本不是新聞。

數據新聞應該怎樣去做,我也經過不少折騰。我不太會用數據說故事,曾經寫過 TVB 藝員網絡分析,惹來不少批評。直至今天,仍在為小小稿費折騰,摸著石頭過河,煞是痛苦。故此,以下只是我的少少愚見。我其實建議記者可以就個別議題可找真的專家提供意見,香港其實不缺乏數據新聞的學者和業界人士,而我並不是其中一位。分析商業價格關係,是計量經濟學家 (econometrician) 的知識範疇,他們不僅有分析的能力,更有經濟學的領域知識 (domain knowledge) 。而我,至今也不知我的領域知識有甚麼。曾經寫過物理學,寫讀者不中聽的聲音,也引來批評,指 A Level 物理「揸槍」(不合格)何德何能寫物理學。但最少我坦率承認我物理學考試真的是揸過槍,而不是自稱是甚麼專家。

我有份教新聞系學生統計學,在解釋何謂 Correlation doesn’t imply causation (相關不蘊含因果),會從 tylervigen.com 網站找非常高相關性的時間序列作例子,隨手拿來的例子是美國政府用於科投研究的投資和美國以窒息方法自殺死亡人數的相關性,皮爾森相關系數高達 0.9978 。但是否代表科研會「引致」窒息自殺呢?

最近《香港01》發表了油公司價格相關性的偵查報道,指出油公司的油價相關性極高,故此結論是「合謀嫌疑很大」。當然,這一句話很有可能是他們找出事實後,再去訪問「專家」,是他們發表的意見。但上文已說了,新聞就是追尋事實的真相,而不僅僅是引述意見。

縱使油公司可能有合謀,但指出油公司油價相關性極高並非充份的證據。合謀與否,是一個因果關係的斷言 (causal inference),代表各家油公司因為有合謀定價,所以油價走勢才會如此一致。流行病學家 Austin Bradford Hill 指出,要由兩者具相關性,證明兩者有因果關係,最少要達成九項準則,後世稱為 Bradford Hill’s Criteria 。當然,兩者相關性甚高是其中一個準則,但還有其餘八項。其中一項是事件的先後次序( temporal precedence ),例如我見到吸煙和肺癌有相關性,想要證明吸煙引致肺癌,最少我要證明吸煙一定要先於肺癌,而不是病人有肺癌才去吸煙。如果要由油價的相關性去證明油公司有合謀,最少都要有油公司合謀的證據為先,例如員工爆大鑊泄漏油公司之間合謀的電話錄音、內部泄漏的油公司之間的合約,都是先後次序的證據。

另一個準則,叫專性( specificity ),簡而言之,是兩者有高度相關性沒有其他可能的解釋。兩公司提供的商品價格有極高的相關性( correlation )是否就等於有合謀操控價格?有沒有其他可能的解釋?更合理的解釋不是市場競爭大?假設惠康設立可樂價格的策略是百佳價減一毫子,每天派人格價,惠康同百佳賣可樂價格的皮爾森相關系數會高至 1 ,但不代表百佳同惠康有合謀。合謀的意思是兩者有協商後定價,但在上例是沒有的。

其實分析時間序列統計學上有很多限制,很容易就可以找到極高的相關性,原因之一是每個數據點之間的關係並非獨立,今天的數據是和昨天有關,是違反了一般線性回歸分析的 L.I.N.E. 假設的 I(ndependence of errors) 假設。但由於太過專門,也不便於本文列出了。

《香港01》挖掘事實誠然值得尊敬,但事實和真相的之間的距離,僅一步之遙,錯誤的引導,就只變成更大的疑點。未有充份證據就檢舉,不單止是誤導讀者,疑點利益更是歸於被告,放生了可能真的有作惡的油公司。

數據新聞的十二夜

image

不知為何,寫數據新聞的人都好喜歡寫 Blog 呀、拍 YouTube 之類,講講每件製成品的「製作特輯」。1
如果要講這個任務的一件事,就是我由數據都未有直至周日刊出第二篇文,總時間是十二日。2 在十二天裡,我寫了收集數據的軟件、分析數據的軟件、寫了兩篇 features 、用 gephi 和 ggplot2 畫了很多圖的初稿,還有那個有點急就章的 kumu.io 互動網上版。十二天之內仍要處理個人研究工作、有一天電腦掛了,更有一天人也掛了。期間放工又要每晚上幫忙家中魚塘捕魚作業。故此,那兩篇文章的心血不是某當紅作家口中的「三罐紅牛」所可以量化的。在數據研究方面,基本上我「一支冷」一腳踢搞掂。慶幸明報星期日生活的編採團和美術大佬非常強勁,在繪圖和表達手法提供大量協助,令此兩文可以順利出版。所以,這兩篇文不只是我一個人的功勞,他們也幫了很大的忙。
如果要想想未來此系列的走向,就是應否走完全寫新聞的風格,還是仍保留有評論的風格。純新聞的寫法對我來說有壓力。我比較傾向有點點評論,但評論要是建基於數據分析。
這一篇之後,要先休息一下才執行下一個任務。當前最恐怖的任務是開學後的 TA 工作和處理十月尾去德國參加學術會議的事宜3 ,同時也要持續處理自己的博士研究。明報數據新聞是個定期的專欄,是會再與大家見面的,敬請期待。

  1. 以前有位由 diaryland 識的網友說我是藝術類人士,喜歡表達自己。但事實上,我不太會表達自己,可能是我已過了寫 blog 的熱情期,那個喜歡表達自己的假像已變回不會表達的本尊。 []
  2. github 是有紀錄的 []
  3. 嘩仆街第一次出國的大鄉里 []

工作上三大悶棍字眼

He’s the one
Who likes all our pretty songs
And he likes to sing along
And he likes to shoot his gun
But he knows not what it means

In Bloom, Nirvana

Big Data

其實 Big Data 在 2012 年已經爆了煲,何苦又要再拿出來。在我看來,真真正正的 Big Data 是一般 database 無法儲存的數據,因此分析方法也亦有不同,例如要用到 Online Learning / MapReduce 等等。而拿一點點數據(少於 1TB)作分析,就說自己是 Big Data 其實好好笑。為何不說自己用的方法叫做 Statistics 或 Machine Learning ? 每次有人說自己在做 Big Data ,我會想起街邊賣寬頻的,會說自己是甚麼甚麼顧問。又或者現在興 Dubstep ,就明明自己玩的音樂只是 Cantopop 也說自己的音樂有 Dubstep 完素。
Big Data 已經過期了。別人己在談 Hyperdata ,要追潮流?追死你。

微博

無錯,我的主業真是研究微博。但人人都說要研究微博,那就是 jumping on the bandwagon 。微博真是很多 data ,又有 censor 夠晒 juicy ,但問題是那個 data 有其局限,主因是用微博的多是國內人士,故此那不是萬能銀彈。舉個例,我想是無法用微博的數據來研究颱風海燕對菲律賓的影響。
我也在想 PhD 研究不再分析微博。人是要 moving forward 的,難道那麼多 Social Media 只有新浪微博值得研究?

Big Data

Big Data 是值得講兩次的,由此可見我是如何討厭此物。
其中一種常常有人做的「 Big Data 研究」是數某個 Keyword 出現在 Social Media 的頻次。但請問這種研究證明到甚麼假設呢?那就像一個統計模型只有 x 一樣,這個 keyword 的頻次到底是與甚麼現像 (y) 有關?
我想起以前做醫學研究時,由於醫院永遠只有病人,故此絕大部份的研究都沒有對照組,到頭來甚麼都證明不到。

R intermediate

很多 R 用戶都只覺得自己是初學者,但何謂初學者?
中國人有謙遜的傳統,很多人都會說自己是初學者,但其實很多人都早已超越那個水平。
對我來說,初學者水平就是無法舒適地用 R 去進行任何的工作,無法自行學習 R 的運作。故此,若然你會以上 video 所教的東西,你已經不是初學者。
但由初學者轉為中階用戶( intermediate ),才是最難的部份。
中階用戶的特點是,他能夠有效的自我學習,對 R 工作已感舒適,但仍然有點痛苦。
對中階用戶來說最難的,並不是如何進行 t test 或者 linear regression ,而是普通的數據整理( data munging / data cleansing )作業。
假設數據已經收集好,事實上一般的數據流水線( pipeline ),八成以上的時間都用於數據整理,只有兩成時間用於統計分析、繪圖。
要進行 data munging ,最少要有以下的知識:

  1. 將不同類的數據讀入 R (xls, csv, sav…)
  2. 理解一般 R 數據結構( data structure )的分別: scalar, vector, list, data frame, (次要的還有: matrix, array)
  3. 各種數據結構的操作,如 subset ( indexes )、 substitution 、 sorting 、 cbind 、 rbind 。
  4. logical, factor, numeric, character, NA, NULL 之間的分別, Logical operators
  5. function 的運作
  6. loop-function (即那些 ?apply 、 by 、 split 、 aggregate) 的運作1
  7. [Optional]String manipulation, regular expression
  8. [Optional]瘋狂的 data / time
  9. [Optional]DBI / SQL
  10. [Optional]Connection
  11. [Optional]Object serialization

從 r-help 或 HKRUG 的問題可見,很多人問的問題都是有關以上的東西,這可能是 R 用戶最大的樽頸位。這些問題困難的原因是初學者會覺得不知如何去問問題,到網上 google 也有困難。讀 R 內建的 documentation ,也會出現很多 computer science 才會讀到的字眼。事實上一般的人都沒有基本的 computer science 訓練。例如 lapply 的 document 有如此一句:

a vector (atomic or list) or an expression object. Other objects (including classed objects) will be coerced by base::as.list.

我當然明白這是甚麼,但一般用戶會明白 expression, classed objects, coerced 是甚麼嗎?
上次有關 HKRUG 的問題的確獲得積極回應。最少 HKRUG 的 Facebook Group 成立了。若果未來有可能在 HKRUG 搞些活動,我想分享的就是如何加強以上的十一點,打好根基。

  1. 相對來說, R 的 loop constructs 如 for, while 甚至 recursion 的用途不大。 []

Bradford Hill’s criteria

He’s the one
Who likes all our pretty songs
And he likes to sing along
And he likes to shoot his gun
But he knows not what it means

In Bloom, Nirvana

若果香港有 Epidemiology 教育的話,最失敗之處是將它變成了一門搵食工具,或者 Quotable 的 qualification ,而沒有好好的打好基礎。問題是香港沒有一個行頭叫 Epidemiologist ,有也只是大學內的幾丁友。 Epidemiology 只是為醫護人員加持的光環,一般人在香港讀 Epidemiology 其實很 on9 。不用怕也不用罵,我都 on9 左。
讀 Epidemiology 時,當時的教員只用一張 Slide 講解何謂 Bradford Hill’s criteria ,就有如用一張 Slide 講解 Threats to study validity 一樣。原因是,出來搵食大家也知道研究找出 association 已經要燒豬還神,亦可以大造文章。還說甚麼 causality 簡直是痴人說夢。最緊要即食。
最近流行兩個論調,都是三大主流報章吹出來的。一是「打機引致殺父母」,另一是「反國教引致殺父母」。這些頂多是 association ,因為兇手的確是有打機、有反國教,亦有殺老豆老母,但這是一個因果關係 (causal relationship) 嗎?當然,這種論調是屬於「膠刀肺豉髀」的層次,但作為公眾教育,大家也不妨以「反國教引致殺父母」為例子,再用 Bradford Hill 的理論匣架分析一下。
Hill 氏對 Epidemiology 的貢獻,除了 Randomized Controlled Trial 的設計之外,還有就是在五十年代與 Richard Doll 一起證明吸煙與肺癌的因果關係。他們發現的關係被另一統計巨人 Ronald Fisher 抨擊,但其後的發展證明 Fisher 是錯的。由於吸煙與肺癌的關係被質疑, Hill 引用休膜、波普等等的理論,得出九點 Bradford Hill’s criteria ,用以判定因果關係。其後 Kenneth Rothman 等等證明提倡,若果甲乙之間的關係只合乎 Bradford Hill’s criteria 九點中的部份,並不足以證明甲引致乙。
九點判定是甚麼呢?

1. 甲乙關係的時序性 (Temporality)

要證明甲引致乙,甲一定要發生在乙之前。例如吸煙引致肺癌,必須要證明吸煙者的吸煙習慣要是在肺癌之前發生。若果是純觀測吸煙人士與肺癌的發生機率增加,而忽略時序性,那有可能是病者患上肺癌,為了排解悲痛,於是才開始抽煙。

2. 甲乙的相關度 (Strength of association)

多食一隻雞的人肺癌機會增加 1% ,與多吸一支煙的人肺癌機會增加兩倍。會令人更相信吸煙會引致肺癌,而非食雞會引致肺癌。

3. 甲乙關係的一致度 (Consistence of association)

多食一隻雞的中國人肺癌機會增加 1% ,但多食一隻雞的美國人肺癌機會減少 1% 。可是,無論是多吸一支煙的中國人還是美國人,肺癌機會也增加兩倍。
若果甲乙的關係缺乏一致度,代表甲乙關係只是假相關 (Spurious Association) 。甲乙的關係之間有丙的 confounding factor 。

4. 甲乙關係的用量反應關係 (dose-response relationship)

多食一隻雞的人肺癌機會增加 1% ,但多食十隻雞的人反而肺癌機會減少 5% 。相反,多吸一支煙的人肺癌機會增加兩倍,而多吸十支煙的人肺癌機會增加十倍。這就是 dose-response relationship ,又稱 biological gradient 。

5. 甲乙關係的合理度 (Plausibility)

多食一隻雞的人肺癌機會增加 1% ,是難以用生物學理論解釋。但是多吸一支煙的人肺癌機會增加兩倍,卻可有生物學理論解釋。例如焦油可引致細胞病變。

6. 甲乙關係的同調性 (Coherence)

吸煙引致肺癌,是沒有與其他理論衝突的。例如我們知道癌症是因為吸入過量的致癌物、環境和基因等等因素有關。而吸煙引發癌症並無與此理論衝突。

7. 甲乙關係的可逆性 (Reversibility)

例如多吸一支煙的人肺癌機會增加兩倍。若兩者有因果關係,當某城市進行戒煙運動,患肺癌人數亦會減少。

8. 甲乙關係的類比 (Analogy)

與吸煙相類似的情況也會引致癌症。例如吸二手煙。又例如將焦油抹在兔耳上,也會引致癌病變。

9. 甲乙關係的特異性 (Specificity)

絕大部份的肺癌都幾乎是由吸煙引起。這個 criterion 是最弱的,原因是事情可以由多種原因所引致。因此,若要證明甲引致乙,必先要將其他可能的 alternative explanations 排除。

根據以上九點,「反國教引致殺父母」事例我只看到合乎時序性。其他要不完全無效 (例如龐大的反國教市民只有一人殺父母、更大力反國教的學民思潮成員沒有殺父母的傾向、殺父母狂徒殺人的原因有反國教以外的解釋) ,就是難以評定 (反國教引致殺父母傾向有何類比情況,亦有沒有任何心理學、生物學的解釋?) 。若然只合乎時序性就代表有因果關係,食飯也是先於兇手殺父母,故此食飯會引致人殺父母。
外國這類討論已經很成熟,例如校園槍擊的原因被指是暴力遊戲甚至是 Marilyn Manson ,但這些指控都不乎 Bradford Hill’s criteria 。米高摩亞的電影 Bowling for Columbine 的戲名,就是此類指控的戲謔。 Columbine 槍擊案兇手在行兇當天的早上參加了保齡球班,故此 Columbine 槍擊案的原因應該是保齡球。人們提出這類指控,除了抹黑之外,就是用作模糊焦點。以美國為例,將校園槍擊的原因歸咎於暴力遊戲,卻令人忘記了槍械管制的問題。