### 假设 要想CACE的计算成立,还需要满足3条假设 **1. Independence** 这个在随机AB实验中一定成立,但在观测数据中需要额外寻找Instrument variable这里不予讨论 $$ Z_i \perp (Y_i(0),Y_i(1),W_i(0),Y_i(1)) $$ **2. Exclusion Restriction** 这个假设即便在随机AB实验中也不一定成立,**因此需要基于策略本身进行判断**,基本原则就是Treatment分组本身对用户没有影响,只有确实被Treatment渗透的用户才受到影响。假设2保证了never-taker,always-taker在实验组和对照组中的表现一致。 $$ Y(z,w) = Y(z',w) \,\,\, \text{for all z, $z'$,w} $$ 印象中有看到过假设2不成立应该如何计算CACE的paper,不过还没碰到过类似情况,以后有用到再加上吧。 **3. Monotonicity/No-Defier** 单调假设在绝大多数情况下都成立,也就是T对W是正效应,不存在Defier。 这时W和Z对应的人群会被简化为以下,never-taker指向人群就是实验组未渗透人群因此可以直接估计 $$ W_i(1)>W_i(0) $$
### 计算 随机实验的假设保证了compiler, always-taker, 和never-taker在对照组和实验组中的占比是相同的,因此我们可以直接计算出compiler, always-taker, never-taker在人群中的占比,如下 $$ \begin{align} \pi_a &= p(W(0)=W(1)=1) = E(W|Z=0)\\ \pi_c &= p(W(0)=0,W(1)=1) = E(W|Z=1) - E(W|Z=0)\\ \pi_n &= P(W(0)=W(1)=0) = 1- E(W|Z=1) \\ \end{align} $$ 因为实验组中未渗透用户一定是never-taker, 对照组中渗透用户一定是always-taker(在一些功能型随机实验中并不存在always-taker),因此这部分用户的表现可以直接拿到 $$ \begin{align} E(Y|W=1,Z=0) &= E(Y(1)|always)\\ E(Y|W=0,Z=1) &= E(Y(0)|never)\\ \end{align} $$ 我们以此为突破口就可以计算得到compiler的CACE,先把对照组和实验组的人群进行分解如下 $$ \begin{align} E(Y|Z=0) &= \pi_a * E(Y(1)|always) + \pi_n * E(Y(0)|never) + \pi_c * E(Y(0)|compiler) \\ E(Y|Z=1) &= \pi_a * E(Y(1)|always) + \pi_n * E(Y(0)|never) + \pi_c * E(Y(1)|compiler) \\ \end{align} $$ 很显然AB组的差异只来源于compiler的差异,其实在没有always taker的情况下, CACE只是按实验组渗透等比的放大了组间收益而已 $$ \begin{align} CACE &= E(Y(1)|compiler) - E(Y(0)|compiler)\\ &= \frac{E(Y|Z=1)-E(Y|Z=0)}{\pi_c}\\ &= \frac{E(Y|Z=1)-E(Y|Z=0)}{E(W|Z=1) - E(W|Z=0)} \end{align} $$ 对于显著性的计算,我个人更偏向于只把CACE应用在原始ATE已经显著的情况下,以避免针对一些没有意义的波动数据进行分析,CACE只是用于估计渗透用户的绝对收益。当然如果想要计算CACE的显著性,可以用Bootstrap来拿到SE。当然因为CACE本身是ratio,也可以用更科学的方法来计算SE,具体细节可以参照Ref4。 用这个方法难免会被问到这部分用户的收益能否泛化到全体用户,理论上是不能的,但也不能一锤子打死。一个比较简单直观的方法是去比较$E(Y(0)|compiler)$,$E(Y(0)|always)$,$E(Y(0)|never)$之间是否存在显著差异,差异越大,能泛化的可能一般是越小的。 对AB实验的高端玩法感兴趣?