CausalML
是一個 Python 包,它使用基于最新研究的機器學習算法提供一套提升建模和因果推理方法。它提供了一個標準界面,允許用戶從實驗或觀察數據中估計條件平均處理效應 (CATE),也稱為個體治療效應 (ITE)。從本質上講,它估計了干預 W 對具有觀察到特征 X 的用戶的結果 Y 的因果影響,而無需對模型形式進行強有力的假設。
在本節中,我們將更深入地探究CausalML中所實現的算法。
我們采用內曼 - 魯賓潛在結果框架,并假定Y代表結果,W代表處理分配, X i X_i Xi? 代表觀測到的協變量。
支持的算法
CausalML
目前支持以下方法:
- 基于樹的算法
- 基于KL散度、歐幾里得距離和卡方的提升隨機森林
- 基于上下文處理選擇的提升隨機森林
- 基于delta-delta-p(ΔΔP)準則的提升隨機森林(僅適用于二叉樹和二分類問題)
- 基于IDDP的提升隨機森林(僅適用于二叉樹和二分類問題)
- 交互樹(僅適用于二叉樹和二分類問題)
- 因果推斷樹(僅適用于二叉樹和二分類問題)
- 元學習器算法
- S - 學習器
- T - 學習器
- X - 學習器
- R - 學習器
- 雙穩健(DR)學習器
- 工具變量算法
- 兩階段最小二乘法(2SLS)
- 雙穩健工具變量(DRIV)學習器
- 基于神經網絡的算法
- CEVAE
- DragonNet
- 處理優化算法
- 反事實單元選擇
- 反事實價值估計器
元學習器算法
元算法(或元學習器)是一種框架,它利用任意機器學習估計器(稱為基學習器)來估計條件平均處理效應(CATE)。
元算法要么使用單個基學習器,并將處理指示變量作為一個特征(例如S - 學習器),要么為處理組和對照組分別使用多個基學習器(例如T - 學習器、X - 學習器和R - 學習器)。
S - 學習器
S - 學習器使用單個機器學習模型按如下方式估計處理效應:
- 階段1:使用機器學習模型,借助協變量X和處理指示變量W來估計平均結果 μ ( x ) \mu(x) μ(x):
μ ( x , w ) = E [ Y ∣ X = x , W = w ] \mu(x, w)=E[Y|X = x, W = w] μ(x,w)=E[Y∣X=x,W=w] - 階段2:將CATE估計定義為:
τ ^ ( x ) = μ ^ ( x , W = 1 ) ? μ ^ ( x , W = 0 ) \hat{\tau}(x)=\hat{\mu}(x, W = 1)-\hat{\mu}(x, W = 0) τ^(x)=μ^?(x,W=1)?μ^?(x,W=0)
在模型中納入傾向得分可減少由正則化引發的混雜偏差。
當對照組和處理組在協變量方面差異很大時,單個線性模型不足以對對照組和處理組特征的不同相關維度及平滑度進行編碼。
T - 學習器
T - 學習器由以下兩個階段組成:
- 階段1:使用機器學習模型估計平均結果 μ 0 ( x ) \mu_0(x) μ0?(x)和 μ 1 ( x ) \mu_1(x) μ1?(x):
μ 0 ( x ) = E [ Y ( 0 ) ∣ X = x ] \mu_0(x)=E[Y(0)|X = x] μ0?(x)=E[Y(0)∣X=x]
μ 1 ( x ) = E [ Y ( 1 ) ∣ X = x ] \mu_1(x)=E[Y(1)|X = x] μ1?(x)=E[Y(1)∣X=x] - 階段2:將CATE估計定義為:
τ ^ ( x ) = μ ^ 1 ( x ) ? μ ^ 0 ( x ) \hat{\tau}(x)=\hat{\mu}_1(x)-\hat{\mu}_0(x) τ^(x)=μ^?1?(x)?μ^?0?(x)
X - 學習器
X - 學習器是T - 學習器的擴展,由以下三個階段組成:
- 階段1:使用機器學習模型估計平均結果 μ 0 ( x ) \mu_0(x) μ0?(x)和 μ 1 ( x ) \mu_1(x) μ1?(x):
μ 0 ( x ) = E [ Y ( 0 ) ∣ X = x ] \mu_0(x)=E[Y(0)|X = x] μ0?(x)=E[Y(0)∣X=x]
μ 1 ( x ) = E [ Y ( 1 ) ∣ X = x ] \mu_1(x)=E[Y(1)|X = x] μ1?(x)=E[Y(1)∣X=x] - 階段2:基于 μ 0 ( x ) \mu_0(x) μ0?(x)為處理組中的用戶i估算用戶級處理效應 D i 1 D_{i1} Di1?,基于 μ 1 ( x ) \mu_1(x) μ1?(x)為對照組中的用戶j估算用戶級處理效應 D j 0 D_{j0} Dj0?:
D i 1 = Y i 1 ? μ ^ 0 ( X i 1 ) D_{i1}=Y_{i1}-\hat{\mu}_0(X_{i1}) Di1?=Yi1??μ^?0?(Xi1?)
D i 0 = μ ^ 1 ( X i 0 ) ? Y i 0 D_{i0}=\hat{\mu}_1(X_{i0})-Y_{i0} Di0?=μ^?1?(Xi0?)?Yi0?
然后使用機器學習模型估計 τ 1 ( x ) = E [ D 1 ∣ X = x ] \tau_1(x)=E[D_1|X = x] τ1?(x)=E[D1?∣X=x]和 τ 0 ( x ) = E [ D 0 ∣ X = x ] \tau_0(x)=E[D_0|X = x] τ0?(x)=E[D0?∣X=x]。
- 階段3:通過 τ 1 ( x ) \tau_1(x) τ1?(x)和 τ 0 ( x ) \tau_0(x) τ0?(x)的加權平均來定義CATE估計:
τ ( x ) = g ( x ) τ 0 ( x ) + ( 1 ? g ( x ) ) τ 1 ( x ) \tau(x)=g(x)\tau_0(x)+(1 - g(x))\tau_1(x) τ(x)=g(x)τ0?(x)+(1?g(x))τ1?(x)
其中 g ∈ [ 0 , 1 ] g\in[0, 1] g∈[0,1]。我們可以將傾向得分用于 g ( x ) g(x) g(x)。
R - 學習器
R - 學習器使用結果的交叉驗證折外估計 m ^ ( ? i ) ( x i ) \hat{m}^{(-i)}(x_i) m^(?i)(xi?)和傾向得分 e ^ ( ? i ) ( x i ) \hat{e}^{(-i)}(x_i) e^(?i)(xi?)。它由以下兩個階段組成:
- 階段1:使用交叉驗證通過機器學習模型擬合 m ^ ( x ) \hat{m}(x) m^(x)和 e ^ ( x ) \hat{e}(x) e^(x)。
- 階段2:通過最小化R - 損失 L ^ n ( τ ( x ) ) \hat{L}^n(\tau(x)) L^n(τ(x))來估計處理效應:
L ^ n ( τ ( x ) ) = 1 n ∑ i = 1 n ( ( Y i ? m ^ ( ? i ) ( X i ) ) ? ( W i ? e ^ ( ? i ) ( X i ) ) τ ( X i ) ) 2 \hat{L}^n(\tau(x))=\frac{1}{n}\sum_{i = 1}^{n}((Y_i-\hat{m}^{(-i)}(X_i))-(W_i-\hat{e}^{(-i)}(X_i))\tau(X_i))^2 L^n(τ(x))=n1?i=1∑n?((Yi??m^(?i)(Xi?))?(Wi??e^(?i)(Xi?))τ(Xi?))2
其中 e ^ ( ? i ) ( X i ) \hat{e}^{(-i)}(X_i) e^(?i)(Xi?)等表示未使用第i個訓練樣本做出的折外留出預測。
雙穩健(DR)學習器
DR - 學習器通過在兩個階段交叉擬合雙穩健得分函數來估計CATE,步驟如下。我們首先將數據 { Y , X , W } \{Y, X, W\} {Y,X,W}隨機劃分為3個分區 { Y i , X i , W i } \{Y_i, X_i, W_i\} {Yi?,Xi?,Wi?}, i = { 1 , 2 , 3 } i = \{1, 2, 3\} i={1,2,3}。
- 階段1:使用 { X 1 , W 1 } \{X_1, W_1\} {X1?,W1?}通過機器學習擬合傾向得分模型 e ^ ( x ) \hat{e}(x) e^(x),并使用 { Y 2 , X 2 , W 2 } \{Y_2, X_2, W_2\} {Y2?,X2?,W2?}通過機器學習為已處理和未處理用戶擬合結果回歸模型 m ^ 0 ( x ) \hat{m}_0(x) m^0?(x)和 m ^ 1 ( x ) \hat{m}_1(x) m^1?(x)。
- 階段2:使用 { Y 3 , X 3 , W 3 } \{Y_3, X_3, W_3\} {Y3?,X3?,W3?}通過機器學習從以下偽結果擬合CATE模型 τ ^ ( X ) \hat{\tau}(X) τ^(X):
? = W ? e ^ ( X ) e ^ ( X ) ( 1 ? e ^ ( X ) ) ( Y ? m ^ W ( X ) ) + m ^ 1 ( X ) ? m ^ 0 ( X ) \phi=\frac{W-\hat{e}(X)}{\hat{e}(X)(1 - \hat{e}(X))}(Y-\hat{m}_W(X))+\hat{m}_1(X)-\hat{m}_0(X) ?=e^(X)(1?e^(X))W?e^(X)?(Y?m^W?(X))+m^1?(X)?m^0?(X) - 階段3:再次重復階段1和階段2兩次。首先使用 { Y 2 , X 2 , W 2 } \{Y_2, X_2, W_2\} {Y2?,X2?,W2?}、 { Y 3 , X 3 , W 3 } \{Y_3, X_3, W_3\} {Y3?,X3?,W3?}和 { Y 1 , X 1 , W 1 } \{Y_1, X_1, W_1\} {Y1?,X1?,W1?}分別用于傾向得分模型、結果模型和CATE模型。然后使用 { Y 3 , X 3 , W 3 } \{Y_3, X_3, W_3\} {Y3?,X3?,W3?}、 { Y 2 , X 2 , W 2 } \{Y_2, X_2, W_2\} {Y2?,X2?,W2?}和 { Y 1 , X 1 , W 1 } \{Y_1, X_1, W_1\} {Y1?,X1?,W1?}分別用于傾向得分模型、結果模型和CATE模型。最終的CATE模型是這3個CATE模型的平均值。
雙穩健工具變量(DRIV)學習器
我們將DR - 學習器的思路與局部平均處理效應(LATE)的雙穩健得分函數相結合,以估計條件LATE。為此,我們首先將數據 { Y , X , W , Z } \{Y, X, W, Z\} {Y,X,W,Z}隨機劃分為3個分區 { Y i , X i , W i , Z i } \{Y_i, X_i, W_i, Z_i\} {Yi?,Xi?,Wi?,Zi?}, i = { 1 , 2 , 3 } i = \{1, 2, 3\} i={1,2,3}。
- 階段1:使用 { X 1 , W 1 , Z 1 } \{X_1, W_1, Z_1\} {X1?,W1?,Z1?}為已分配和未分配用戶擬合傾向得分模型 e ^ 0 ( x ) \hat{e}_0(x) e^0?(x)和 e ^ 1 ( x ) \hat{e}_1(x) e^1?(x),并使用 { Y 2 , X 2 , Z 2 } \{Y_2, X_2, Z_2\} {Y2?,X2?,Z2?}通過機器學習為已分配和未分配用戶擬合結果回歸模型 m ^ 0 ( x ) \hat{m}_0(x) m^0?(x)和 m ^ 1 ( x ) \hat{m}_1(x) m^1?(x)。分配概率 p Z p_Z pZ?既可以由用戶提供,也可以來自一個簡單模型,因為在大多數用例中,分配從設計上就是隨機的。
- 階段2:使用 { Y 3 , X 3 , W 3 } \{Y_3, X_3, W_3\} {Y3?,X3?,W3?}通過最小化以下損失函數,通過機器學習擬合條件LATE模型 τ ^ ( X ) \hat{\tau}(X) τ^(X):
L ( τ ^ ( X ) ) = E ^ [ ( m ^ 1 ( X ) ? m ^ 0 ( X ) + Z ( Y ? m ^ 1 ( X ) ) p Z ? ( 1 ? Z ) ( Y ? m ^ 0 ( X ) ) 1 ? p Z ? ( e ^ 1 ( X ) ? e ^ 0 ( X ) + Z ( W ? e ^ 1 ( X ) ) p Z ? ( 1 ? Z ) ( W ? e ^ 0 ( X ) ) 1 ? p Z ) τ ^ ( X ) ) 2 ] L(\hat{\tau}(X))=\hat{E}[(\hat{m}_1(X)-\hat{m}_0(X)+\frac{Z(Y-\hat{m}_1(X))}{p_Z}-\frac{(1 - Z)(Y-\hat{m}_0(X))}{1 - p_Z}-(\hat{e}_1(X)-\hat{e}_0(X)+\frac{Z(W-\hat{e}_1(X))}{p_Z}-\frac{(1 - Z)(W-\hat{e}_0(X))}{1 - p_Z})\hat{\tau}(X))^2] L(τ^(X))=E^[(m^1?(X)?m^0?(X)+pZ?Z(Y?m^1?(X))??1?pZ?(1?Z)(Y?m^0?(X))??(e^1?(X)?e^0?(X)+pZ?Z(W?e^1?(X))??1?pZ?(1?Z)(W?e^0?(X))?)τ^(X))2] - 階段3:與DR - 學習器類似,使用不同的分區排列再次重復階段1和階段2兩次進行估計。最終的條件LATE模型是這3個條件LATE模型的平均值。
基于樹的算法
提升樹
提升樹方法由一組使用基于樹的算法的方法構成,其分裂準則基于提升差異。提出了三種不同方式來量化分裂導致的散度增益:
D g a i n = D a f t e r s p l i t ( P T , P C ) ? D b e f o r e s p l i t ( P T , P C ) D_{gain}=D_{aftersplit}(P_T, P_C)-D_{beforesplit}(P_T, P_C) Dgain?=Daftersplit?(PT?,PC?)?Dbeforesplit?(PT?,PC?)
其中 D D D衡量散度, P T P_T PT?和 P C P_C PC?分別指處理組和對照組中感興趣結果的概率分布。該軟件包中實現了三種量化散度的不同方式:KL散度、歐幾里得距離和卡方。
KL散度
Kullback - Leibler(KL)散度由下式給出:
K L ( P : Q ) = ∑ k = l e f t , r i g h t p k log ? p k q k KL(P:Q)=\sum_{k = left, right}p_k\log\frac{p_k}{q_k} KL(P:Q)=k=left,right∑?pk?logqk?pk??
其中 p p p是處理組中的樣本均值, q q q是對照組中的樣本均值, k k k表示計算 p p p和 q q q所在的葉子節點。
歐幾里得距離
歐幾里得距離由下式給出:
E D ( P : Q ) = ∑ k = l e f t , r i g h t ( p k ? q k ) 2 ED(P:Q)=\sum_{k = left, right}(p_k - q_k)^2 ED(P:Q)=k=left,right∑?(pk??qk?)2
其中符號與上述相同。
卡方
最后, χ 2 \chi^2 χ2散度由下式給出:
χ 2 ( P : Q ) = ∑ k = l e f t , r i g h t ( p k ? q k ) 2 q k \chi^2(P:Q)=\sum_{k = left, right}\frac{(p_k - q_k)^2}{q_k} χ2(P:Q)=∑k=left,right?qk?(pk??qk?)2?
其中符號與上述相同。
DDP
delta-delta-p(ΔΔP)方法,其樣本分裂準則定義如下:
Δ Δ P = ∣ ( P T ( y ∣ a 0 ) ? P C ( y ∣ a 0 ) ? ( P T ( y ∣ a 1 ) ? P C ( y ∣ a 1 ) ) ) ∣ \Delta\Delta P = |(P_T(y|a_0)-P_C(y|a_0)-(P_T(y|a_1)-P_C(y|a_1)))| ΔΔP=∣(PT?(y∣a0?)?PC?(y∣a0?)?(PT?(y∣a1?)?PC?(y∣a1?)))∣
其中 a 0 a_0 a0?和 a 1 a_1 a1?是分裂A的結果, y y y是選定的類別, P T P_T PT?和 P C P_C PC?分別是處理組和對照組的響應率。換句話說,我們首先計算每個分支中的響應率差異( Δ P l e f t \Delta P_{left} ΔPleft?和 Δ P r i g h t \Delta P_{right} ΔPright?),隨后計算它們之間的差異( Δ Δ P = ∣ Δ P l e f t ? Δ P r i g h t ∣ \Delta\Delta P = |\Delta P_{left}-\Delta P_{right}| ΔΔP=∣ΔPleft??ΔPright?∣)。
IDDP
基于ΔΔP方法,實現了IDDP方法,其樣本分裂準則定義如下:
I D D P = Δ Δ P × I ( ? , ? l , ? r ) IDDP = \Delta\Delta P \times I(\phi, \phi_l, \phi_r) IDDP=ΔΔP×I(?,?l?,?r?)
其中, Δ Δ P ? \Delta\Delta P^* ΔΔP?定義為 Δ Δ P ? ∣ E [ Y ( 1 ) ? Y ( 0 ) ] ∣ X ∈ ? ∣ \Delta\Delta P - |E[Y(1) - Y(0)]|_{X \in \phi}| ΔΔP?∣E[Y(1)?Y(0)]∣X∈??∣, I ( ? , ? l , ? r ) I(\phi, \phi_l, \phi_r) I(?,?l?,?r?)定義為:
I ( ? , ? l , ? r ) = H ( n t ( ? ) n ( ? ) , n c ( ? ) n ( ? ) ) × 2 1 + Δ Δ P ? × 3 + n t ( ? ) n ( ? ) H ( n t ( ? l ) n ( ? ) , n t ( ? r ) n ( ? ) ) + n c ( ? ) n ( ? ) × H ( n c ( ? l ) n ( ? ) , n c ( ? r ) n ( ? ) ) + 1 2 I(\phi, \phi_l, \phi_r) = H(\frac{n_t(\phi)}{n(\phi)}, \frac{n_c(\phi)}{n(\phi)}) \times \frac{2}{1 + \Delta\Delta P^*} \times \frac{3 + \frac{n_t(\phi)}{n(\phi)}H(\frac{n_t(\phi_l)}{n(\phi)}, \frac{n_t(\phi_r)}{n(\phi)}) + \frac{n_c(\phi)}{n(\phi)} \times H(\frac{n_c(\phi_l)}{n(\phi)}, \frac{n_c(\phi_r)}{n(\phi)}) + 1}{2} I(?,?l?,?r?)=H(n(?)nt?(?)?,n(?)nc?(?)?)×1+ΔΔP?2?×23+n(?)nt?(?)?H(n(?)nt?(?l?)?,n(?)nt?(?r?)?)+n(?)nc?(?)?×H(n(?)nc?(?l?)?,n(?)nc?(?r?)?)+1?
其中,熵 H H H定義為 H ( p , q ) = ( ? p × log ? 2 ( p ) ) + ( ? q × log ? 2 ( q ) ) H(p, q) = (-p \times \log_2(p)) + (-q \times \log_2(q)) H(p,q)=(?p×log2?(p))+(?q×log2?(q)), ? \phi ?是與當前決策節點相關聯的特征空間的一個子集, ? l \phi_l ?l?和 ? r \phi_r ?r?分別是左子節點和右子節點。 n t ( ? ) n_t(\phi) nt?(?)是處理樣本的數量, n c ( ? ) n_c(\phi) nc?(?)是對照樣本的數量, n ( ? ) n(\phi) n(?)是當前(父)節點中所有樣本的數量。
IT(Interaction Tree)
交互樹(IT),其樣本分裂準則是在所有可行的分裂中最大化 G G G統計量:
G ( s ? ) = max ? G ( s ) G(s^*) = \max G(s) G(s?)=maxG(s)
其中 G ( s ) = t 2 ( s ) G(s) = t^2(s) G(s)=t2(s), t ( s ) t(s) t(s)定義為:
t ( s ) = ( y 1 L ? y 0 L ) ? ( y 1 R ? y 0 R ) σ × 1 n 1 + 1 n 2 + 1 n 3 + 1 n 4 t(s) = \frac{(y_{1L} - y_{0L}) - (y_{1R} - y_{0R})}{\sigma \times \sqrt{\frac{1}{n_1} + \frac{1}{n_2} + \frac{1}{n_3} + \frac{1}{n_4}}} t(s)=σ×n1?1?+n2?1?+n3?1?+n4?1??(y1L??y0L?)?(y1R??y0R?)?
其中 σ = ∑ i = 1 4 w i s i 2 \sigma = \sum_{i = 1}^{4} w_i s_i^2 σ=∑i=14?wi?si2?是常數方差的合并估計量, w i = ( n i ? 1 ) / ∑ j = 1 4 ( n j ? 1 ) w_i = (n_i - 1) / \sum_{j = 1}^{4}(n_j - 1) wi?=(ni??1)/∑j=14?(nj??1)。此外, y 1 L y_{1L} y1L?、 s 1 2 s_{1}^{2} s12?和 n 1 n_1 n1?分別是左子節點中處理組的樣本均值、樣本方差和樣本大小。其他量也采用類似的表示方法。
請注意,此實現與原始實現的不同之處在于:(1) 剪枝技術;(2) 確定最佳樹大小的驗證方法。
CIT(Causal Inference Tree)
因果推斷樹(CIT),其樣本分裂準則計算似然比檢驗統計量:
L R T ( s ) = ? n τ L 2 × ln ? ( n τ L S S E τ L ) ? n τ R 2 × ln ? ( n τ R S S E τ R ) + n τ L 1 ln ? n τ L 1 + n τ L 0 ln ? n τ L 0 + n τ R 1 ln ? n τ R 1 + n τ R 0 ln ? n τ R 0 LRT(s) = -\frac{n_{\tau L}}{2} \times \ln(\frac{n_{\tau L}}{SSE_{\tau L}}) - \frac{n_{\tau R}}{2} \times \ln(\frac{n_{\tau R}}{SSE_{\tau R}}) + n_{\tau L1} \ln n_{\tau L1} + n_{\tau L0} \ln n_{\tau L0} + n_{\tau R1} \ln n_{\tau R1} + n_{\tau R0} \ln n_{\tau R0} LRT(s)=?2nτL??×ln(SSEτL?nτL??)?2nτR??×ln(SSEτR?nτR??)+nτL1?lnnτL1?+nτL0?lnnτL0?+nτR1?lnnτR1?+nτR0?lnnτR0?
其中 n τ n_{\tau} nτ?、 n τ 0 n_{\tau 0} nτ0?和 n τ 1 n_{\tau 1} nτ1?分別是節點 τ \tau τ中的觀測總數、分配到對照組的觀測數以及分配到處理組的觀測數。 S S E τ SSE_{\tau} SSEτ?定義為:
S S E τ = ∑ i ∈ τ : t i = 1 ( y i ? y ^ t 1 ) 2 + ∑ i ∈ τ : t i = 0 ( y i ? y ^ t 0 ) 2 SSE_{\tau} = \sum_{i \in \tau : t_i = 1}(y_i - \hat{y}_{t1})^2 + \sum_{i \in \tau : t_i = 0}(y_i - \hat{y}_{t0})^2 SSEτ?=i∈τ:ti?=1∑?(yi??y^?t1?)2+i∈τ:ti?=0∑?(yi??y^?t0?)2
y ^ t 0 \hat{y}_{t0} y^?t0?和 y ^ t 1 \hat{y}_{t1} y^?t1?分別是節點 τ \tau τ中對照組和處理組的樣本平均響應。
請注意,此實現與原始實現的不同之處在于:(1) 剪枝技術;(2) 確定最佳樹大小的驗證方法。
CTS(Contextual Treatment Selection)
上下文處理選擇(CTS)方法,其樣本分裂準則定義如下:
Δ ^ μ ( s ) = p ^ ( ? l ∣ ? ) × max ? t = 0 , … , K y ^ t ( ? l ) + p ^ ( ? r ∣ ? ) × max ? t = 0 , … , K y ^ t ( ? r ) ? max ? t = 0 , … , K y ^ t ( ? ) \hat{\Delta}\mu(s) = \hat{p}(\phi_l | \phi) \times \max_{t = 0, \ldots, K} \hat{y}^t(\phi_l) + \hat{p}(\phi_r | \phi) \times \max_{t = 0, \ldots, K} \hat{y}^t(\phi_r) - \max_{t = 0, \ldots, K} \hat{y}^t(\phi) Δ^μ(s)=p^?(?l?∣?)×t=0,…,Kmax?y^?t(?l?)+p^?(?r?∣?)×t=0,…,Kmax?y^?t(?r?)?t=0,…,Kmax?y^?t(?)
其中 ? l \phi_l ?l?和 ? r \phi_r ?r?分別指左葉和右葉中的特征子空間, p ^ ( ? j ∣ ? ) \hat{p}(\phi_j | \phi) p^?(?j?∣?)表示在給定 ? \phi ?的情況下,主體處于 ? j \phi_j ?j?的估計條件概率, y ^ t ( ? j ) \hat{y}^t(\phi_j) y^?t(?j?)是在處理 t t t下的條件期望響應。
價值優化方法
當處理成本較高時,該軟件包支持用于分配處理組的方法。為了理解這個問題,將總體分為以下四類會有所幫助:
- 依從者:這類人只有在接受處理時才會有有利的結果。
- 總是接受者:這類人無論是否接受處理都會有有利的結果。
- 從不接受者:這類人無論是否接受處理都不會有有利的結果。
- 違抗者:這類人只有在不接受處理時才會有有利的結果。
反事實單元選擇
提出了一種使用反事實邏輯選擇處理單元的方法。假設選擇上述不同類別單元有以下收益:
- 依從者: β \beta β
- 總是接受者: γ \gamma γ
- 從不接受者: θ \theta θ
- 違抗者: δ \delta δ
如果 X X X表示個體的特征集,單元選擇問題可以表述如下:
argmax X β P ( complier ∣ X ) + γ P ( always?-?taker ∣ X ) + θ P ( never?-?taker ∣ X ) + δ P ( defier ∣ X ) \underset{X}{\text{argmax}} \beta P(\text{complier} | X) + \gamma P(\text{always - taker} | X) + \theta P(\text{never - taker} | X) + \delta P(\text{defier} | X) Xargmax?βP(complier∣X)+γP(always?-?taker∣X)+θP(never?-?taker∣X)+δP(defier∣X)
這個問題可以用反事實邏輯重新表述。假設 W = w W = w W=w表示個體接受處理, W = w ′ W = w' W=w′表示個體未接受處理。類似地,令 F = f F = f F=f表示個體有有利結果, F = f ′ F = f' F=f′表示個體有不利結果。那么優化問題變為:
argmax X β P ( f w , f w ′ ′ ∣ X ) + γ P ( f w , f w ′ ∣ X ) + θ P ( f w ′ , f w ′ ′ ∣ X ) + δ P ( f w ′ , f w ′ ∣ X ) \underset{X}{\text{argmax}} \beta P(f_w, f_{w'}' | X) + \gamma P(f_w, f_{w'} | X) + \theta P(f_{w'}, f_{w'}' | X) + \delta P(f_{w'}, f_{w'} | X) Xargmax?βP(fw?,fw′′?∣X)+γP(fw?,fw′?∣X)+θP(fw′?,fw′′?∣X)+δP(fw′?,fw′?∣X)
請注意,上述內容僅僅是根據相關用戶細分的定義得出的。隨后使用反事實邏輯在某些條件下解決上述優化問題。
注意:該軟件包中當前的實現具有很強的實驗性。
反事實價值估計器
該軟件包中實現的反事實價值估計方法使用標準機器學習模型預測一個單元在不同處理條件下的結果。將一個單元分配到特定處理的預期值由下式給出:
E [ ( v ? c c w ) Y w ? i c w ] E[(v - cc_w)Y_w - ic_w] E[(v?ccw?)Yw??icw?]
其中 Y w Y_w Yw?是在給定處理 w w w下有利事件(如轉化)發生的概率, v v v是有利事件的價值, c c w cc_w ccw?是有利事件發生時觸發的處理成本, i c w ic_w icw?是無論結果是否有利與處理相關的成本。
因果概率
如果一個結果在沒有某個原因的情況下不會發生,那么這個原因對于該結果來說被稱為是“必要的”。如果一個結果在有某個原因的情況下會發生,那么這個原因對于該結果來說被稱為是“充分的”。如果上述兩個條件都成立,那么這個原因對于該結果來說被稱為是“必要且充分的”。Jin Tian and Judea Pearl表明,我們可以計算出一個原因屬于上述三種類型中每一種的概率界限。
為了理解如何計算因果概率的界限,我們需要特殊的符號來表示反事實量。令 y t y_t yt?表示命題“如果處理組設置為‘處理’, y y y會發生”, y c ′ y_{c}' yc′?表示命題“如果處理組設置為‘對照’, y y y不會發生”,對于(假設為)二元結果和處理變量的其余兩種組合也類似表示。
那么,處理對于 y y y的發生是“充分的”概率可以定義為:
P S = P ( y t ∣ c , y ′ ) P_S = P(y_t | c, y') PS?=P(yt?∣c,y′)
這是指在實際上處理設置為對照且結果未發生的情況下,如果處理設置為 t t t, y y y會發生的概率。
處理對于 y y y的發生是“必要的”概率可以定義為:
P N = P ( y c ′ ∣ t , y ) P_N = P(y_{c}' | t, y) PN?=P(yc′?∣t,y)
這是指在實際上 y y y發生且處理發生的情況下,如果處理設置為對照, y y y不會發生的概率。
最后,處理既是必要又是充分的概率定義為:
P N S = P ( y t , y c ′ ) P_{NS} = P(y_t, y_{c}') PNS?=P(yt?,yc′?)
它表示如果處理發生, y y y會發生;如果處理不發生, y y y不會發生。 P N S P_{NS} PNS?與 P N P_N PN?和 P S P_S PS?的關系如下:
P N S = P ( t , y ) P N + P ( c , y ′ ) P S P_{NS} = P(t, y)P_N + P(c, y')P_S PNS?=P(t,y)PN?+P(c,y′)PS?
在界定上述三個量時,除了實驗數據,我們還利用觀測數據。觀測數據通過聯合概率來表征:
P T Y = P ( t , y ) , P ( c , y ) , P ( t , y ′ ) , P ( c , y ′ ) P_{TY} = P(t, y), P(c, y), P(t, y'), P(c, y') PTY?=P(t,y),P(c,y),P(t,y′),P(c,y′)
這個程序的主要思想是將界定任務轉化為一個線性規劃問題(關于他們方法的現代實現
使用線性規劃方法,并結合某些約束條件和觀測數據,Jin Tian and Judea Pearl發現 P N S P_{NS} PNS?的精確下限為:
max ? { 0 , P ( y t ) ? P ( y c ) , P ( y ) ? P ( y c ) , P ( y t ) ? P ( y ) } \max\{0, P(y_t) - P(y_c), P(y) - P(y_c), P(y_t) - P(y)\} max{0,P(yt?)?P(yc?),P(y)?P(yc?),P(yt?)?P(y)}
精確上限為:
min ? { P ( y t ) , P ( y c ′ ) , P ( t , y ) + P ( c , y ′ ) , P ( y t ) ? P ( y c ) + P ( t , y ′ ) + P ( c , y ) } \min\{P(y_t), P(y_{c}'), P(t, y) + P(c, y'), P(y_t) - P(y_c) + P(t, y') + P(c, y)\} min{P(yt?),P(yc′?),P(t,y)+P(c,y′),P(yt?)?P(yc?)+P(t,y′)+P(c,y)}
他們使用類似的程序來找到 P S P_S PS?和 P N P_N PN?的界限。get_pns_bounds()
函數使用Jin Tian and Judea Pearl中的結果計算這三個因果概率中每一個的界限。
選定的傳統方法
該軟件包支持選定的傳統因果推斷方法。這些方法通常用于使用觀測(非實驗)數據進行因果推斷。在這類研究中,處理組和對照組之間觀察到的差異通常不等于“潛在結果” E [ Y ( 1 ) ? Y ( 0 ) ] E[Y(1) - Y(0)] E[Y(1)?Y(0)]之間的差異。因此,以下方法試圖以不同方式處理這個問題。
匹配法
匹配法的總體思路是找到在相關特征方面盡可能相似的處理單元和未處理單元。因此,匹配方法可以被視為試圖模仿隨機對照試驗的因果推斷方法家族的一部分。
雖然有許多不同的方法來匹配處理單元和未處理單元,但最常見的方法是使用傾向得分:
e i ( X i ) = P ( W i = 1 ∣ X i ) e_i(X_i) = P(W_i = 1 | X_i) ei?(Xi?)=P(Wi?=1∣Xi?)
然后根據 e ( X ) e(X) e(X)使用某種距離準則(如 k : 1 k:1 k:1最近鄰)來匹配處理單元和未處理單元。由于匹配通常在處理群體和對照群體之間進行,這種方法估計處理組的平均處理效應(ATT):
E [ Y ( 1 ) ∣ W = 1 ] ? E [ Y ( 0 ) ∣ W = 1 ] E[Y(1) | W = 1] - E[Y(0) | W = 1] E[Y(1)∣W=1]?E[Y(0)∣W=1]
處理逆概率加權法
處理逆概率加權(IPTW)方法使用傾向得分 e e e,通過實際處理 W W W的概率的倒數來對處理群體和未處理群體進行加權。對于二元處理 W ∈ { 1 , 0 } W \in \{1, 0\} W∈{1,0}:
W e + 1 ? W 1 ? e \frac{W}{e} + \frac{1 - W}{1 - e} eW?+1?e1?W?
通過這種方式,IPTW方法可以被視為創建了一個人工總體,其中處理單元和未處理單元在其觀測特征 X X X方面是相似的。
與匹配法相比,IPTW的一個可能優點是,由于處理單元和未處理單元之間缺乏重疊而丟棄的數據可能更少。該方法的一個已知問題是,極端的傾向得分可能會產生高度可變的估計量。已經提出了不同的方法來修剪和標準化IP權重。
兩階段最小二乘法(2SLS)
識別 W W W對 Y Y Y的處理效應的基本要求之一是,在給定協變量 X X X的條件下, W W W與 Y Y Y的潛在結果正交。如果 W W W和 Y Y Y都受到一個未觀測到的變量(從 Y Y Y中去除 W W W的真實效應后的誤差項)的影響,而這個變量不在 X X X中,那么這個條件可能會被違反。在這種情況下,工具變量方法試圖借助與 W W W相關但與誤差項不相關的第三個變量 Z Z Z來估計 W W W對 Y Y Y的效應。換句話說,工具變量 Z Z Z僅通過經過 W W W的有向路徑與 Y Y Y相關。如果這些條件得到滿足,在沒有協變量的情況下, W W W對 Y Y Y的效應可以使用以下樣本類似公式進行估計:
C o v ( Y i , Z i ) C o v ( W i , Z i ) \frac{Cov(Y_i, Z_i)}{Cov(W_i, Z_i)} Cov(Wi?,Zi?)Cov(Yi?,Zi?)?
工具變量估計最常用的方法是兩階段最小二乘法(2SLS)。在這種方法中,原因變量 W W W首先對工具變量 Z Z Z進行回歸。然后,在第二階段,將感興趣的結果 Y Y Y對第一階段模型的預測值進行回歸。直觀地說,通過僅使用由 Z Z Z的變化引起的 W W W的變化比例來估計 W W W對 Y Y Y的效應。具體來說,假設我們有線性模型:
Y = W α + X β + u = Ξ γ + u Y = W\alpha + X\beta + u = \Xi\gamma + u Y=Wα+Xβ+u=Ξγ+u
為方便起見,這里我們令 Ξ = [ W , X ] \Xi = [W, X] Ξ=[W,X]且 γ = [ α ′ , β ′ ] ′ \gamma = [\alpha', \beta']' γ=[α′,β′]′,假設我們有工具變量 Z Z Z,其列數至少與 W W W 的列數相同,令 Ω = [ Z , X ] \Omega = [Z, X] Ω=[Z,X],2SLS 估計量如下:
γ ^ 2 S L S = [ Ξ ′ Ω ( Ω ′ Ω ) ? 1 Ω ′ Ξ ] ? 1 [ Ξ ′ Ω ′ ( Ω ′ Ω ) ? 1 Ω ′ Y ] \hat{\gamma}_{2SLS} = [\Xi'\Omega(\Omega'\Omega)^{-1}\Omega'\Xi]^{-1}[\Xi'\Omega'(\Omega'\Omega)^{-1}\Omega'Y] γ^?2SLS?=[Ξ′Ω(Ω′Ω)?1Ω′Ξ]?1[Ξ′Ω′(Ω′Ω)?1Ω′Y]
局部平均處理效應(LATE)
在許多情況下,處理措施 W W W 可能取決于受試者自己的選擇,并且無法在實驗環境中直接實施。然而,可以將用戶隨機分配到處理組/對照組,以便促使處理組中的用戶接受處理。這就是不依從的情況,即用戶可能不遵守他們被分配的狀態 Z Z Z,決定是否接受處理。與價值優化方法部分類似,通常在這種情況下有 3 種類型的用戶:
- 依從者:這些人只有在被分配到處理組時才會接受處理。
- 總是接受者:這些人無論被分配到哪個組都會接受處理。
- 從不接受者:這些人無論被分配到哪個組都不會接受處理。
然而,為了便于識別,我們假設不存在違抗者,即那些只有在被分配到對照組時才會接受處理的人。
在這種情況下,可以測量依從者的處理效應:
τ ^ C o m p l i e r = E [ Y ∣ Z = 1 ] ? E [ Y ∣ Z = 0 ] E [ W ∣ Z = 1 ] ? E [ W ∣ Z = 0 ] \hat{\tau}_{Complier} = \frac{E[Y|Z = 1] - E[Y|Z = 0]}{E[W|Z = 1] - E[W|Z = 0]} τ^Complier?=E[W∣Z=1]?E[W∣Z=0]E[Y∣Z=1]?E[Y∣Z=0]?
這就是局部平均處理效應(LATE)。如果我們將分配狀態 Z Z Z 作為工具變量,該估計量也等同于 2SLS。
針對平均處理效應(ATE)的靶向最大似然估計(TMLE)
靶向最大似然估計(TMLE)提供了一種雙穩健半參數方法,借助機器學習算法直接“針對”平均處理效應。與其他方法(包括結果回歸和處理逆概率加權)相比,TMLE 通常表現更好,特別是在處理有偏處理和異常值時。
給定二元處理 W W W、協變量 X X X 和結果 Y Y Y,針對 ATE 的 TMLE 按以下步驟進行:
-
步驟 1
使用交叉擬合通過機器學習估計傾向得分 e ^ ( x ) \hat{e}(x) e^(x)、處理組的預測結果 m ^ 1 ( x ) \hat{m}_1(x) m^1?(x) 以及對照組的預測結果 m ^ 0 ( x ) \hat{m}_0(x) m^0?(x)。 -
步驟 2
將 Y Y Y 縮放為 Y ~ = Y ? min ? Y max ? Y ? min ? Y \widetilde{Y} = \frac{Y - \min Y}{\max Y - \min Y} Y =maxY?minYY?minY?,使得 Y ~ ∈ [ 0 , 1 ] \widetilde{Y} \in [0, 1] Y ∈[0,1]。使用相同的縮放函數將 m ^ i ( x ) \hat{m}_i(x) m^i?(x) 轉換為 m ~ i ( x ) \widetilde{m}_i(x) m i?(x), i = 0 , 1 i = 0, 1 i=0,1。裁剪縮放后的函數,使其值保持在單位區間內。 -
步驟 3
令 Q = log ? ( m ~ W ( X ) 1 ? m ~ W ( X ) ) Q = \log(\frac{\widetilde{m}_W(X)}{1 - \widetilde{m}_W(X)}) Q=log(1?m W?(X)m W?(X)?)。最大化以下偽對數似然函數:
max ? h 0 , h 1 ? 1 N ∑ i [ Y ~ i log ? ( 1 + exp ? ( ? Q i ? h 0 ( 1 ? W ) 1 ? e ^ ( X i ) ? h 1 W e ^ ( X i ) ) ) + ( 1 ? Y ~ i ) log ? ( 1 + exp ? ( Q i + h 0 ( 1 ? W ) 1 ? e ^ ( X i ) + h 1 W e ^ ( X i ) ) ) ] \max_{h_0, h_1} -\frac{1}{N} \sum_{i} [\widetilde{Y}_i \log(1 + \exp(-Q_i - \frac{h_0(1 - W)}{1 - \hat{e}(X_i)} - \frac{h_1W}{\hat{e}(X_i)})) + (1 - \widetilde{Y}_i) \log(1 + \exp(Q_i + \frac{h_0(1 - W)}{1 - \hat{e}(X_i)} + \frac{h_1W}{\hat{e}(X_i)}))] h0?,h1?max??N1?i∑?[Y i?log(1+exp(?Qi??1?e^(Xi?)h0?(1?W)??e^(Xi?)h1?W?))+(1?Y i?)log(1+exp(Qi?+1?e^(Xi?)h0?(1?W)?+e^(Xi?)h1?W?))]
- 步驟 4
令:
Q ~ 0 = 1 1 + exp ? ( ? Q ? h 0 1 ? e ^ ( X ) ) \widetilde{Q}_0 = \frac{1}{1 + \exp(-Q - \frac{h_0}{1 - \hat{e}(X)})} Q ?0?=1+exp(?Q?1?e^(X)h0??)1?
Q ~ 1 = 1 1 + exp ? ( ? Q ? h 1 e ^ ( X ) ) \widetilde{Q}_1 = \frac{1}{1 + \exp(-Q - \frac{h_1}{\hat{e}(X)})} Q ?1?=1+exp(?Q?e^(X)h1??)1?
將 Q ~ 1 \widetilde{Q}_1 Q ?1? 和 Q ~ 0 \widetilde{Q}_0 Q ?0? 的差異重新縮放回原始范圍后,取樣本平均值作為 ATE 的估計值。