万字因果推断入门:为什么要做因果推断?

万字因果推断入门:为什么要做因果推断?_第1张图片

来源:PaperWeekly

1、为什么需要因果推断

1.1 辛普森悖论

首先,考虑一个与现实情况很相关的例子:针对某种新冠病毒 COVID-27,假设有两种疗法:方案 A 和方案 B,B 比 A 更稀缺(耗费的医疗资源更多),因此目前接受方案 A 的患者与接受方案 B 的患者比例约为:73%/27%。想象一下你是一名专家,需要选择其中一种疗法,而这个国家只能选择这一种疗法,那么问题来了,如何选择才能尽量少的减少死亡?

万字因果推断入门:为什么要做因果推断?_第2张图片 ▲ 表1.1

假设你有关于死于 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

万字因果推断入门:为什么要做因果推断?_第3张图片 ▲ 图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

万字因果推断入门:为什么要做因果推断?_第4张图片 ▲ 图1.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 更有效。没有因果关系,辛普森悖论就无法解决。有了因果关系,这就不是悖论了。

1.2 因果推断的应用

因果推断对科学来说是至关重要的,因为我们经常想提出因果要求,而不仅仅是关联性要求。例如,如果我们要在一种疾病的治疗方法中进行选择,我们希望选择能使大多数人得到治愈的治疗方法,同时又不会造成太多的不良副作用。如果我们想让一个强化学习算法获得最大的回报,我们希望它采取的行动能使它获得最大的回报。如果我们研究社交媒体对心理健康的影响,我们就会试图了解造成某一心理健康结果的主要原因是什么,并按照可归因于每个原因的结果的百分比排列这些原因。

因果推断对于严格的决策至关重要。例如,假设我们正在考虑实施几种不同的政策来减少温室气体排放,但由于预算限制,我们必须只选择一种。如果我们想最大限度地发挥作用,我们应该进行因果分析,以确定哪种政策将导致最大的减排。再举一个例子,假设我们正在考虑采取几项干预措施来减少全球贫困。我们想知道哪些政策将最大程度地减少贫困。

既然我们已经了解了辛普森悖论的一般例子以及科学和决策中的一些具体例子,我们将转向因果段与预测的不同之处。

1.3 相关性≠因果关系

许多人都会听过“相关并不意味着因果(correlation does not imply causation)”的口头禅。首先通过一个例子解释为何会这样。

万字因果推断入门:为什么要做因果推断?_第5张图片 ▲ 图1.3

如图 1.3,每年因落入游泳池而溺水的人数与 Nicolas Cage 每年出演的电影数量具有高度相关性。如果只看这张图可以得到以下几种解释:(1)Nicolas Cage 在他的电影中鼓励糟糕的游泳者跳进游泳池。(2)当 Nicolas Cage 看到那一年发生了多少溺水事件时,他是更有动力去出演更多的电影。(3)也许尼古拉斯凯奇有兴趣增加他在因果推理从业者中的知名度,所以他回到过去说服他过去的自己做正确数量的电影让我们看到这种相关性,但又不完全匹配,因为这会引起怀疑,从而阻止他以这种方式操纵与数据的相关性。

但是,只要是个有常识的人都知道上述解释都是不对的,两者没有因果关系,因此是一种虚假的相关性。从这个简单的例子我们可以直观的理解“相关性并不等于因果关系”。

1.3.1 为什么关联不等于因果

注意:“相关性 (Correlation)”经常被口语化地用作统计依赖性(statistical dependence)的同义词,然而,“关联”在理论上只是对 linear statistical dependence 的一种衡量。在以后,我们将统一使用关联(association)一词来表示 statistical dependence。

对于任何给定数量的关联,并不是“所有的关联都是因果关系”或“没有任何关联是因果关系”。有可能存在大量的关联,而其中只有一部分是因果关系。”关联不等于因果“只是意味着关联的数量和因果的数量可以是不同的。

再考虑一个例子,假设我们有穿鞋睡觉和醒来后头痛的数据。结果发现,在大多数情况下,如果有人穿鞋睡觉,醒来后会头痛。而在大多数情况下,如果不穿鞋睡觉,醒来后不头痛。如果不考虑因果,人们把这样有关联的数据解释为“穿鞋睡觉会导致人们醒来头痛”,尤其是当他们在寻找一个理由来证明不穿鞋睡觉是合理的。

万字因果推断入门:为什么要做因果推断?_第6张图片 ▲ 图1.4

事实上,它们都是由一个共同的原因引起的:前一天晚上喝酒(喝醉了大概率才会穿鞋睡觉)。如图 1.4 所示,这种变量被称为“混杂因子(confounder)”或“潜伏变量(lurking variable)”。我们将由 confounder 引起的关联称为 confounding association,其实是一个虚假的关联。

观察到的 total association 可以由混杂关联 confounding association(图中红色箭头)和因果关联 causal association(图中蓝色箭头)组成。可能的情况是,穿鞋睡觉确实对醒来后的头痛有一丢丢的因果关系。那么,总的关联将不只是混杂关联,也不只是因果关联,它将是两者的混合。例如,在图 1.4 中,因果关系沿着从穿鞋睡觉到头痛醒来的蓝色箭头流动。而混杂关联则沿着从穿鞋睡觉到喝酒再到头痛的红色路径流动。我们将在第三章中对这些不同种类的关联做出明确的解释。

