想象一下下面這個場景。
你和你的小夥伴準備找個地方搓一頓,但在兩家餐廳的選擇上爭執不休。
於是乎,秉持“資料驅動人生”的你倆搬出了小眾點評網的評分資料。
你發現,你想去的這家餐廳的評分果然比另一家高。
正當你得意不已的時候,你的小夥伴宣佈了他的發現:另一家餐廳的評分更高。
這是咋回事呢?莫非評論網站的資料還出錯了不成?
事實上,你和你的小夥伴都是對的,你們只是在不知不覺中掉進了辛普森悖論的詭計。
在辛普森悖論中,餐館可以同時比競爭對手更好或更差,鍛鍊可以降低和增加疾病的風險,同樣的資料集能夠用於證明兩個完全相反的論點。
相比於晚上出去大餐,你和小夥伴也許更值得討論這個吸引人的統計現象。
辛普森悖論指的是,資料集分組呈現的趨勢與資料集聚合呈現的趨勢相反的現象。
在上面餐廳推薦的例子中,你可以通過看男性和女性各組的評分,也可以看整體的評分。如下圖所示。
圖中資料清楚地表明,當單獨考慮每組資料時,結果顯示Carlo’s 優勝,但當合並資料後,結果卻是Sophia’s 優勝!
這怎麼可能呢?這裡的問題在於,只檢視單獨各組資料的百分比會忽略掉樣本的大小,也就是評論者的人數。每個百分比都由推薦使用者數與相對應的評論人數計算得到。Carlo’s 有更多的男性評論者,而Sophia’s 有更多的女性評論者,因此導致了矛盾的結果。
要想回答該去哪家餐廳的問題,我們需要考慮資料是否可以合併,或者是否應該單獨考慮。我們是否應該合併資料取決於資料的生成過程——即資料的因果模型。在下一個例子中,我們將介紹這一具體含義以及如何解決辛普森悖論。
相關性反轉
辛普森悖論的另一個有趣的現象表現在,分層組資料表現的相關性方向與整體資料表現的相關性方向截然相反。我們來看一個簡化後的例子。假設我們有每週運動小時數與兩組患者(分別為50歲以下和50歲以上的患者)患病風險的對比資料。以下是各組運動資料與患病可能性的散點圖。
從圖中我們可以清楚地看到資料負相關,表明增加每週運動量與兩組患者患病率的風險降低相關。下面讓我們將資料合併在一起再來看看他們的關係:
相關性完全逆轉了!如果只給出這張圖結果,我們會得到這樣的結論:運動增加了患病風險,這與我們從分層資料散點圖中得到的結論完全相反。
運動如何既減少又增加疾病風險呢?其實並不然,要想弄清如何解決這個悖論,我們需要從資料的生成過程來考慮展示的資料和原因——是什麼產生了這些結果。
解決悖論
為了避免辛普森悖論導致得出兩個相反的結論,我們需要選擇將資料分組還是合併。這聽起來似乎很簡單,但到底應該如何抉擇?答案就是因果性思考:資料是如何產生的?並且在此基礎上,哪些我們沒看到的因素在影響結果?
在運動與疾病的例子中,我們直觀地知道運動不是影響發病率的唯一因素。這裡還有其他因素,如飲食、環境、遺傳因素等。但是,在上圖中,我們只看到了發病率與運動時間的關係。在這個假設的例子中,我們假設疾病是由運動和年齡引起的。用下面的疾病概率的因果模型來表示他們的關係。
資料中存在兩種不同的因素與發病率相關,但對於彙總後的資料,我們只觀察了發病率與運動時間的關係,卻完全忽略了第二個因素——年齡。如果我們進一步畫出發病率與年齡的關係,就能發現患者的年齡與發病率強相關。
隨著患者年齡的增加,她/他患病的風險隨之增加,這表明即使運動量相同情況下,年長者也比年輕者更容易患病。因此,為了單獨評估運動對疾病的真正影響,我們希望保持患者的年齡不變,並改變每週運動量。
一種實現的方式是將資料分成幾組,通過這種方式,我們可以看到,對於給定年齡組,運動可以降低患病風險。也就是說,在控制年齡因素的情況下,運動與低患病率相關。根據資料生成過程和應用因果模型,我們可以通過資料分層來控制附加因素解決辛普森悖論。
思考需要回答的問題也可以幫助我們解決悖論。在餐廳的例子中,我們想知道哪家餐廳最有可能讓我和小夥伴都滿意。雖然除了餐廳本身質量,還可能存在其他因素影響評論,但在沒有這些潛在資料的情況下,我們希望將所有評論結合在一起來看看整體平均結果。在這種情況下,分析合併後的資料更有意義。
在運動與疾病案例中需要提出的相關問題是,我們自己是否應該增加運動來減少個體患病風險?由於我們的年齡或者處於小於50/大於50兩個區間內(這裡不考慮年齡正好為50歲的情況),我們需要根據具體年齡觀察對應的資料組,而且無論我們屬於哪組,結論都顯示確實應該多鍛鍊。
想想資料生成過程,要回答我們的問題所需要的不僅僅是觀察資料本身。這幾乎揭示了辛普森悖論中最關鍵的一點:資料本身是不夠的。資料從來都不是完全客觀的,特別是當我們只看最後展示的圖表時,我們需要考慮是否看到了全貌。
我們可以嘗試觀察得更全面,通過思考什麼生成了資料,又有哪些未展示因素對資料產生了影響。這些問題的回答常常揭示著我們實際應該得出完全相反的結論!
現實生活中的辛普森悖論
辛普森悖論與其它一些統計概念不同,它並非是人為發明的純理論概念,在現實生活中會實實在在地發生。
事實上,已經有很多著名的辛普森悖論案例了。
其中一個案例是關於兩種腎結石治療效果的資料。單獨看治療效果方面的資料,A療法對治療兩種大小的腎結石的效果都更好,但是將資料合併後發現,B療法針對所有情況的療效更優。下表展示了康復率:
這怎麼可能呢?這個悖論可以用涉及相關專業知識的資料生成過程,或者說因果模型,來解決。若小結石被視為不嚴重的病症,那麼A療法相較B療法開的創口更大。因此,對於小結石,醫生們常推薦B療法,由於病情本身也不嚴重,因此病人康復率也較高。但對於嚴重的大結石,醫生們常選用創口更大、療效也更好的A療法。雖然A療法在針對這些病症時表現得更好,但由於情況更嚴重,整體的康復率還是比B療法要差一些。
在這則現例項子中,腎結石的大小,或者說病症的嚴重性,被稱為混淆因子;它對自變數(治療方法)和因變數(康復率)都有影響。我們在資料表裡是看不到混淆因子的,但它們可以體現在因果關係圖中:
這個例子中的結果,康復率,受到療法和結石大小(病症嚴重性)的雙重影響。此外,療法的選擇取決於結石的大小,從而結石大小是一個混淆因子。要找到究竟哪種療法效果更好,我們需要控制混淆因子,進行分組對比康復率,而非對不同的群組資料進行簡單合併。這樣,我們得出結論,A療法更優秀。
或者還可以這樣看待這個問題:對小結石而言,A療法更優;嚴重一些的大結石,依然是A療法更優。因此,不論結石的大小程度,A療法總是最優——悖論解決。
合併資料有時很有用,但有些情況下卻對真實情況產生了干擾。
證明一個論點,又能證明其相反的觀點
辛普森悖論也是政客們的常用伎倆。
下面這個例證展示了,辛普森悖論是如何證明兩個相反的政治觀點的。
下表表明,在福特總統的1974~1978年的任期中,他對每個收入人群都進行了減稅,但此期間全國性的稅收額有明顯上漲。資料展示如下:
我們可以清晰地看到1974-1978年間,每個納稅區間的稅率都有所下降,但整體稅率卻上升了。現在,我們知道了如何解決悖論:尋找影響整體稅率的其它因素。整體稅率不僅受每個納稅區間影響,還取決於每個納稅區間的可徵稅收入數額。因通貨膨脹影響(名義工資上漲),1978年有更多的收入落入更高稅率的稅收區間,而收入落入較低稅率的稅收區間有所下降,因此整體稅率有所上漲。
是否要合併資料,取決於在資料生成過程之外,還包括我們想了解什麼問題,又或者是我們的政治觀點究竟是什麼。從個人角度來說,我們只是一個個體,關心的是在個人的稅收區間內的稅率。要搞清楚從1974年到1978年間,個人所得稅到底有沒有增長,必須要弄清楚我們稅收區間的稅率是否發生了變化,以及我們的稅收區間是否到了一個新的區間中。個人所得稅受兩個因素影響,但這張表格的資料只展示了其中一個。
辛普森悖論有何意義
辛普森悖論的重要性在於它揭示了我們看到的資料並非全貌。我們不能滿足於展示的數字或圖表,我們需要考慮整個資料生成過程,考慮因果模型。一旦我們理解了資料產生的機制,我們就能從圖表之外的角度來考慮問題,找到其它影響因素。大部分資料科學家並沒有學習因果思考的模式,而這種思考模式對我們而言至關重要,因為它能防範我們從資料中得出錯誤結論。除了使用資料,我們需要運用經驗和業務知識,或者向專家學習,來更好地進行決策。
此外,雖然我們的直覺常常很準,但在現有資訊不全的情況下直覺還是會不準。我們傾向於對只關注眼前的東西(所見即所得)而不是用我們理性而遲緩的思考去挖掘更深層的東西。我們需要對數字本身持懷疑態度,尤其是當別人想向我們營銷產品或專案計劃時。
資料是一個有力的武器,它既能被用來澄清現實,也能被用來混淆是非。