因果推断(三):因果效应评估

535 阅读10分钟

如本系列第一篇文章所述,潜在结果框架(Potential Outcome Framework)主要解决的问题是因果效应评估(Causal Effect Estimatation)。因此,本文将基于潜在结果框架进行讨论。

因果效应指标

假设干预是二元的,定义基本符号如下:

image.png

之所以是“潜在结果”,是因为因果推断的核心问题:我们无法在同一个体上同时观察到被施加干预和未被施加干预的两种状态。干预状态(1 or 0)实现后,无法观测到的潜在结果,通常称为反事实结果(counterfactual outcome)。但无论是否可以观测到,对个体而言,这两个潜在结果可以看作是确定性的变量,不因个体干预变量的实现状态而改变。潜在结果有时候会用Yi(t)Y_i(t)来表示,则Y0iY_{0i}也可表示为Yi(0)Y_i(0)Y1iY_{1i}可以表示为Yi(1)Y_i(1)

因果效应的计算即干预带来的增益(uplift),可以基于四种维度:个体( individual levels)、总体(population)、满足某条件(subgroup)、实验组( treated group),基于这四维度,因果效应指标定义如下。

  • 个体因果效应(Individual Treatment Effect, ITE),它等于Y1iY0iY_{1i}−Y_{0i}。注意,因果效应是干预后同一时间、同一物理个体潜在结果的比较。比如考察某种药对感冒的治疗效果,干预状态是吃药或不吃药,对应的潜在结果是治愈感冒或没有治愈。因果效应应该定义为我现在吃药和不吃药对应潜在结果的比较,而不能用我现在吃药和昨天我没有吃药时的潜在结果进行比较。因为昨天的“我”和今天的“我”不是同一个“我”,我今天不吃药的潜在结果和昨天不吃药的潜在结果可能是不一样的。由于ITE不可计算,需要考虑群体的因果效应。

  • 平均因果效应(Average Treatment Effect, ATE 它等于潜在结果差值的期望E[Y1Y0]E[Y_1−Y_0]

  • 条件平均因果效应(Conditional Average Treatment Effect, CATE),它等于潜在结果差值的条件期望E[Y1Y0X]E[Y_1−Y_0|X],X为筛选个体的特征值,也被称为协变量。CATE也称局部因果效应,关注在某个特征的人群。

    • 什么是协变量(covariates):协变量是不在受控制(研究范围)的自变量内,但仍会影响研究结果的变量。See more at www.statisticshowto.com/
    • 在因果推断的具体情境下,协变量的基本特点是这些变量均不受干预变量的影响,相反,这些变量往往决定个体的干预状态
  • 平均处理效应(Average Treatment effect on the Treated group,ATT),即实验组的因果效应,计算被干预人群的平均因果效应,它等于E[Y1Y0T=1]E[Y_1−Y_0|T=1]

基本假设

介绍一些潜在结果框架的基本假设,以及这些假设如何帮助我们进行因果效应的评估。

「稳定单元干预值假设」

稳定单元干预值假设(Stable Unit Treatment Value Assumption, SUTVA):任意单元的潜在结果都不会因其他单元的干预发生改变而改变,且对于每个单元,其所接受的每种干预不存在不同的形式或版本,不会导致不同的潜在结果。

  • 第一点是每个单元之间的独立性,例如一名患者的结果不会影响另一名患者。
  • 第二点也称作一致性假设(Consistency):是每种干预只有一个版本,例如不同剂量的药物 A 对应于不同的干预。

「可忽略性假设」

可忽略性假设(Ignorability):给定背景变量 X,干预的分配 T 独立于潜在结果,其干预分配可以视为随机的。简言之,可以忽略掉混淆变量,不存在混淆。因此,可忽略性假设也被称为无混淆(unconfoundedness)假设。

  • 背景变量(background variables), 又称协变量(covariates)、pre-treatment variables。

也等价于可交换性(Exchangeability)假设:交换不同的条件干预,我们的期望是一样的,此时暗示中不同组之间的分布是一致的,不存在样本选择偏差。

image.png

例如,考察药物对病人治疗效果的例子。Y为康复率,T=1代表使用药物。X为年龄。假设年轻和年老的病人,年轻的病人基本不会选择用药,只有年老的病人更倾向于选择用药。则相当于T=1的治疗组以年老的病人为主,T=0的对照组以年轻的病人为主。那么治疗组的治愈率会偏低,甚至低于对照组。从而得出药物对康复率具有副作用的错误结论。若固定年龄进行研究,对于年轻人,其用药倾向性一致,从而T的分配没有倾向性。由此消除了年龄这个confounder对Treatment Effect的干扰。

从混淆变量的角度:给定X就是condition on X, 则此时T->Y的后门路径T<-X->Y(Fork)被封锁,从而使T无法通过后门路径影响Y。

「正值假设」

正值假设(Positivity):对于任意值的 X,干预分配都不是确定的。

假定有两种干预:药物 A 和药物 B,如果年龄大于 60 岁的患者总是给予药物 A,则我们就无法(也没有意义)去研究药物 B 在这些患者上的干预效果。换句话说,正值假设揭示的是干预的可变性,这对干预效果估计来说是十分重要的。

基于假设的推论

ATE的计算:

image.png

注意:公式中的E[Y(1)X]E[Y(0)X]E[Y(1)|X]-E[Y(0)|X]刚好也是CATE的定义。

进一步地,可以将对X的外部期望替换为对数据求平均值:

image.png

uplift models

参考文档

定义:uplift model是一个增量模型,目的是预测某种干预对于个体状态或行为的因果效应(ITE或CATE)。

对于此问题,最简单的方案是,训练两个模型,分别预估用户在无券的时候的转化率Y1 和 有券的时候转化率Y2,那么某个用户的uplift = Y2 - Y1。当然,能这么做有个先决条件,用户训练有券和无券模型的两个数据集中的用户需要是同质的,不能是有偏的。比如,如果有券的训练数据中,用户更加活跃,那么预估出来的就不准。这种无偏样本可以用RCT来收集,随机选择一部分用户发券,另一部分不发券,这样收集的两个样本集合就是同质的。

  • 优点:它可以套用我们常见的机器学习模型,如LR,GBDT,NN等,所以该模型的落地成本是比较低的
  • 缺点:精度有限,这一方面是因为我们独立的构建了两个模型,这两个模型在打分上面的误差容易产生累积效应,第二是我们建模的目标其实是response而不是uplift,因此对uplift的识别能力比较有限。

相比使用两个模型,更简单一点的方案是训练一个模型,将是否发券当做一个特征T,加入模型。即拟合一个函数 f = f(x, T),x是用户的特征,T代表是否发券。那么对某个用户,特征为x的条件下,处理效应 uplift=f(x, T=1) - f(x, T=0),即CATE。只要能预估出这个CATE,我们就可以知道更应该给那些uplift高的用户发优惠券了。这种建模方案,之前监督学习能用的模型都可以用,只需要收集无偏的样本即可。

  • 缺点:精度有限,本质上还是在对response建模。

为了解决上述方案缺点,还有第三类方案,即直接对uplift进行建模,包括:

  • 基于潜在结果框架的传统建模方式
  • 对现有ML模型(树、RF、SVM)的改造

本文主要介绍第三类方案。

注:本文所有建模方法,都需要基于上述三个基本假设。

Re-weighting methods

参考文档

由于混淆变量影响,不同treatment的样本分布不同。因此,为观测集中的样本重新分配权重。

核心思想:首先,我们通过加权的方式把两组用户的用户属性分布调整到和目标人群一致(例如总体人群或处理组人群)。接着,我们比较两组加权用户的结果即可。

如何分配权重:基于balancing score。

  • 所有的 balancing score 都有两个很好的性质,即,对于得分相同的一群用户,1)treatment 和特征是独立的,2)treatment 和潜在结果也是独立的。
  • 在实践中,通常使用propensity score(倾向性评分,balancing score的一种)。存在问题:严重依赖propensity score的准确性。