1.4 涉及的一些概念

Statistical vs. Causal 即使有无限量的数据,我们有时也无法计算一些因果量。相比之下,许多统计数据都是关于解决有限样本中的不确定性。当给定无限数据时,没有不确定性。然而,关联是一个统计概念,并不是因果关系。即使拥有无限数据,在因果推断方面还有更多工作要做。

Identification(识别)vs. Estimation(估计) 识别因果关系是因果推理的特有内容。即使我们有无限的数据,这也是一个有待解决的问题。然而,因果推理也与传统的统计学和机器学习有着共同的估计。我们将主要从因果关系的识别开始(第2、4 和 6 章),然后转向因果关系的估计(第 7 章)。

Interventional(干预)vs. Observational(观察) 如果我们能够进行干预/实验,因果关系的识别就相对容易。这是因为我们可以实际采取我们想测量因果关系的行动,并简单地测量我们采取该行动后的因果关系。然而,如果只有观察性数据,识别因果关系比较困难,因为会有前面提到的 confounder 的存在。

2、潜在结果potential outcome

2.1 潜在结果 & 独立因果效应

首先通过两个例子引入这两个概念。

Scenario 1:假设你现在很不开心。而你正在考虑是不是要养一只狗来变得开心些。如果你在养狗后变得开心,这是否意味着是狗狗使你变得快乐?而如果你没有养狗,你同样也变得开心了呢?在这种情况下,狗并不是使你开心的必要条件,所以狗对你开心与否有因果效应的这个说法是不太对的。

Scenario 2:另一种情况是,如果你在养狗后变得开心。但是如果你没有得到一只狗,你依然会不开心。在这种情况下,狗狗对与你的开心就有很强的因果效应。

用 Y 表示结果——happiness, 表示 happy, 表示 unhappy;用 T 表示 Treatment——是否有狗, 表示有狗, 表示没狗。表示如果你有狗,那么会观察到的你养狗后是幸福指数。表示如果你没狗,那么会观察到的没狗后的幸福指数。而在 Scenario 1 中,;在 Scenario 2 中,。这里的 就是所说的 Potential Outcome。

形式化来说,potential outcome 是指如果你采取 treatment ,你的结果会是什么。potential outcome 与 observed outcome 不同之处在于,并非所有的 potential outcome 都已经被观察到,而是有可能被观察到。

对于单独的个体 ,individual treatment effect(ITE)独立因果效应被定义为:

f99461c98745555e4831f6d81eaec6c1.jpeg

只要人口中有一个以上的个体, 就是一个随机变量,因为不同的个体会有不同的 potential outcome。相比之下, 通常被视为非随机变量,因为下标 意味着我们将注意力限制在单个个体(在特定背景下),其 potential outcome 是确定性的。

ITE 是我们在因果推断中关心的一个主要指标。例如,在上面的情景 2 中,你会选择养狗,因为养狗对你的幸福感的因果效应是正的:。相反,在情景 1 中,你可能会选择不养狗,因为养狗对你的幸福没有因果效应:。

2.2 因果推断中的基本问题

因果推断中的基本问题是,如果通过缺失数据来得到因果效应。即我们不能同时观察到 和 ,那么我们就不能得到 ,就判断不了因果效应。这个问题是因果推断所特有的,因为在因果推断中,我们关心的是如何提出因果 claim,而这些 claim 是以 potential outcome 来界定的。

没有(不能)观察到的 potential outcome 被称为 counterfactuals,因为它们与事实(现实)相反。“potential outcome”有时又被称为“counterfactual outcome”。但是在这本书中不会这么叫,作者认为,一个 potential outcome 在观察到另一个 potential outcome 之前不会成为反事实。被观察到的 potential outcome 有时被称为事实 factual。请注意,在结果被观察到之前,只有潜在结果,不存在反事实或事实。

2.3 如何解决基本问题

2.3.1 平均因果效应 & 缺失数据解释

既然无法得到独立因果效应,那么能否得到平均因果效应(Average Treatment Effects,ATE)呢?理论上可以通过求期望来得到:

da6c208e921e56b8ed1de5c3467dcf7e.jpeg 万字因果推断入门:为什么要做因果推断?_第7张图片 ▲ 表2.1

但我们实际上如何计算 ATE 呢?让我们看一下表 2.1 中的一些捏造的数据。我们把这个表作为整个 population of interest。由于因果推断的基本问题,导致有些缺失数据。表中所有的?都表示我们没有观察到这个结果。

从这张表中,我们很容易计算出 associational difference(通过 T 列和 Y 列):

df409ef82be65cd6b341909ee9cba03d.jpeg

通过期望的线性运算法则,ATE 可以写成:

6203bc98f39f52895de5480117d21cdf.jpeg

乍一看,你首先可能会直接得到

cff18790eecb7c649ab8ef53e92505a0.jpeg

但其实这是错误的做法。如果这个公示成立,则意味着“因果就是关联”,这个观点我们在第一章已经反驳过了。

