序章嘛咱多嘮兩句。花了大半個月才反反覆覆,斷斷續續讀完了圖靈獎得主Judea Pearl的The Book of WHY,感受先讀第四章的案例會更容易理解前三章相對抽象的內容。工做中對於歸因問題迫切的需求,以及這兩年深度學習在,都讓我對因果推理在將來幾年的爆發心懷但願。它最大的優點就是能回答'爲何'以及'假如這樣作會怎樣'等對實際業務有着根本意義的問題。對於這個領域我也是新人,因此只能拋出一些觀點來供你們討論。學習
Now!檢驗我帶貨能力的時候到了,若是你在和數據打交道的過程當中也碰到過如下的問題,那我也向你推薦這本書。它不必定能解答你的問題,但至少能讓你明白問題的根源:spa
如何解釋數據分析中有違常理或者自相矛盾的結論?爲何把數據分組和總體計算會獲得不一樣的結果?
Eg. 藥物實驗結果代表對高血壓患者藥物無效,對低血壓患者藥物也無效,但合起來對所有患者藥物有效?3d
已知特徵\(X=x_1\)的樣本呈現\(Y=y_1\)的特色,或者\(Y=y_1\)的樣本有\(X=x_1\)的特徵,如何計算干預X對Y的影響
Eg. 看快手視頻喜歡評論的用戶活躍程度更高,那引導用戶去發表評論能讓他們更活躍麼?視頻
建模特徵應該如何選擇,以及特徵經過那些途徑最終影響Y
我的並不喜歡有啥放啥的建模方式,既增長模型不穩定性還會增長特徵解釋的難度。尤爲在業務中咱們更多想知道的是不一樣特徵影響Y的方式blog
沒法開展AB實驗的時候,咱們如何從觀測數據中近似因果關係
Eg. 最常遇到這種問題的是社會學,醫學實驗,例如當兵經歷對收入的影響。但這也提醒咱們有些成本高的AB實驗實際上是有可能從已有數據中找到近似答案的。ci
這裏簡單列幾個因果推理和統計學的差別,咱們在以後的章節會逐一展開:get
統計學解決的是P(Y|X),它更可能是對觀測的刻畫。而因果推理旨在解決What-if問題,用Do-Caculus來表達就是P(Y|do(X)),既對X進行干預,對Y的影響。一個同事開玩笑說因果推理就像開啓上帝之眼深度學習
統計學認爲數據是一切,而因果推理堅持數據產生的過程是解釋數據所必須的。想直觀感覺差別的能夠看下這個 Toy Example數據分析
統計徹底客觀,而因果推理須要依賴基於經驗等因素給出因果圖(DAG)再進行分析計算。it
做爲序章最重要的是什麼?吸引人眼球!因此本章經過5個數據分析中經典案例,看看當統計陷入兩難,因果推理是如何變身奧特曼來打小怪獸的!
如下案例只爲直觀感覺因果推理的現實意義,暫不考慮統計顯著,小樣本不置信等問題
Confounding在數據分析中很是常見,既存在同時影響treatment和outcome的變量沒有被控制,它是統計分析要控制變量的根本緣由之一,是AB實驗有效的背後邏輯,它也直接致使了\(P(Y|X) \neq p(Y|do(x))\)。但每每Confounder的存在只有在分析結果嚴重不符合邏輯時才被人們想到。
如下是一次觀測性醫學實驗的結果,分別給出男性和女性在服/不服用藥物後心髒病發做的機率。有趣的是這種藥物既不能顯著下降女性病發機率,也不能顯著下降男性病發機率,但卻能下降總體的病發機率,你是分析師請問這種藥物有用麼?
答案是NO,這種藥物無效
這就是著名的Simpson Paradox。用上面的因果圖(DAG)分析結論會變得顯而易見。這裏treatment是服藥,outcome是心臟病發做的機率,而由於是觀測性實驗因此性別可能會成爲confounder。注意這裏我用的是可能。而驗證這種可能性就要看性別是否同時影響treatment和outcome。先看treatment,女性是對照組20,實驗組40,而男性是對照組40,實驗組20。所以性別顯著影響treatment的滲透率 -服藥人羣比例。再看outcome,同在對照組女性病發率是5%而男性是30%,所以性別同時影響outcome-病發機率。
所以衡量treatment(服藥)對outcome(心臟病發做)的影響,咱們須要控制confounder。這樣整體的發病率計算以下:
\[ P(treatment|outcome) = P(treatment|outcome, 男) * P(男) + P(treatment|outcome, 女) * P(女) \]
對照組的總體效果變爲 0.5 * 5% + 0.5 * 40% = 17.5%
實驗組的總體效果變爲 0.5 * 7.5% + 0.5 * 40% = 23.75%
這樣總體就和男女分別的結論一致,服藥並不能下降心臟病發機率。
在上面的例子中confounder是個離散變量男女。下面咱們舉個連續confounder的例子。研究目標是每週運動時間對膽固醇水平的影響。‘影響’在統計學中多數只能依賴於相關關係,因而咱們畫個散點圖吧。
嗯?!運動時間越長,膽固醇水平越高!You What?! 這簡直是厭惡運動,堅持生命在於靜止的最好理由。
下一次根據統計結果給出結論時,不管結果和你的預期 [直覺|第六感|推理|經驗] 多麼一致,都記得多想一步喲。看看本身是否遺漏了可能的confounder呢?
Mediation Bias最常發生在控制了不應控制的變量而致使影響被人爲削弱。在傳通通計學中,由於沒有引入因果推理,本着控制一切能控制的變量來作分析的原則,每每會在不經意間踩進Mediation的深坑。同時Mediation Analysis也是AB實驗後續分析中有很高實用價值的一個方向,有機會咱在AB實驗高端玩法系列中好好聊聊。
還記得上面心臟病藥物實驗麼?當時咱們給出的結論是應該分男女分別計算實驗效果,由於性別是藥物效果的Confounder。這裏讓咱們把性別因素換成患者血壓,並以此告訴你們分組計算並非永遠正確的。
數據和案例1同樣,只不過這裏的分組變量變成了患者血壓。
這裏加入新的假設,已知高血壓是致使心臟病發做的緣由之一,且該藥物理論上有降血壓的效果,所以醫生想要檢驗該藥物對防治心臟病的效果。
由於是觀測性實驗,若是從傳統分析的角度,咱們彷佛應該控制一切能控制的變量,保證人羣一致。但根據假設,結合數據咱們能發現服藥患者中高血壓佔比顯著降低,這時降血壓成爲藥物下降心臟病發做的一個Mediator,也就是部分藥物效果經過下降血壓來下降心臟病發機率。因果圖以下
這種狀況下若是咱們按血壓對患者分組,至關於Condition on Mediator,人爲剔除了藥物經過控制血壓保護心臟的效果,會形成藥物影響被人爲低估。所以應該合併計算,藥物對控制心臟病是有效的。
在分析觀測數據時,並不是一切變量都應該被控制。 一切處於treatment和outcome因果路徑上的變量都不該該被控制。這裏直接計算總體效果是合理的
Collidar 最直觀的影響是僞相關關係, 每每發生在對局部樣本進行分析時,由於忽略了樣本自己的特色從而獲得一些很是奇葩的相關關係。
1959年的一項關於新生兒的研究中出現了有趣的數據:
這是正正得負的節奏。。。>_<
還記得上面咱們說Collidar Bias最容易在分析局部樣本時發生,而這裏體重太輕的新生兒明顯就是局部樣本。讓咱們畫一個最簡單的因果圖答案就很明顯了。
經過只觀察體重太輕的新生兒存活率,咱們一腳踩進了Collidar='出生體重太輕'這個陷阱,由於Condition on Collidar,從而讓兩個原本無關的緣由出現了負向關係。簡單講,就是新生兒缺陷和媽媽吸菸都有可能致使新生兒體重太輕,兩個因素此消彼長,當已知媽媽吸菸的時候,新生兒缺陷的機率會降低。而天生缺陷致使的體重太輕對嬰兒存活率的影響更大是一個合理推斷。所以孕媽媽吸菸反而會致使存活率上升。
上面的DAG並不完整,好比媽媽吸菸也有可能直接引發新生兒缺陷等等。但至少Collidar的存在在這裏是頗有說服力的
由於Collidar而產生僞關聯的變量每每是負相關的,就像上面的例子,也稱explain-away effect。簡單理解就是A,B都致使Collidar,那控制Collidar,A多了B就少了。但下面這個例子倒是Collidar產生僞正向關係。
觀察數據不難發現,對普通百姓而言患呼吸道疾病和骨科疾病沒啥關係。但若是隻看住院患者,患呼吸道疾病的患者同時患骨科疾病的機率會顯著提高3倍以上!
這個案例的DAG很好畫,可是爲何這裏不是負效應而是正效應呢?一種解釋是單獨呼吸疾病,或者骨科疾病直接致使住院的機率都很小,所以這裏對於Collidar=‘住院’,兩種疾病造成互補效應而非替代效應,既同時患有兩種疾病的患者住院機率更高。所以只看住院患者就產生了僞正向關係。
上述DAG並非惟一的可能,也有多是患者的其餘疾病致使住院的同時,致使患呼吸道和骨科疾病的機率上升。Anyway只看到以上數據是沒法給出結論的,所以在分析局部樣本的時候請格外當心
序章的案例就分享這麼多,開始懷疑人生了有沒有?!
Ref