病的概率。显然p ( Y = 1 i t = 1 ) = 0.78 < p ( Y = 1 i t = 0 ) = 0.83,这是因为没有考虑混淆变量“性别”的影响,出现了辛普森悖论。
如下图,通过后门调整,去除掉性别对服药的干扰。则最终 p(Y=1ido(x=1))=0.832 > p(Y=1ido(x=0))=0.781,说明服用此药物确实可以降低发病率。
后面调整的计算逻辑如下:
2.4.4 因果识别
当前Scm模型更多用于因果识别,这是因果推断伴生的研究课题。其目标是从一系列的因子里,找出各因子间的因果相关性并输出因果图,则后续可根据casual graph分析两两因子间的相互影响,揭示因子对结果的多层传递性影响。举个例子[14],我们研究影响产品销量的因素时,可能存在产品价格、产品属性、门店信息、市场竞争情况等因子需要考虑。我们可以构建多个类似下图的因果图模型,然后通过do算法实现干预,判断各因子间存在的因果关系,最终输出概率最大的因果图作为识别的结果[15][16]。本文主要关注因果推断,因果识别不做展开讨论,更多示例可参考相关文章[17]
2.5 潜在结果模型(Rcm)[11]
Rcm关注的是干预前后的期望变化,即2.2所述的treatment effect。该模型不考虑分析所有因子的因果性,只关注treatment和output之间的因果强弱,因此也不需要构建完整了因果图,而是假设treatment和output外的其他因子均为混淆因子,构建粗略的因果图,通过预测反事实的结果,并于观测对比来完成因果推断。
该模型的期望输出分为四种(AtE\/Att\/cAtE\/ItE),可根据业务需求选择。对于for单个研究对象的反事实推断,模型的目标是计算每一个样本i的因果效应,即 = (t=1)? (t=0)。以3.3服药和康复的case为例,t = 是否服药,Y = 是否康复。我们知道,一个人是无法同时观测到吃药和不吃药对康复的影响,Scm也无法推测服药对某个用户的价值。而Rcm则会根据数据形态(即用户属性、历史表现以及混淆因子“年龄”等)预测实际未发生的行为将产生的结果,从而推断出ItE。同理可得出AtE、Att、cAtE。
因为业界很多时候关注的是单个treatment因子的价值,所以Rcm往往是业界的首选。
2.5.1 基本假设
Rcm存在如下3个基本假设[18]:
稳定单元干预值假设(Stable Unit treatment Value Assumption, SUtVA):任意单元的潜在结果都不会因为其他单元的干预发生改变而改变,且对于每个单元,其所接受的每种干预不存在不同的形式或版本,也不会导致不同的潜在结果。以吃药康复的例子解释这里的两层含义,其一是你吃不吃药不影响我是否康复;其二是每种干预是唯一的,吃药不存在吃很多、吃很少的情况,统一药量,要考虑药量就要设置不同的干预值(即此时干预变量不能只是0和1)