万字因果推断入门:为什么要做因果推断?_第8张图片

以第一章中穿鞋睡觉是否会导致第二天头痛的例子为例

万字因果推断入门:为什么要做因果推断?_第9张图片

T=1 中,绝大多数都是喝了酒的,而 T=0 中绝大多数都是没喝酒的。T=1 和 T=2 这两个 subgroub 是 uncomparable 的,E[Y|T=1] 肯定是要大于 E[Y(1)] 的,因为喝酒才会更容易头疼。

那么 comparable 的两个 group 长什么样呢?就如下图所示,这时候两个式子之间就可以划等号了。

万字因果推断入门:为什么要做因果推断?_第10张图片


2.3.2 Ignorability & Exchangeability

这时候,我们就可以问出本章中最重要的问题“什么样的假设可以使 ATE=associational difference”?等同于“什么假设让我们能够通过取 列的平均值(忽略问号)减去从 列的平均值(忽略问好)来计算 ATE?”

这个问题的答案就是假设 ,即 potential outcome 和 treatment 独立。这个假设使我们能够将 ATE 简化为 associational difference,即有了下面这个推导:

e81149142efaef71c08839abe7139fc5.jpeg

第一个=成立由 得到,第二个=成立因为在 条件下,potentionl outcome 和 observe outcome 是相等的,可以跳到公式 2.13 得到解释。


万字因果推断入门:为什么要做因果推断?_第11张图片

可以从两个方面来理解假设 2.1 中的独立性:Ignorability 和 Exchangeability。

Ignorability:

这种对缺失数据的忽略被称为可忽略性 Ignorability。换句话说,Ignorability 就像忽略人们最终是如何选择他们所选择的 treatment,而只是假设他们是被随机分配 treatment 的,即也就是去掉了 confounder 的影响,即 ;展现在因果图中就是删掉 的边。

万字因果推断入门:为什么要做因果推断?_第12张图片 ▲ Fig 2.1 万字因果推断入门:为什么要做因果推断?_第13张图片 ▲ Fig 2.2
Exchangeability:

关于这个假设的另一个角度是可交换性 Exchangeability。可交换性是指实验组(treatment group)里的个体是可交换的,即如果它们被调换,新的实验组将观察到与旧的实验组相同的结果,而新的控制组将观察到与旧的控制组相同的结果。形式化的,可交换性意味着:

万字因果推断入门:为什么要做因果推断?_第14张图片

继而可以推出:

02845d98ed9da08eca36a2da3abcb1d6.jpeg

这和 也是等价的。关于可交换性的一个重要直觉是,它保证了实验组的 comparable。换句话说,实验组在 treatment 以外的所有方面都是相同的。这种直觉是 "控制 "或 "调整 "变量的概念的基础,我们很快会在讨论条件交换性时讨论这个问题。

用可视化的例子来理解 Exchangeability:

万字因果推断入门:为什么要做因果推断?_第15张图片

T=1 的所有个体称为 Group A,T=0 的所有个体称为 Group B,把 GroupA 和 GroupB 中的个体全部交换后,Observe outcome 保持不变。

万字因果推断入门:为什么要做因果推断?_第16张图片

那么交换前后的 也保持不变,然后就可以推出独立性。

万字因果推断入门:为什么要做因果推断?_第17张图片

再来介绍一个概念:identifiability

万字因果推断入门:为什么要做因果推断?_第18张图片

如果可以把一个因果效应的表达式减少到一个纯粹的统计表达式,只使用统计符号,如 T、X、Y,期望,和条件来表示,则意味着因果量 是可识别的。

我们已经看到,假设 2.1 具有非常好的性质。但是,一般来说,它是完全不现实的,因为在我们观察到的大多数数据中都可能存在混杂因素(图2.1)。然而,我们可以通过进行随机实验 RCT 实现这一假设,随机实验迫使 treatment 不是由任何其他因素引起的,而是由抛硬币决定的,所以我们就有了图 2.2 所示的因果结构。我们在第五章中更深入地讨论随机实验。

万字因果推断入门:为什么要做因果推断?_第19张图片

本小节从两个角度介绍了假设 2.1:可忽略性和可交换性。从数学上讲,这两个假设的意思是一样的,但它们的名字对应于对同一假设的不同思考方式。可交换性和可忽略性只是这个假设的两个名称。之后,我们将介绍这个假设的更实际的、有条件的版本。

2.3.3 Conditional Exchangeability & Unconfoundedness

万字因果推断入门:为什么要做因果推断?_第20张图片

用上面的例子解释假设 2.2 就是:“在所有喝醉酒的人里,其穿不穿鞋睡觉不是由其主观意识决定的,而与意识无关,是由一个隐藏的上帝之手决定的”。同样的对于

2.2,也有两种不同的解释。

Conditional exchangeability:

在观察性数据中,假设实验组是可以 exchangeability 是不现实的。换句话说,没有理由期望各组在 treatment 之外的所有相关变量上都是一样的。然而,如果我们通过条件化来控制相关变量,那么实验组或许是可交换的。这种情况下,尽管 treatment 和 potential outcome 可能是 unconditionally associated(由于 confounder 存在,红色虚线),但在 X 固定住的条件下,它们是没有关联的(想象下红线被截断)。

