這一句有客人可容易
字數:3435 加入書籤
覺醒失敗後我回山裏種田!
24 結構因果模型(s)
241 基本定義[5][11]
這是一種基於因果圖(casual grah),構建各類因子間因果關係的方法。該方法可以將因果圖轉為結構化等式(structural eations),並通過do算子幹預因果圖,打破混淆因子幹擾,完成因果發現。
那什麽是因果圖呢,這是一個有向無環圖(dag),節點表示因子,有向邊表示因果關係和大小。如下圖a是s的一個示例。其中t為treatnt(即要分析的“因”),y是目標,x是混淆因子。顯然,x的存在幹擾了分析t對y的影響,作者提出通過do算子去除混淆因子x對treatnt的影響,這也是s做因果分析的關鍵。
那具體是怎麽實現的呢?我們需要先了解因果圖裏的經典結構
242 網絡結構與前後門準則[11][12]
三種經典的圖結構
當我們分析x和y的因果關係時,如果存在其他變量z,則它們的關係不外乎以下三種圖結構。
鏈式(a)x > z > y。有 且
叉式(b)x < z > y。同鏈式有 且
v式(c)x > z < y。有 且
那麽針對這三種圖結構,如何輸出x變化對y的影響呢?我們的重點是如何“過濾”變量z對分析的幹擾(這也是因果識別的目標)
2 後門準則該準則對應叉式的圖結構
後門標準(後門準則)如果變量集z滿足1 不包含x的子孫節點;2 阻斷了x到y的所有後門路徑。則稱z滿足x, y的後門準則
後門調整基於後門路徑,通過幹預do算子消除混淆因子的影響,僅使用已知的數據分布,估計變量之間的因果效應
3 前門準則該準則對應鏈式結構
前門標準(前門準則)如果變量集z滿足1 阻斷了x到y的所有路徑;2 x到z之間沒有未阻斷的路徑(x到z不存在後門路徑);3 z到y之間的所有後門路徑都被x阻斷。則稱z滿足x, y的前門準則
前門調整和後門調整類似,通過do算子去除前門路徑(鏈式)的影響
243 示例說明[13]
這兩個準則應該如何使用呢?這裏一個case
背景有一種藥物,對於男士群體而言,使用該藥物後發病率降低。對於女士群體而言,使用該藥物後發病率也會降低。但是,對男女人群一起統計,則結論相反
假設t1表示服藥,t0表示未服藥,y1表示發病的概率,y0表示未發病的概率。顯然 y 1 i t 1 078 < y 1 i t 0 083,這是因為沒有考慮混淆變量“性別”的影響,出現了辛普森悖論。
如下圖,通過後門調整,去除掉性別對服藥的幹擾。則最終 y1idox10832 > y1idox00781,說明服用此藥物確實可以降低發病率。
後麵調整的計算邏輯如下
244 因果識別
當前s模型更多用於因果識別,這是因果推斷伴生的研究課題。其目標是從一係列的因子裏,找出各因子間的因果相關性並輸出因果圖,則後續可根據casual grah分析兩兩因子間的相互影響,揭示因子對結果的多層傳遞性影響。舉個例子[14],我們研究影響產品銷量的因素時,可能存在產品價格、產品屬性、門店信息、市場競爭情況等因子需要考慮。我們可以構建多個類似下圖的因果圖模型,然後通過do算法實現幹預,判斷各因子間存在的因果關係,最終輸出概率最大的因果圖作為識別的結果[15][16]。本文主要關注因果推斷,因果識別不做展開討論,更多示例可參考相關文章[17]
25 潛在結果模型(r)[11]
r關注的是幹預前後的期望變化,即22所述的treatnt effect。該模型不考慮分析所有因子的因果性,隻關注treatnt和outut之間的因果強弱,因此也不需要構建完整了因果圖,而是假設treatnt和outut外的其他因子均為混淆因子,構建粗略的因果圖,通過預測反事實的結果,並於觀測對比來完成因果推斷。
該模型的期望輸出分為四種(ate\att\cate\ite),可根據業務需求選擇。對於for單個研究對象的反事實推斷,模型的目標是計算每一個樣本i的因果效應,即 t1? t0。以33服藥和康複的case為例,t 是否服藥,y 是否康複。我們知道,一個人是無法同時觀測到吃藥和不吃藥對康複的影響,s也無法推測服藥對某個用戶的價值。而r則會根據數據形態(即用戶屬性、曆史表現以及混淆因子“年齡”等)預測實際未發生的行為將產生的結果,從而推斷出ite。同理可得出ate、att、cate。
因為業界很多時候關注的是單個treatnt因子的價值,所以r往往是業界的首選。
251 基本假設
r存在如下3個基本假設[18]
穩定單元幹預值假設(stable unit treatnt vae assution, sutva)任意單元的潛在結果都不會因為其他單元的幹預發生改變而改變,且對於每個單元,其所接受的每種幹預不存在不同的形式或版本,也不會導致不同的潛在結果。以吃藥康複的例子解釋這裏的兩層含義,其一是你吃不吃藥不影響我是否康複;其二是每種幹預是唯一的,吃藥不存在吃很多、吃很少的情況,統一藥量,要考慮藥量就要設置不同的幹預值(即此時幹預變量不能隻是0和1)