首先,考虑一个与现实情况很相关的例子:针对某种新冠病毒 COVID-27,假设有两种疗法:方案 A 和方案 B,B 比 A 更稀缺(耗费的医疗资源更多),因此目前接受方案 A 的患者与接受方案 B 的患者比例约为:73%/27%。想象一下你是一名专家,需要选择其中一种疗法,而这个国家只能选择这一种疗法,那么问题来了,如何选择才能尽量少的减少死亡?
假设你有关于死于 COVID-27 的人的百分比数据(表1)。他们所接受的治疗是与病情的严重程度相关的,mild 表示轻症,severe 表示重症。在表 1 中,可以看到接受方案的人中总共有 16% 的人死亡,而接受 B 的死亡率是 19%,我们可能会想更贵的治疗方案 B 比便宜的治疗方案 A 的死亡率要更高,这不是离谱吗。然而,当我们按照轻症、重症分别来看(Mild 列和 Severe 列),情况确是相反的。在这两种情况下,接受 B 的死亡率比 A 都要低。
此时神奇的悖论就出现了。如果从全局视角来看,我们更倾向于选择 A 方案,因为 16%<19%。但是,从 mild 和 severe 视角来看,我们都更倾向于方案 B,因为 10%<15%,20%<30%。此时你作为专家给出了一下结论:“如果能判断患者是轻症或者重症,就用方案 B,如果判断不了就用方案 A”,此时估计你已经被人民群众骂成砖家了。
导致出现辛普森悖论的关键因素是各个类别的非均匀性。接受 A 治疗的 1500 人中有 1400 人病情轻微,而接受 B 治疗的 550 人中有 500 人病情严重。因为病情轻的人死亡的可能性较小,这意味着接受治疗 A 的人的总死亡率低于如果病情轻和病情重的人各一半的情况。治疗 B 的情况则相反,这就导致了 Total 一列 16%<19%。
其实,方案 A 或方案 B 都可能是正确答案,这取决于数据的因果结构。换句话说,因果关系是解决辛普森悖论的关键。在下文,我们会首先从直觉上给出什么时候应该偏向于方案 A,什么时候应该偏向于方案 B。更理论的解释会放到后面再讲。
Scenario 1
▲ 图1.1
如图 1.1 所示,C(condition)是 T(treatment)和 Y(outcome)的共同原因。这里 C 代表病情轻重,T 代表治疗方案,Y 代表是否死亡。这个 Graph 的意思是说病情轻重会影响医生给你用哪种方案,而且病情轻重本身也会导致是否死亡。治疗 B 在降低死亡率方面更有效。
在这种情况下,医生决定给大多数病情轻微的人提供 A 方案,而把更昂贵、更有限的 B 治疗方法留给病情严重的人。因为病情严重的人更有可能死亡(图 1.1 中的 C→Y ),并导致一个人更有可能接受 B 治疗(图 1.1 中的 C→T)。因此,总体 B 的死亡率更高的原因仅仅是选择方案 B 中的人大多数(500/550)是重症,而重症即使用了更贵的方案 B,死亡率 100/500=20% 也比轻症用方案 B 的死亡率 5/50=10% 要高,最终混合的结果会更偏向于重症的结果。
在这里,病情 C 混淆了治疗 T 对死亡率 O 的影响。为了纠正这种混杂因素,我们必须研究相同条件的病人的 T 和 Y 的关系。这意味着,最好的治疗方法是在每个子群体(表1.1 中的“mild”和“severe”列)中选择低死亡率的治疗方法:即方案 B。
Scenario 2
如图 1.2,T(治疗方案)是 C(病情轻重)的原因,C 又是 Y(死亡与否)的原因。这种情况的实际场景是:方案 B 非常稀缺,以至于患者在选择接受治疗后需要等待很长时间才能实际接受治疗,而选择 A 的患者很快就会得到治疗。在这种情况下,治疗方案是与病情无关的,而情境一,病情会决定方案。
由于 COVID-27 患者的病情会随着时间的推移而恶化,方案 B 实际上会导致病情较轻的患者发展为重症,从而导致更高的死亡率。因此,即使 B 一旦用药就比 A 更有效(图1.2 中的正面作用 T→Y),由于方案 B 的长时间等待会导致病情恶化(图1.2 中的负面作用 T→ C →Y)550 个选择 B 的人里面有 500 人因为等的时间长变重症了,而只有 50 人是轻症,因此 total 的结果 19% 会更偏向于 B 的重症死亡率 20%。同理,Total A 的死亡率 16% 会更偏向于 A 的轻症死亡率 15%。
此时,最优的选择是方案 A,因为 total 的死亡率更低。而实际表格的结果也符合,因为 B 治疗更贵,所以以 0.27 的概率选择方案 B,而以 0.73 的概率选择 A。
总之,更有效的治疗完全取决于问题的因果结构。在情景 1 中(图1.1), B 更有效。在情景 2 中(图1.2)的一个原因, A 更有效。没有因果关系,辛普森悖论就无法解决。有了因果关系,这就不是悖论了。
许多人都会听过“相关并不意味着因果(correlation does not imply causation)”的口头禅。首先通过一个例子解释为何会这样。
如图 1.3,每年因落入游泳池而溺水的人数与 Nicolas Cage 每年出演的电影数量具有高度相关性。如果只看这张图可以得到以下几种解释:(1)Nicolas Cage 在他的电影中鼓励糟糕的游泳者跳进游泳池。(2)当 Nicolas Cage 看到那一年发生了多少溺水事件时,他是更有动力去出演更多的电影。(3)也许尼古拉斯凯奇有兴趣增加他在因果推理从业者中的知名度,所以他回到过去说服他过去的自己做正确数量的电影让我们看到这种相关性,但又不完全匹配,因为这会引起怀疑,从而阻止他以这种方式操纵与数据的相关性。
观察到的 total association 可以由混杂关联 confounding association(图中红色箭头)和因果关联 causal association(图中蓝色箭头)组成。可能的情况是,穿鞋睡觉确实对醒来后的头痛有一丢丢的因果关系。那么,总的关联将不只是混杂关联,也不只是因果关联,它将是两者的混合。例如,在图 1.4 中,因果关系沿着从穿鞋睡觉到头痛醒来的蓝色箭头流动。而混杂关联则沿着从穿鞋睡觉到喝酒再到头痛的红色路径流动。我们将在第三章中对这些不同种类的关联做出明确的解释。
1.4 涉及的一些概念
Statistical vs. Causal 即使有无限量的数据,我们有时也无法计算一些因果量。相比之下,许多统计数据都是关于解决有限样本中的不确定性。当给定无限数据时,没有不确定性。然而,关联是一个统计概念,并不是因果关系。即使拥有无限数据,在因果推断方面还有更多工作要做。
如 Fig 2.3 所示,X 是 T 和 Y 的 confunder,因此,T 和 Y 之间有一条沿着 的 non-causal association(红色虚线所示)。但是,当我们 contioning on X,即固定住 X 的值,T 和 Y 之间的 non-causal association 就会被 block 掉,变成:
我们可以推出在 X 固定的条件下的 causal effect,即 conditional average treatment effect:
第一行是期望公式,第二行是由假设 2.2 得到的,第三行是由观察的数据得到的。 这时候再对 X 求期望,就可以得到完整的 average treatment effect,这个又叫做 Adjustment Formula(调整公式):
虽然想象中对许多协变量进行 condition 可以实现 unconfoundedness,但它实际上可能是有副作用的。这与另一个我们尚未讨论的假设有关:Positivity 积极性。Positivity 是指具有不同协变量值 X=x 的任何 group 都有一定的概率接受任何 value 的 treatment。即。为了好理解把原文也贴出来,建议大家停下来仔细回味一下 Positivity 的意思。
Positivity is the condition that all subgroups of the data with different covariates have some probability of receiving any value of treatment. Formally, we define positivity for binary treatment as follows.
根据上面的定义,如果变量 Y 能随着 X 的变化而变化,则称 X 是 Y 的原因。然后给出贯穿全书的(严格)因果假设 3.3,在有向图中,每个节点都是其子节点的直接原因。X 是 Y 的父节点,X 就是 Y 的直接原因,X 的原因(X 的父节点)也是Y的原因,但是是间接原因。
如果我们把 Y 的所有直接原因 fix,那么改变 Y 的任何其他原因都不会引起 Y 的任何变化。因为 cause 的定义(Definition 3.2)意味着 cause 和它的 effect 是相关的,而且因为我们假设所有的父节点都是他们子节点的原因,所以因果图中父节点和子节点是相关的。 非严格因果关系假设将允许一些父节点不是其子节点的原因,但不常见。除非另有说明,在本书中,我们将用“因果图”来指满足严格因果边假设的 DAG,省略“严格”一词。 总结一下,DAG 有向无环图是 graph 的一种特殊形式,贝叶斯网络和因果图都是用 DAG 表示的,但是两者的含义不一样,贝叶斯网络表达的是变量之间的依赖关系,而因果图表达的是变量之间的因果关系。由于表示因果关系的边也暗含着两个变量之间有关联,因此,DAG 里既有因果关系也有关联关系,这也对应本章的题目。
同理,unblocked path 的定义与 block path 相反。blocked path 中不存在从 X 到 Y 的 association flow,被 block 掉了。unblocked path 中存在从 X 到 Y 的 association flow。
下面给出 d-分离的概念:
在给定集合 Z 的条件下,如果 X 和 Y 中的任意两个节点之间的路径都被 block,那么就说 X 和 Y被 Z d-分离。zhiyao 存在一条路径是 unblock 的,则说 X 和 Y 被 Z d-连通。如果 X 和 Y 被 Z d-分离,可以得到 X 和 Y 在给定 Z 时一定是独立的。 表示 d 分离, 表示独立
小练习:
判断下面几种情况是否是 d-分离 1. Are T and Y d-separated by the empty set?No 2. Are T and Y d-separated by W2?No 3. Are T and Y d-separated by {W2 , M1 }?Yes 4. Are T and Y d-separated by {W1 , M2 }?Yes 5. Are T and Y d-separated by {W1 , M2 ,X2}?No
3.8 因果流和关联流
最后,总结下图上的因果流和关联流。关联流沿着 unblock path 流动,因果流沿着有向边流动。我们将沿着有向边的关联流称作因果关联 causal association。总体的 association 包括 causal association 和 non-causal association。一个典型的非因果关联的例子是 confounding association。 常见的贝叶斯网络是纯粹的统计模型,所以我们只谈论贝叶斯网络中的关联流动。不过,关联在贝叶斯网络中的流动方式与在因果图中的流动方式完全相同,关联都是沿着链和叉子流动的,除非 condition on 中间节点,而 collider 会阻止关联的流动,除非 condition on collider。我们可以通过两个节点是否被 d-分离来判断它们是否有关联(两者之间有关联流)。 因果图的特殊之处在于,我们还假设边具有因果意义(因果边假设,假设 3.3)。这个假设将因果关系引入我们的模型,它使一种类型的路径具有全新的意义:有向路径。这个假设赋予了有向路径独特的作用,即沿着它们蕴含因果关系。此外,这个假设是不对称的;“X 是 Y 的原因”和“Y 是 X 的原因”是不一样的。这意味着关联和因果关系之间有一个重要的区别:关联是对称的,而因果关系是不对称的。
可以看到,Eq(2) 和 Eq(1) 的差别在于一个是 一个是。将这个例子更简化一些,假设 T 是一个二值的变量,我们想计算 ATE。因为 就是 potentialoutcome 的概率分布,因此可以通过求期望得到 ,同理得到 ,因此平均因果效应 ATE 就可以写成:
如果将 Eq(1) 代入,则 ATE 可以完全写成概率的形式,表达式中不包括 do,可以通过观察数据得到,这样 ATE 就是 identified。我们在下一小节会更形式化的描述这一过程。
4.4 后门调整
4.4.1 后门路径
以上图为例,回顾第三章,从 T 到 Y 存在两种 association,其中一种是 的因果关联,另一种是 和 的非因果关联,也称这两条路径是 unblocked(因为都是叉结构,且没有 condition on)。后门路径的含义就是,如果一条从 T 到 Y 的路径是 unblocked,且有指向 T 的边(即 ),则称这条路径是后门路径。为什么叫后门呢,因为本身这条路径是没有从 T 到 Y 的有向边的,但是因为有一条指向 T 的边,相当于进入了 T 的后门,这条路径就被打通了。
此时如果我们对 T 干预,则任何指向 T 的边都会被去掉,后门路径就被阻断了,T和 Y 之间就只剩因果关联了。 如果 condition on W1, W2, W3 和 C,同样也会阻断后门路径。
4.4.2 后门准则,后门调整
如果我们想将 完全写成概率的形式,则需要假设 W 满足后门准则。
对于 T 和 Y,如果下面条件为 True 的话,变量集合 W 则满足后门准则:
condition on W 可以阻断 T 和 Y 之间的所有后门路径
W 不包括 T 的所有子孙节点
将 W 引入到 中,可以得到
为什么 ,可以这样想一下。 对应的图中,因为对 T 进行干预,所有指向 T 的边都被删掉,因此,所有的后门路径都被 block 了,T 和 Y 之间只有沿着 的有向路径有关联流(因果关系)。在 对应的图中,因为 condition on W,所有后门路径也没 block了,T 和 Y 之间也只有沿着有向路径的关联流。在这两种情况中,关联流只沿着有向路径流动,因此对应着相同的条件概率分布。 因为没有指向 T 的边,T 没法对 W 造成影响,所以 ,因此上式可以继续写成:
Judea Pearls 说过,数学中的“=”不包含任何因果信息, 和 表示的都是同一个意思,“=”是对称的。但是为了表达因果,需要有一个非对称的符号。如果 A 是 B 的原因,那么改变 A 一定会改变 B,但是反之不成立,我们可以用结构等式 structural equation 来表示:
这里将“=”替换成”:=“。但是,B 和 A 之间的映射是确定性的。理想情况下,我们希望它是概率性的,为一些未知因素留出空间。因此可以写成下面这样:
其中,U 是为观察到的随机变量,在图中用虚线表示,未观察到的 U 类似于我们通过抽样个体看到的随机性;它表示确定 B 的所有相关(嘈杂)背景条件。f 的函数形式不需要指定,当不指定时,我们处于非参数状态,因为我们没有对参数形式做出任何假设。虽然映射是确定性的,但由于它以随机变量 U(“噪声”或“背景条件”变量)作为输入,它可以表示任何随机映射,因此结构方程是 的推广形式。因此,当我们引入结构方程后,截断分解和后门调整仍然成立。
有了结构等式后,我们可以更详细的定义原因和因果机制。生成变量的因果机制是与该变量相对应的结构方程。例如,生成 B 的因果机制是 Eq(5)。类似的,如果 X 出现在结构等式的右边,则 X 是 Y 的直接原因。