万字因果推断入门:为什么要做因果推断?_第21张图片

如 Fig 2.3 所示,X 是 T 和 Y 的 confunder,因此,T 和 Y 之间有一条沿着 的 non-causal association(红色虚线所示)。但是,当我们 contioning on X,即固定住 X 的值,T 和 Y 之间的 non-causal association 就会被 block 掉,变成:

万字因果推断入门:为什么要做因果推断?_第22张图片

我们可以推出在 X 固定的条件下的 causal effect,即 conditional average treatment effect:

万字因果推断入门:为什么要做因果推断?_第23张图片

第一行是期望公式,第二行是由假设 2.2 得到的,第三行是由观察的数据得到的。

这时候再对 X 求期望,就可以得到完整的 average treatment effect,这个又叫做 Adjustment Formula(调整公式):

万字因果推断入门:为什么要做因果推断?_第24张图片

Conditional exchangeability(假设 2.2)是因果推理的核心假设,它有很多名

称。例如,unconfoundedness 无混杂性、conditional ignorability 条件可忽略性、no unobserved confounding 无未观察到的混杂、selection on observables 对可观察的选择、no omitted variable bias 无遗漏变量偏差等。我们将在本系列教程中大量使用 “unconfoundedness 无混杂性”这个名称。

但是,实际情况是 我们通常无法确定有条件的可交换性是否成立。可能有一些未观察到的混杂因子不是 X 的一部分,这意味着违反了条件可交换性,如下图所示,由于存在另外一个混杂因子 W,独立性并不存在。

万字因果推断入门:为什么要做因果推断?_第25张图片

幸运的是,随机试验可以解决这个问题(第 5 章)。不幸的是,在观测数据中,这种情况很有可能存在。我们能做的最好的事情就是观察并拟合尽可能多的协变量(X 和 W)——尽可能确保 unconfoundedness。

2.3.4 Positivity/Overlap and Extrapolation

虽然想象中对许多协变量进行 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

万字因果推断入门:为什么要做因果推断?_第26张图片

下面解释 positivity 为啥重要,首先回顾下调整公式:

如果违反了 positivity,那么就有 或者 ,由联合概率公式得到 或 ,这正对应着调整公式中的两个事件。

把 Eq.(1) 中的期望改成求和,Eq(1) 就可以写成:

应用 Bayes rule, 可以得到:

0d7a9ea7f378d1b63d27955a9fc0afb7.jpeg

在 Eq.(2) 中,如果分母中的 ,那么算不出 causal effect 了。

直观的解释是如果 ,那么意味着 X=x 这一组 group 里面,每个人都接受了 treatment(每个喝醉酒的人都穿鞋睡觉),这样就没法计算 causal effect。

The Positivity-Unconfoundedness Tradeoff:

尽管 condition on 更多的协变量可能会有更高的机率满足 unconfoundedness,但同样会有更大的机率违反 Positivity。随着我们增加协变量的数量,每个 subgroup 越来越小,整个 subgroup 得到同样 treatment 的可能性越来越高。例如,一旦任 subgroup 的大小减少到 1,肯定不会满足 Positivity。

2.3.5 No interference, Consistency, and SUTVA

这一小节再介绍几个其他的概念:

No interference:
万字因果推断入门:为什么要做因果推断?_第27张图片

No interference 指的是每个个体的 potential outcome 只和当前这个个体所接受的 treatment 有关,和其他个体的 treatment 无关。

Consistency:
万字因果推断入门:为什么要做因果推断?_第28张图片

Consistency 一致性指的是,如果观察到的 treatment T=t,观察的结果Y 实际上是 T=t 的 potential outcome--Y(t)。这样就能解释为什么 ,这可能解决了前面部分一些读者留下的疑问,即为什么

f784f14308b9b3f13e7f92f45d46b6d0.jpeg

2.3.6 Tying It All Together

搞明白上述假设后,我们再来回顾下调整公式,这一次在每个等式后把需要的假设列了出来:

万字因果推断入门:为什么要做因果推断?_第29张图片

这就是怎么把所有这些假设结合在一起,来保证平均因果效应 ATE 的可识别性。通过上面的公式,很容易就可以算 ATE 的实际估值。

3、图中的因果流和关联流

3.1 什么是图?

我猜看这系列文章的朋友对图 Graph 的概念已经再熟悉不过了,这里就不费口舌细说了。图是由节点 node 和边 edge 组成的一个数据结构,下面放几张普通类型图的示例:

万字因果推断入门:为什么要做因果推断?_第30张图片

3.2 贝叶斯网络

因果图模型的许多工作是在概率图模型的基础上完成的。要了解因果图首先要了解一下什么是概率图模型,虽然两者有着很大差别。贝叶斯网络是最主要的概率图形模型,因果图模型(因果贝叶斯网络)继承了它们的大部分属性。

联合概率分布可以通过 chain rule 写成如下形式:

ca6fe2515706e3393b8871fcb5d00a00.jpeg

如果直接对上面公式建模的话,参数数量会爆炸。