基于倾向性得分加权:Inverse proopensity weighting (IPW)

具体而言,倾向性得分𝑒(𝑋)𝑒(𝑋)描述了一个属性为 𝑋 的用户属于处理组的概率,即e(𝑋)=𝑃𝑟(𝑇=1𝑋)e(𝑋)=𝑃𝑟(𝑇=1|𝑋)。例如,男性用户被投放广告的概率为 20%,他们的倾向性得分为 0.2,记为 𝑒(男性)=0.2。

  • 处理组:属性为 𝑋 的用户的权值为 1/𝑒(𝑋)1/𝑒(𝑋)
  • 对照组:属性为 𝑋 的用户的权值为 1/(1𝑒(𝑋))1/(1−𝑒(𝑋))

其他加权方式

See github.com/ngreifer/We…

Matching methods

参考文档:dango.rocks/blog/2019/0…

核心思想为:如果我们对每一个实验组用户都在对照组里匹配一个“counterfactual twin”用户,我们就能得到同质的实验组和对照组,就可以假装我们做了一个 A/B Test 了,接着就可以随意地进行组间比较了。

具体方法:

  • Exact matching:要求匹配用户的变量 𝑋 完全相等,不现实
  • Distance Matching:我们可以对每一个 𝑇=1 的用户匹配一个距离最近并且不超过阈值的用户。这里 “距离” 如何定义、“阈值” 如何定义,也都需要更多的斟酌。另外,当我们通过距离来匹配时,其实是在潜意识里假设了变量 X 的每一个维度都是同等 “重要” 的,这里也不一定科学。
  • Propensity Score Matching:根据倾向性得分将用户进行匹配 ,从而得到两个 𝑋 上看起来基本同质的用户组,然后统计得到 ATT。PSM 方法在实现上有许多值得深入介绍的地方,例如如何得到 “倾向性得分”、如何选择匹配方式(如一对一匹配、一对多匹配、分层匹配、有放回或无放回匹配)、如何衡量匹配质量等。See more at dango.rocks/blog/2019/0…

Tree-based method - 因果森林(Causal forest)

参考文献:

  • Estimation and Inference of Heterogeneous Treatment Effects using Random Forests
  • Recursive partitioning for heterogeneous causal effects

本质上是随机森林,区别:

  • 训练集分为两部分:Honest Tree,一部分用于学习树的结构,另一部分用于预估ITE,
  • 分裂原则:最大化ITE方差。

随机森林介绍:blog.csdn.net/qq_42216093…

Representation learning method

todo...

Meta learner method

todo...

模型评估

参考文档:zhuanlan.zhihu.com/p/363082639…

和标准的预测方法不同,由于”反事实“的存在,并没有真实的uplift标签,因此uplift模型无法在样本维度上进行评估。但如果有随机试验采集的数据,则可以用平均水平来评估uplift模型的效果。

本文将分为线上评估和离线评估两部分介绍,其中线上评估主要是AB策略;离线评估是AUUC、Qini curve等。

AUUC

参考文档:zhuanlan.zhihu.com/p/457689388…

todo...

Qini curve

todo...

Toolbox

Python packages:

  • DoWhy
  • CausalPy
  • Causal ML
  • EconML

R packages:

  • causlaToolbox
  • WeightIt

See more at wires.onlinelibrary.wiley.com/doi/full/10…

  • Methods and tools for causal discovery and causal inference

参考链接