文章大纲
-
- 前言
- 因果推理简介
- 解决因果推理问题的一大方法和两大模型
- 因果推理基础
- 因果推理的三大假设
- 因果推理的解决方法
- 可用数据集
- 因果推理源码
- 因果推理应用
- 总结
- 参考
前言
近期导师给我定了因果推理这个方向,看了一些资料和视频之后有了一点点思路转而开始阅读一些经典前沿的论文,此文是基于论文《A Survey on Causal Inference》,阅读此文需要有一定的因果推理基本知识,同时我将会基于此论文并略带个人的理解阐述,如有问题请各位大牛指出,获取论文点此。
因果推理简介
因果推理是一个跨多个领域的重要研究课题,数年来研究涉及到了统计学、计算机科学、教育学、公共政策以及经济学等领域。简单来说因果推理其字面意思就是推理两个研究对象之间的因果关系,但是在大部分情况下 因果 ≠ 相关 \textbf{因果}\not=\textbf{相关} 因果=相关 ,举一个简单的例子来说:
一项研究表明经常吃早餐的女孩要比不那么经常吃早餐的女孩轻,于是得出结论吃早餐可以减肥。但实际上两件事是由相关性引起的而并非因果性,这是因为经常吃早餐的女生可能有一个更好的生活方式,她们会经常锻炼、睡眠规律且有一个健康的饮食习惯所以这些经常吃早餐的女孩才会更轻,在这个例子里生活方式是共同影响吃早餐和变轻这两个对象的共同因素,我们也称其为confounder(混杂因素)。所以在很多例子里表面上是一种行为引起了另外一种事件的发生,但由于很多混杂因素的影响导致你无法确定它们之间真正的因果关系,所以因果推理研究的正是在这些背景之下如何确定研究对象之间的因果关系。
解决因果推理问题的一大方法和两大模型
- 随机对照试验法:随机对照试验的基本方法是,将研究对象随机分组,对不同组实施不同的干预,以对照效果的不同。具有能够最大程度地避免试验设计、实施中可能出现的各种偏倚,平衡混杂因素,提高统计学检验的有效性等诸多优点,被公认为是评价干预措施的金标准。例如在上面的例子中,我们选取一群生活方式都比较好的女生来做试验,要求一半的女生吃早餐,一半的女生不吃早餐,这样我们控制住了生活方式这一混杂因素,从而可以轻易得出结论。但是随机对照试验法是一个非常耗时费力的方法,同时也涉及到伦理问题,例如我们研究 孕妇吸烟是否对新生儿有影响,总不能要求不吸烟的孕妇强行吸烟吧,由于随机对照试验法的缺点我们渴望可以直接从观测数据(直接观测到的、非试验的、没有人为干预的自然数据)中得到因果关系,于是就有学者提出了潜在结果模型和结构因果模型来解决这一问题。
- 潜在结果模型:比较同一个研究对象(Unit)在接受干预(Treatment)和不接受干预(Control)时结果差异,认为这一结果差异就是接受干预相对于不接受干预的效果。对于同一研究对象而言,通常我们不能够既观察其干预的结果,又观察其不干预的结果。对于接受干预的研究对象而言,不接受干预时的状态是一种“反事实”状态;对于不接受干预的研究对象而言,接受干预时的状态也是一种“反事实”状态;所以该模型又被某些研究者称之为反事实框架(Counter factual Framework)。
- 结构因果模型:结构因果模型就是用有向无环图来描述因果关系,将变量作为节点。如果X是另一个变量Y的子节点,那么Y是X的直接原因;如果X是Y的后代那么Y是X的一个潜在原因。
由于此论文是基于潜在结果模型来阐述的,所以这里对于结构因果模型不做过多的介绍,后续等我精读完了相关论文再做补充。
因果推理与机器学习领域有着密切的关系。近年来,机器学习领域的发展促进了因果推理领域的发展。强大的机器学习采用决策树、集成方法、深度神经网络等方法对潜在风险进行估计结果更准确。除了对结果估计模型进行改进外,机器学习方法也为处理混杂因素提供了一个新的方面。受益于最近的深度表征学习方法,如生成对抗性神经网络,通过学习所有协变量的平衡表征,以便在学习表征的基础上治疗分配独立于混杂变量。在机器学习中,数据越多越好。
然而,在因果推理中,仅仅有更多的数据还不够。拥有更多数据只会有助于获得更多信息精确的估计,但它无法确保这些估计是正确和无偏的。机器学习方法在促进因果推理发展的同时,因果推理也有助于机器学习方法的发展。对预测精度的简单追求不足以满足现代机器学习研究的需要,也不足以保证正确性可解释性也是机器学习方法的目标。因果推理开始有助于改进机器学习,如推荐系统或强化学习。
因果推理基础
一般来说,因果推理的任务是估计如果应用了另一种干预,其结果的变化。在潜在结果模型的基础之上,定义了一些概念用于计算研究对象之间的因果效应。
- Unit:在干预效果研究中,Unit是原子研究对象。数据集中的一个Unit是整个人口的样本,因此在本次调查中,术语“样本”和“Unit”可以互换使用。
- Treatment(干预):Treatment指的是对一个Unit施加的行为,如之前提到的吃早餐的女生是否更轻这个例子中,吃早餐和不吃早餐就可以认为是Treatment。
- Potential outcome(潜在结果):对于每个Unit Treatment对,在该Unit上应用该Treatment的结果就是Potential outcome。值为w的干预的潜在结果表示为 Y ( W = w ) Y(W=w) Y(W=w)。
- Observed outcome(观察结果):观察到的结果是实际应用的干预结果。我们使用 Y F Y^F YF来表示观察结果,其中的F代表的就是factual的意思,潜在结果和观观察结果之间的关系就是 Y F = Y ( W = w ) Y^F=Y(W=w) YF=Y(W=w),这里w指的是施加的干预。
- Counterfactual outcome(反事实结果):反事实结果指的是该Unit接受其他干预后的结果。用 Y C F ( W = w ′ ) Y^{CF}(W=w^{'}) YCF(W=w′)来表示在干预为 w ′ w^{'} w′时的反事实结果。
- Pre-treatment variables:Pre-treatment variables是不受干预影响的变量,也称背景变量。用 X X X来表示此变量。
- Post-treatment variables:Post-treatment variables是受干预影响的变量,与上一点相反。
- Treatment Effect(干预效果): 在介绍了观察数据和关键术语后,可以使用上述定义对干预效果进行定量定义。干预效果可以在人群、干预组、子组和个体水平上进行测量。为了明确这些定义,我们在这里定义了二元干预下的治疗效果,并通过比较其潜在结果,将其扩展到多种干预。在人群水平上,平均干预效果(ATE),其定义如下:
在干预组下的平均干预效果(ATT)被定义为:
在子组水平上,干预效果称为条件平均干预效果(CATE),其定义如下:
在不同子组的干预效果不同的情况下,CATE是一种常见的干预效果测量,也称为异质干预效果。
在个体层面,干预效果称为干预治疗效果(ITE), u n i t i unit_i uniti的ITE定义为:
对于因果推理而言我们的目标就是从观测数据中评估以上的干预效果
因果推理的三大假设
为了估计干预效果,因果推理文献中通常使用以下假设:
- Stable Unit Treatment Value Assumption (SUTVA):任何unit的潜在结果不会因分配给其他unit的干预而有所不同,对于每个单元,每个干预水平没有不同的形式或版本,从而导致不同的潜在结果。比如说干预A是吃A药,但是不会存在吃多少剂量的A药而导致不同的潜在结果,要么就把剂量也拆分为一种干预。
- Ignorability:考虑到背景变量X,干预分配 W W W独立于潜在结果。即
无论你给其他unit分配的干预是什么,我的潜在结果不会变, W ⊥ Y ( W = 0 ) , Y ( W = 1 ) ∣ X W⊥Y(W=0),Y(W=1)|X W⊥Y(W=0),Y(W=1)∣X。
- Positivity:对于任何 X X X,干预分配是不确定的:
直观来说就是任意的背景变量x的值在任意干预下必须要有结果能被观测到,不然计算出的干预效果就没有意义。举个例子:
假设有两种治疗方法:药物A和药物B。让我们假设60岁以上的患者总是被分配药物A,那么研究药物B对这些患者的疗效将是没有意义的。
根据这些假设,观察结果和潜在结果之间的关系可以改写为:
有了上面这些等式,我们可以重写出 Treatment Effect(干预效果) 中提到的各种公式:
正如前文所提到的,由于混杂因素的存在导致我们计算干预效果的时候会存在一些问题,混杂因素是一些特殊的pre-treatment变量,例如医学示例中的年龄。当直接使用观察到的干预/对照结果的平均值时,计算出的ATE不仅包括干预对结果的影响,还包括混杂因素对结果的影响,这会导致虚假效应。
从表中,我们可以观察到另一个有趣的现象,即辛普森悖论,与之前提到的例子相似。我们从整体数据上来看药物A比药物B的治疗效果要好,但是但从年轻人和老人的子组数据来看药物B比药物A的治疗效果要好,那么到底是药物A的治疗效果要好还是药物B的治疗效果要好呢?
其实这个悖论形成的原因是,年龄作为混杂因素它影响着药物的选择又影响着药物的治疗效果,老人比较倾向于选择B药,但是老人本身的身体状况就不好所以导致B药的整体治疗效果要偏低。
除了虚假关联以外,混杂因素还会导致选择偏差:被观察群体的分布并不代表我们总体的群体。
因果推理的解决方法
为了解决虚假效应问题,我们应该考虑混杂变量对结果的影响。沿着这个方向的一般方法首先估计对混杂因素变量的干预效果,然后根据其分布对混杂因素进行加权平均。
对于选择偏差问题,有两种通用的解决方法。第一种通用方法处理通过创建一个接近样本组的伪组来产生选择偏差。可能的方法包括样本重加权、匹配、基于树的方法、混淆平衡、平衡表示学习方法,基于多任务的方法。创建的伪组减轻了选择偏差和更好的反事实结果估计可以得到。另一种通用方法首先仅根据观察数据训练基本潜在结果估计模型,然后纠正估计由选择偏差引起的偏差。基于元学习的方法属于这一类。
- Re-weighting(重加权算法)
- Stratification(分层算法)
- Matching(匹配算法)
- Tree-based(基于树的方法)
- Representation Learning(表示学习)
- Multitask Learning(多任务学习)
- Meta-learning(元学习)
具体内容太多,大家可以下载论文了解算法的具体实现,本文章只做一个入门供大家参考。
可用数据集
- IHDP
- Jobs
- Twins
- ACIC datasets
- IBM causal inference benchmark
- BlogCatalog
- Flickr
- News
- MVICU
- TCGA
- Saccharomyces cerevisiae (yeast) cell cycle gene expression dataset.
- …
因果推理源码
因果推理应用
- 广告:正确衡量广告活动的效果是品牌方成功营销的关键,如新广告是否增加点击量,或新广告是否增加销售额等。
- 推荐系统:在推荐系统中给用户推送商品的过程,相当于给原子研究对象施加干预,通过用户的点击、消费等行为评估干预(推荐)的效果。
- 药物治疗:反事实估计,当可以估计不同的可用药物的疗效时,医生可以据此开出更好的处方。
- 教育:反事实估计通过比较不同教学方法对学生群体的影响,可以确定一种更好的教学方法。
总结
因果推理可以有效地挖掘研究对象之间的因果关系,去除混杂因素对统计数据的影响极其重要。在机器学习领域有一个强假设即认为训练集和测试集是独立同分布的,然后实际情况下数据之间(特征之间)可能会出现虚假关联、选择偏差等由混杂因素引起的问题。如果将因果推理引入到机器学习之中势必会大大地提高模型的性能以及其泛化能力同时也提供了一定的可解释性,在这一块清华大学崔教授团队提出了Stable Learning的概念,并在Nature子刊发文,可供大家学习参考:
Stable learning establishes some common ground between causal inference and machine learning
参考
[1] 因果推理中的潜在结果模型,起源、逻辑与意蕴
[2] 因果推理综述—《A Survey on Causal Inference》一文的总结和梳理