万字因果推断入门:为什么要做因果推断?_第31张图片

如果 只依赖依赖 的话,没必要condition on所有的变量,即 可以写成 。我们可以用 graph 表示变量之间的依赖关系,这个 graph 就叫做贝叶斯网络。一般而言,贝叶斯网络的有向无环图 DAG 中的节点表示随机变量,它们可以是可观察到的变量,抑或是隐变量、未知参数等。

给定 DAG,怎么计算所有变量的联合概率分布呢,需要用到下面的假设,即X节点只和它的父节点有关,和其他节点无关:

4e127c357bea30a0a844e6ac6db899c8.jpeg 万字因果推断入门:为什么要做因果推断?_第32张图片

这样,图 3.6 的联合概率分布就可以写成下面形式:

291f8d4e7e251071c878cd647022f10d.jpeg
万字因果推断入门:为什么要做因果推断?_第33张图片 万字因果推断入门:为什么要做因果推断?_第34张图片

3.3 因果图

上一节是关于统计模型和关联建模的。在本节中,我们将用因果假设来增强这些模型,把它们变成因果模型,使我们能够研究因果关系。为了引入因果假设,我们必须首先理解 “什么是原因 cause”。

66c149c978f3e74eaae8807adb709e4d.jpeg

根据上面的定义,如果变量 Y 能随着 X 的变化而变化,则称 X 是 Y 的原因。 然后给出贯穿全书的(严格)因果假设 3.3,在有向图中,每个节点都是其子节点的直接原因。X 是 Y 的父节点,X 就是 Y 的直接原因,X 的原因(X 的父节点)也是Y的原因,但是是间接原因。

a32eaba81a7b63e8a4756f485ef987bd.jpeg

如果我们把 Y 的所有直接原因 fix,那么改变 Y 的任何其他原因都不会引起 Y 的任何变化。因为 cause 的定义(Definition 3.2)意味着 cause 和它的 effect 是相关的,而且因为我们假设所有的父节点都是他们子节点的原因,所以因果图中父节点和子节点是相关的。

非严格因果关系假设将允许一些父节点不是其子节点的原因,但不常见。除非另有说明,在本书中,我们将用“因果图”来指满足严格因果边假设的 DAG,省略“严格”一词。

总结一下,DAG 有向无环图是 graph 的一种特殊形式,贝叶斯网络和因果图都是用 DAG 表示的,但是两者的含义不一样,贝叶斯网络表达的是变量之间的依赖关系,而因果图表达的是变量之间的因果关系。由于表示因果关系的边也暗含着两个变量之间有关联,因此,DAG 里既有因果关系也有关联关系,这也对应本章的题目。

3.4 最简单的结构

现在我们已经了解了基本的假设和定义,我们可以进入本章的核心:DAG 中的关联和因果关系。首先我从构成 DAG 的基本结构入手。这些最小的构建块包括 chain 链(图 3.9a)、fork 叉子(图 3.9b)、immoralities 对撞(图 3.9c)、两个未连接的节点(图 3.10)和两个连接的节点(图 3.11)。其示意图分别如下所示

万字因果推断入门:为什么要做因果推断?_第35张图片 万字因果推断入门:为什么要做因果推断?_第36张图片

在一个由两个未连边的节点组成的 graph 中(图3.10), 和 肯定是独立的 independent、无关联的 unassociated。

相反,如果两个节点之间有边(图3.11),那么一定是 associated 的。这里用到的是 Assumption 3.3:由于 x1 是 x2 的原因,x2 必须能够对 x1 的变化做出反应,所以 x2 和 x1是关联的。一般来说,如果两个节点在因果图中是相邻的,它们都是相关的。

3.5 链 & 叉子结构

把链 chain 和叉子 fork 放在一节介绍是因为它俩的特性是一样。

万字因果推断入门:为什么要做因果推断?_第37张图片

相关性:

在 chain 中,x1 是 x2 的原因,x2 是 x3 的原因,那么 x1 和 x2 是相关的,x2,x3 是相关的,x1 和 x3 也是相关的。

在 fork 中,x2 是 x1 和 x3 的共因,x1 和 x3 也是相关的。这个可能有点反直觉,x1,x3 之间明明没有边,为啥也是有关联的呢?举个例子:温度升高会导致冰淇淋销量上升,同时也会使犯罪率上升,从冰淇淋销量和犯罪率的数据上来看,他们有着相同的趋势,因此是相关的,尽管他们之间并没有因果关系。

关联流 associate flow 是对称的,x1 和 x3 相关,x3 也和 x1 相关,即图中红色虚线部分。而因果流是非对称的,只能沿着有向边流动,即 x1 是 x3 的原因,x3 不是 x1 的原因。

独立性:

chain 和 fork 也有着相同的独立性。如果我们把 x2 固定住,即 condition on x2,那么 x1 和 x3 的相关性就会被阻断 block,变的独立。

万字因果推断入门:为什么要做因果推断?_第38张图片

在 chain中,如果把 x2 固定成一个定值,x1 做任何改变,都不会影响 x2 的变换,因为已经被固定了,那么 x3 也不会发生变化,因此 x1,x3 变的独立。

Proof:

chain 的联合概率分布如下:

ffc2c3754e85c5c3887b7e9184c6d19a.jpeg

然后,condition on x2, 利用 Bayes rule 得到:

万字因果推断入门:为什么要做因果推断?_第39张图片

再次利用 Bayes rule ,得到:

万字因果推断入门:为什么要做因果推断?_第40张图片

由此得出结论 。

3.6 对撞结构

对撞结构是指 x1,x3 都是 x2 的原因,x2 又叫做 collider。这种情况下时,x1 和 x3 都影响 x2,但是信息没有从 x2 流向 x1 或者 x3,因此 x1 和 x3 是相互独立的。的 association flow 被 x2 block 掉了,图中红线只有一半。

万字因果推断入门:为什么要做因果推断?_第41张图片
proof:
万字因果推断入门:为什么要做因果推断?_第42张图片

如果固定 x2,即 condition on x2,此时 x1,x3 从独立变的相关了。举个不恰当的例子,x1 是财富,x2 是长相,x3 是追女孩,长得帅有钱才能追到女孩。如果某个人没有追到女孩,而我们观察到他帅,那他肯定没钱,如果他有钱,那他一定长得不行。

如果 condition on collider 节点的后代节点,x1,x3 也是相关的。可以把 x2 的后代节点想象成 x2 的代理节点。condition on 代理节点和 condition on x2 的效果是一样的。

3.7 d-分离

首先引入 blocked path 的概念,给定条件集合 Z,Z 里面的变量都是固定住值的,如果存在一条路径满足以下两种情况之一,这就是一条 blocked path:

  • 这条路径存在 chain()或者存在 fork(),且 condition on W()

  • 这条路径存在一个 collider W( ),并且并且 W 的所有后代节点也不固定()


万字因果推断入门:为什么要做因果推断?_第43张图片

同理,unblocked path 的定义与 block path 相反。blocked path 中不存在从 X 到 Y 的 association flow,被 block 掉了。unblocked path 中存在从 X 到 Y 的 association flow。

下面给出 d-分离的概念:

万字因果推断入门:为什么要做因果推断?_第44张图片

在给定集合 Z 的条件下,如果 X 和 Y 中的任意两个节点之间的路径都被 block,那么就说 X 和 Y被 Z d-分离。zhiyao 存在一条路径是 unblock 的,则说 X 和 Y 被 Z d-连通。如果 X 和 Y 被 Z d-分离,可以得到 X 和 Y 在给定 Z 时一定是独立的。表示 d 分离, 表示独立。

万字因果推断入门:为什么要做因果推断?_第45张图片

小练习:

万字因果推断入门:为什么要做因果推断?_第46张图片

判断下面几种情况是否是 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 的原因”是不一样的。这意味着关联和因果关系之间有一个重要的区别:关联是对称的,而因果关系是不对称的。

4、因果模型、do算子、干预

4.1 do算子和干预

在概率中,我们有以... 为条件的概念(condition on),但这与干预不同。以 为条件仅意味着我们将关注点限制在 整体人群中接受 treatment=t 的这一部分人群。相比之下,干预 intervention 是让整体人群都接受 treatment=t,而不管观察到的其本身的 treatment 是否为 t。通常用 do 算子表示干预操作,即让整体人群都接受 treatment=t 等价于 。可以对照图 4.2 加深理解,subpopulations 表示观察到的数据中蓝色部分是 T=0 的集合,红色部分是 T=1 的集合。Conditioning 表示我们只关注其中的蓝色部分或红色部分。do(T=1) 是指让本身 T=0 的蓝色部分也变成 T=0,即红色。

万字因果推断入门:为什么要做因果推断?_第47张图片

还记得第二章讲的潜在结果 potential outcome 吗, 和 是等价的。的分布可以写成:

6e5e298d0d457d8b8462846699027700.jpeg

平均因果效应 ATE 就可以写成如下形式:

dbe00d0e3fe199f2e67d48c05a153583.jpeg

我们更关心 而非其均值,有了概率分布,期望自然就求出来了。我们将 及其他包含 do 算子的概率分布统称为干预分布 interventional distributions.。

干预分布 和观察分布 observational distribution 有本质的区别。观察分布 或 中没有 do 算子,所以我们可以从观察到的数据中直接求得而不需要做任何额外的实验。如果可以将包含 do 算子的表达式 Q 化简成不包含 do 的形式,那么 Q 就是可识别 identifiable 的。

不论何时,每当 do 算子出现在“|”之后,都意味着该表达式中的一切都在干预措施发生后(即 post-intervention)的情况下得到的。例如 表示在 这个 subset 中让其中所有个体的 treatment 都等于 t 后 Y 的期望。相反, 表示在 这个 subset 中被干预之前(i.e. pre-intervention)的期望。这两者的区别对之后要介绍的反事实非常重要。

4.2 Modularity模块化假设

在介绍这个非常重要的假设之前,我们必须指定因果机制是什么。有几种不同的方法可以考虑因果机制。在本节中,我们将产生 的因果机制指定为 的条件概率分布 。正如图 4.3 所示,产生 的因果机制是所有 的父节点及其指向 的边。

万字因果推断入门:为什么要做因果推断?_第48张图片

模块化假设是指:假设对变量 干预只会改变 的因果机制,只局限在图中椭圆内,不会改变生成任何其他变量的因果机制。从这个意义上讲,因果机制是模块化的。模块化假设的明确定义如下:

万字因果推断入门:为什么要做因果推断?_第49张图片

如果对节点集合 S 进行干预,将其中的变量设为常数,对于任意节点 i:

  • 如果节点 i 不在集合 S 中,那么其条件概率分布保持不变

  • 如果节点 i 在集合 S 中,如果 是变量 被干预后指定的值,那么 一定为 1,否则为 0。

第二点也可以说,如果 和干预一致( is consistent with the intervention )( 等于 被干预后的值),则

模块化假设允许我们只在一个图中就可以 encode 不同的干预分布。例如

c2e2a678bf5012a5b21c98c33cab6755.jpeg

这三种完全不同的分布,都可以用表示联合概率分布 的图来表示,除了涉及到干预的 factor,其他的 factor 都是一样的。

干预分布的因果图与用于联合分布的图相同,只不过是移除了指向干预节点的所有边:这是因为被干预节点的条件概率分布 已经是 1 了,因此我们可以忽略该 factor。另一种解释是既然干预节点已经设置为常数,那么它必然不会受到父节点的影响,因此可以去掉之间的因果关系。删掉边的图称为 manipulated graph。以图 4.4 为例,对 T 干预对应 (b),对 干预对应 (c).

万字因果推断入门:为什么要做因果推断?_第50张图片

4.3 截断因式分解

回顾下贝叶斯网路中联合概率分布的分解形式:

ae5dee26e3f45f1c76d7126352ffd2f8.jpeg

现在对节点集合S进行干预,对于 , 和干预前的值保持一样。对于 ,,因此,干预后的概率分布可以表示为(截断因式分解):

45c389dc3ff021fd49ec2dfdd50b961c.jpeg

4.3.1 Example

万字因果推断入门:为什么要做因果推断?_第51张图片

以最简单的有 confounder 存在的因果图为例,联合概率分布可以表示为:

46d98b1c63cb459a988e00455e464643.jpeg

对 T 进行干预后,,则:

0a051b016c78dd161b6d01fa067f03fb.jpeg

y 的边缘概率分布为:

通过比较干预分布和正常的条件概率分布的差别,可以更深刻地理解为什么“关联不是因果”

可以看到,Eq(2) 和 Eq(1) 的差别在于一个是 一个是。将这个例子更简化一些,假设 T 是一个二值的变量,我们想计算 ATE。因为 就是 potentialoutcome 的概率分布,因此可以通过求期望得到 ,同理得到 ,因此平均因果效应 ATE 就可以写成:

a3c0d00abd040460971ddd515c4bd515.jpeg

如果将 Eq(1) 代入,则 ATE 可以完全写成概率的形式,表达式中不包括 do,可以通过观察数据得到,这样 ATE 就是 identified。我们在下一小节会更形式化的描述这一过程。

4.4 后门调整

4.4.1 后门路径

万字因果推断入门:为什么要做因果推断?_第52张图片

以上图为例,回顾第三章,从 T 到 Y 存在两种 association,其中一种是 的因果关联,另一种是 和 的非因果关联,也称这两条路径是 unblocked(因为都是叉结构,且没有 condition on)。后门路径的含义就是,如果一条从 T 到 Y 的路径是 unblocked,且有指向 T 的边(即 ),则称这条路径是后门路径。为什么叫后门呢,因为本身这条路径是没有从 T 到 Y 的有向边的,但是因为有一条指向 T 的边,相当于进入了 T 的后门,这条路径就被打通了。

万字因果推断入门:为什么要做因果推断?_第53张图片万字因果推断入门:为什么要做因果推断?_第54张图片

此时如果我们对 T 干预,则任何指向 T 的边都会被去掉,后门路径就被阻断了,T和 Y 之间就只剩因果关联了。

如果 condition on W1, W2, W3 和 C,同样也会阻断后门路径。

4.4.2 后门准则,后门调整

如果我们想将 完全写成概率的形式,则需要假设 W 满足后门准则。

对于 T 和 Y,如果下面条件为 True 的话,变量集合 W 则满足后门准则:

  1. condition on W 可以阻断 T 和 Y 之间的所有后门路径

  2. W 不包括 T 的所有子孙节点

万字因果推断入门:为什么要做因果推断?_第55张图片

将 W 引入到 中,可以得到

620fb12c0c4704e87c7d4b1e993dfef7.jpeg

为什么 ,可以这样想一下。对应的图中,因为对 T 进行干预,所有指向 T 的边都被删掉,因此,所有的后门路径都被 block 了,T 和 Y 之间只有沿着 的有向路径有关联流(因果关系)。在 对应的图中,因为 condition on W,所有后门路径也没 block了,T 和 Y 之间也只有沿着有向路径的关联流。在这两种情况中,关联流只沿着有向路径流动,因此对应着相同的条件概率分布。

因为没有指向 T 的边,T 没法对 W 造成影响,所以 ,因此上式可以继续写成:

fdfb074fc7c02ea3e378e6538381afd2.jpeg

这就是后门调整公式。

93b5a8272dfb89c6b7d64cb50b259f05.jpeg万字因果推断入门:为什么要做因果推断?_第56张图片


4.4.3 Relation to Potential Outcomes

还记得第二章介绍过的调整公式吗:

8e39a22118f6227f11cd1d5aebf4da3d.jpeg

既然都叫调整公式,后门调整和 Eq(3) 有什么联系吗?对干预后的 Y 求期望:

万字因果推断入门:为什么要做因果推断?_第57张图片

把 T=1 和 T=0 代入得:

8933838b46649cde663bd2164a3885ec.jpeg

可以看到 eq(4) 和 eq(3) 是相等的, 是 potential outcome 的另一种表示形式。当然,eq(3) 成立也有个前提是 conditional exchangeability:

8359bac8afa72d7de38e2361589b88e4.jpeg

4.5 结构因果模型

本节我们将从因果图模型转到结构因果模型。相比于比较直观的图模型,结构因果模型可以更详细清晰的解释什么是干预和因果机制。

4.5.1 结构等式

Judea Pearls 说过,数学中的“=”不包含任何因果信息, 和 表示的都是同一个意思,“=”是对称的。但是为了表达因果,需要有一个非对称的符号。如果 A 是 B 的原因,那么改变 A 一定会改变 B,但是反之不成立,我们可以用结构等式 structural equation 来表示:

644d08769ba1314bddd077d5e370d64c.jpeg

这里将“=”替换成”:=“。但是,B 和 A 之间的映射是确定性的。理想情况下,我们希望它是概率性的,为一些未知因素留出空间。因此可以写成下面这样:

c001ee9221d0c814201b361dcba422e7.jpeg

其中,U 是为观察到的随机变量,在图中用虚线表示,未观察到的 U 类似于我们通过抽样个体看到的随机性;它表示确定 B 的所有相关(嘈杂)背景条件。f 的函数形式不需要指定,当不指定时,我们处于非参数状态,因为我们没有对参数形式做出任何假设。虽然映射是确定性的,但由于它以随机变量 U(“噪声”或“背景条件”变量)作为输入,它可以表示任何随机映射,因此结构方程是 的推广形式。因此,当我们引入结构方程后,截断分解和后门调整仍然成立。

万字因果推断入门:为什么要做因果推断?_第58张图片

有了结构等式后,我们可以更详细的定义原因和因果机制。生成变量的因果机制是与该变量相对应的结构方程。例如,生成 B 的因果机制是 Eq(5)。类似的,如果 X 出现在结构等式的右边,则 X 是 Y 的直接原因。

万字因果推断入门:为什么要做因果推断?_第59张图片

图 4.8 更复杂的结构等式如下:

万字因果推断入门:为什么要做因果推断?_第60张图片

在因果图中,噪声变量通常是隐式的(虚线),而不是明确绘制的。我们写结构方程时已知的变量称为内生(endogenous)变量, 这些是我们正在建模因果机制的变量 - 在因果图中具有父母的变量。相反,外生(exogenous)变量是因果图中没有任何父母的变量。这些变量是我们因果模型外部的,因为我们没有为其建模因果机制。例如,在图 4.8 描述的因果模型中,内生变量为 。外源变量为 。

结构因果模型 SCM 定义如下,包含一组内生变量,一组外生变量,一组生成内生变量的函数:

万字因果推断入门:为什么要做因果推断?_第61张图片


4.5.2 干预

从 SCM 的角度来描述干预会非常简单。对 T 进行干预 相当于将 T 的结构等式替换成 。例如,图 4.9 对应的 SCM 为:

万字因果推断入门:为什么要做因果推断?_第62张图片万字因果推断入门:为什么要做因果推断?_第63张图片

如果对 T 干预,让其等于 t,那么干预后的 SCM 则为:

万字因果推断入门:为什么要做因果推断?_第64张图片万字因果推断入门:为什么要做因果推断?_第65张图片

可以发现,除了 T 本身的结构等式,其他的等式都保持不变。这也是由模块化假设决定的。

万字因果推断入门:为什么要做因果推断?_第66张图片

换句话说,干预操作是 localized。通过模块化假设,可以引出 Pearl 所说的反事实准则。回顾下第二章潜在结果的概念, 指的是当 treatment=t 时个体 i 的潜在结果。这里我们换另一种记号表示,,其中 u 等价于 i。根据定义 4.3,反事实准则指的就是干预之前 treatment=t 的潜在结果与干预之后 的潜在结果相等。

501e4e420e95bf66e44c6a477976b737.jpeg

参考文献

[1] Brady Neal, Introduction to Causal Inference from a Machine Learning Perspective, 2020

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)大脑研究计划,构建互联网(城市)大脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。每日推荐范围未来科技发展趋势的学习型文章。目前线上平台已收藏上千篇精华前沿科技文章和报告。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

万字因果推断入门:为什么要做因果推断?_第67张图片

你可能感兴趣的:(大数据,python,机器学习,人工智能,编程语言)