这篇文章基本上可以说是《Causal Inference in Statistics A Primer》的读书笔记,然后按照自己的理解精简和突出了一些内容。
Preliminaries
“Correlation is not causation(相关性不是因果性)”。这句话大家应该是经常听说的。曾经的统计学主要研究相关性。对于$Y=aX+b$这样一个线性模型来说,它是假定$Y$可以由$X$表示,并没有假定$Y$是由$X$产生的。
举个例子,数据的生成过程为:$X=2Y+3$。现在我们有两列数据$x$和$y$,我们想用$X$来预测$Y$。构造线性模型$Y=aX+b$。可以利用数据进行最小二乘能够得到$a$和$b$的值。这里由于已知真实的生成过程,可以直接得到$a=1/2$,$b=-3/2$。因此我们会发现,虽然$X$是由$Y$生成的,但这并不影响用$X$来预测$Y$,只要有相关性就可以预测,不用考虑因果性。但我们都心知肚明,我们真正想研究的是因果性,而仅仅从数据上我们是没法判断出因果性的。因此我们需要新的工具,也就是本书所介绍的因果推断。
Simpson’s Paradox
我们先介绍一个最经典的、用来说明相关性和因果性差异的例子——辛普森悖论。
现在的辛普森悖论是泛指一种现象:对于数据总体来说存在的某种相关性在各个子群体中却不成立。它最早的例子是这样的:
我们从上图可以发现:如果从整体上看,吃药的人恢复情况没有不吃药的好(78% vs 83%);但是如果按照性别来划分之后,我们会发现,不管是男性还是女性群体,吃药的人恢复情况都要高于不吃药的人。也就是说,这个药既能帮助男性又能帮助女性,但是却对整体有害。这听起来就没有道理,所以被称为悖论。
如何解释这个悖论,仅从上面的数据是无法解释的。为此,我们需要额外的信息:关于数据背后的故事(生成机制、因果关系)。假设我们知道了一个额外事实:雌激素对于恢复有副作用,所以无论是否用药,女性相较于男性都更难恢复。再结合数据我们发现女性吃药的比例远高于男性,这个药看似对整体有害的原因就找到了:在这个实验中,如果随机选择一个人吃药,那么这个人更有可能是一个女性,因此恢复的难度就更大(可能大于以50%的概率选择一个人,不给他(她)吃药而恢复的概率。本实验就是这种情况)。换句话说,女性是是否吃药以及是否恢复的一个共同影响因素。因此,我们在评价这个药的时候,应该参考分类之后的数据,即考虑在同一性别下的药的作用,以此来消除雌激素的影响。这和我们的直觉是相吻合的,即分类的数据更具体,能提供更多的信息。
我们再看一个连续型变量的例子。
探究锻炼对胆固醇水平的影响。从整体上看,锻炼和胆固醇水平呈正相关关系,而如果按照年龄分类,每一个年龄段中,锻炼和胆固醇水平呈负相关关系。如果我们知道年龄越大的人越可能运动,以及有更高的胆固醇水平,那么这个悖论也可以解释了。同样的,Age is a common cause of both treatment (exercise) and outcome (cholesterol). 因此,我们应该以年龄分类数据作为决策依据。
然而,并不是在所有情况下,考虑分类的数据都可以得到正确的答案。这可能会让人感觉有些惊讶。和第一个性别的例子类似,只不过这次我们记录的是试验之后的血压值。
在这个例子里,我们知道的额外事实是:药物可以通过血压来影响恢复。那么我们是应该使用分类数据,还是使用整体数据的结果?我们的目标和之前性别的例子是一样的,都是要评估药物对于恢复的影响。在这个例子中,由于药物可以影响血压(从数据可以看出药物是可以降低血压),而血压又影响恢复(血压低的恢复率更高),所以没有理由要按照血压来分类研究(如果血压是在吃药之前测量,并且血压高低会影响是否吃药,那就是和性别这个例子一样了)。故我们应该看整体数据的结果,即吃药对于恢复有积极作用。之所以在子群体中会出现吃药不利于恢复的情况,是因为虽然药物通过降血压来利好恢复(积极的间接作用),但是药物本身对于恢复是有副作用的(消极的直接作用)。而我们要评估的是药物的全部作用,所以整体上还是积极的(这可能就是所谓的“是药3分毒”吧)。
综合上面的几个例子,我们可以发现,有时候正确的结果是在分类数据中,而有时候是在整体数据上。而仅仅通过数据,我们是无法判断是前者还是后者,我们需要知道数据背后的故事(因果关系)。为了描述这样的因果关系,在原来概率的基础上,我们需要引入一些新的工具——Graph(之后我们会介绍)。不过在这之前,我们先回顾一些概率的知识,这些知识结合Graph将作为因果推断的主要分析框架。
Probability and Statistics
因果推断中最常用的就是条件概率。
-
事件版本的条件概率:$P(A|B)$表示在$B$发生的条件下$A$发生的概率
-
随机变量版本的条件概率:$P(Y=y|X=x)$表示随机变量$X$取值为$x$时$Y=y$的概率,其中的等于某个值也可以替换成属于某个区间
由条件概率可以定义独立性。事件$A$和事件$B$独立等价于$P(A|B)=P(A)$或者$P(B|A)=P(B)$。
对应的变量版本的独立性也是类似的。
因果推断中还有2个公式也经常使用,就是全概率公式和贝叶斯公式。
More about Bayes
我觉得贝叶斯学派的观念相较于频率学派在现实中更具有指导意义(一家之言,仅供参考)。所以关于贝叶斯我想多说一点,下面介绍一个贝叶斯公式的经典例子——Month Hall,应该可以比较好地阐述贝叶斯的思想。
翻译一下就是说,你参加一个游戏节目,有A,B,C三扇门,其中有一扇门后藏有一辆汽车,其他两个门后是山羊。你随机猜了A门,然后主持人打开了C门,自然后面是一只山羊。他告诉你现在你可以选择改变答案(选择B门),或者保持原来的选择(选择A门)。问如果是你,会怎么选?
许多人在第一次遇到这个问题时,会很自然的有如下考虑:汽车在哪个门后和我的选择时相互独立的,而C门后是一只羊,所以汽车必定是在A或者B门后,而且概率是相等的,都是0.5,所以无所谓改变或者不改变选择。
但是,正确答案却是如果你选择换到B门,则你获得汽车的概率是你坚持选择A门的2倍。从贝叶斯的角度是这样解释的:你第一次选了一道门,那么这道门后有车的概率是$1/3$。然后由于主持人肯定不会打开后面有车的那扇门(题目中说了),所以他打开的门后必定是一只羊,所以你没有通过他的行动获得关于你选择的这扇门的新的信息。因此,你原来选择的这扇门依旧是有$1/3$的概率后面有车,而剩下的那道门有车的概率就变成$2/3$了。这似乎是有些反直觉,但是我们可以通过贝叶斯公式来证明。
-
$X$:表示选手选择的门
-
$Y$:背后有汽车的门
-
$Z$:主持人打开的门
我们想要证明的是:$P(Y=B|X=A,Z=C)>P(Y=A|X=A,Z=C)$
还记得前面提到了,主持人打开C门,并不会对你初始选择的A门后有车提供任何新的信息,但是,对于B门后是否有车是提供了新信息的。大家可以品一品,当我们选择了A门后,主持人只有2个选择,B或者C。我们知道他肯定不会选择后面有车的门开,然后我们观察到他最终选择了C,有可能是因为B门后有车,他不得不选择C。因此,不选择B本身就带有信息(使得B后有车的概率增大)。
这里涉及到贝叶斯分析中的一个general theme(通用准则):Any hypothesis that has withstood some test of refutation becomes more likely(任何经受住某种证伪或者反驳测试的假设会变得更可能发生)。Monty Hall是一个概率谜题(probability puzzle)也正是因为它的分析是依赖于数据的产生过程。C门后面没有车这个信息不足以描述这个问题,我们还需要搞清楚主持人在打开C门之前有哪些可选项。
这表明,我们的认知不应该仅仅取决于我们观察到的事实,而且也会依赖于产生这些事实的过程(这应该就是我们经常说的知其然,还要知其所以然)。
Graph
为了将数据背后的故事用数学的语言描述出来,我们需要graph theory。从数学的角度来看,graph就是由一系列顶点(vertices or nodes)和边(edges)构成。我们借下图中的例子来介绍一些图的基本概念。
首先看(a),其中$X,Y,Z$是顶点,$A,B$是边。边可以是无方向的(a),也可以是有方向的(b)。如果两个节点之间有edge,就说它们是adjacent。两个节点之间的path是指一系列的节点,从该节点开始到另一个节点结束,然后每一个节点都和它旁边的节点相连,比如$X-Y-Z$就是一条从$X$到$Y$的path。另一个重要的概念是cyclic和acyclic,这是只针对于有向图才有的。如果存在一条从某个节点出发,又回到某个节点的路径,我们就说这条路径或者这个图是cyclic(有环的),(d)就是cyclic。如果整个graph里都没有cycle,那么就是一个(acyclic)无环图(c)。
在因果推断中,我们绝大多是都是使用有向无环图,这个方向就是从因到果,无环是因为我们不考虑因果循环这种情况(或者应该说我们不关注果对于因是否有影响以及如何影响。关注的话不知道是不是可以研究呢?)。另外还有几个概念需要明确一下,就是parent和child,ancestor和descendent。对照英文的意思还是比较好理解的。以上图右边为例:
-
对于$Y$来说,$X$是parent,$Z$是child
-
对于$Z$来说,$X$和$Y$都是ancestor
-
对于$X$来说,$Y$和$Z$都是descendent
Product Decomposition
Graphical model的一大好处就是它可以将联合分布非常高效地表示出来。就是通过乘积法则。
即对于无环图来说,所有变量的联合分布可以写成每个变量在给定其父母节点的条件分布的乘积。比如对于一个简单的$X \to Y \to Z$,
\[P(X=x, Y=y, Z=z)=P(X=x)P(Y=y|X=x)P(Z=z|Y=y)\]这个知识将大大减少我们计算联合分布需要的计算量。我们不需要去构造一张大表来列出所有可能的$(x,y,z)$的概率,只需要构造3张小的多的表:$X$,$(Y|X)$和$(Z|Y)$,然后将他们乘起来就行了。
在第二章我们会详细介绍graphical model在因果推断中的使用。
Structural Causal Model
相较于图,我们还是更习惯代数表达式,在因果推断中,可以通过结构因果模型来描述数据的生成过程。一个SCM是由两组变量$U$和$V$以及一组函数$f$构成的。
上图是一个例子。$U$中的变量叫做外生(exogenous)变量。它们通常是我们观测不到的因素,我们不去关系它们的命名,但是确实会对我们能测量的$V$中变量产生影响。有时会称这些变量为“error terms”或者“omitted factors”,有些像我们通常说的模型中的随机误差$\epsilon$,但还是有些区别,我们到后面碰到再具体解释。$V$中的变量叫做内生(endogenous)变量,也是我们真正关心和想要研究的模型中变量。$f$是描述变量之间定量关系的函数,也经常被称为structural equations。
关于外生和内生变量,这里有几个很自然的结论:
-
每个内生变量都至少是一个外生变量的后代。
-
外生变量不会是任何其他变量的后代,它们没有祖先,在图中是作为根(root)节点的存在。
-
如果我们知道所有外生变量的取值,那么我么就可以通过$f$完美确定每个内生变量的取值。
我们会发现,SCM相较于graphical model来说就是多了$f$,也就是变量之间的定量关系。尽管SCM包含的信息比graphical model多,但是由于很多时候我们很难得到定量的结果,再加上graph也更直观,所以graphical model还是使用得很广泛。
Graphical Models
图模型在因果推断中最重要的作用就是识别出各种独立性,边际独立、条件独立等。这种识别是只依赖于图的结构,可以不需要数据,也不需要定量的方程。从图中发现的这些独立性还可以通过数据来验证,从而检验你的图模型是否正确。
在图模型中有三类经典的结构,它们可以用来识别独立性,分别是chain, fork和collider。
Chains
上图就是一个chain(three nodes and two edges, with one edge directed into and one edge directed out of the middle variable)的示意图,$X$ causes $Y$,$Y$ causes $Z$。关于chain的相关性和独立性关系总结如下:
前两条是比较自然的,可能有人会问,问什么是可能(likely)相关,还可能是独立吗?这个是有可能的,只是很少出现,而且往往需要精妙地设计概率的数值,在现实问题中几乎可以忽略不计。举个例子:$X$和$U_Y$是2枚均等的硬币($P(X=1)=P(U_Y=1)=1/2$),只有当$X=U_Y$时,$Y=1$。那么我们有$P(Y=1|X=1)=P(Y=1|X=0)=P(Y=1)=1/2$。
第三条同样也是可能相关。首先相关也是比较好理解的,$X$的变化影响$Y$,$Y$的变化又影响$Z$,所以$X$的变化大概率是影响$Z$的。反例也是存在的,而且比较少见,通常我们会称其为intransitive cases。
第四条比较重要,关于条件独立的。condition on $Y$,就是根据$Y$来分组筛选数据。假设我们选择$Y=a$的数据,来分析$X$和$Z$的关系。现在当我们改变$X$,$U_Y$会跟着改变使得$Y=a$,而$Z$只依赖于$Y$和$U_Z$,$Z$没有改变。故$X$的改变不会引起$Z$的变化,两者在$Y=a$的条件下独立。显然,无论$Y$取什么值,只要固定住,这个结论都成立,所以第四条成立。
Forks
上图就是一个fork(three nodes, with two arrows emanating from the middle variable)的示意图,$X$ causes $Y$,$X$ causes $Z$。关于fork的相关性和独立性关系总结如下:
前三个的解释和chain类似,就不说了。还是重点来看一下第四条,condition on $X$之后,$X$的值不变,$Y$和$Z$只会随着$U_Y$和$U_Z$的变化而变化,而它俩是相互独立的(假设)。因此,条件独立成立。
Colliders
上图就是一个collider(one node receives edges from two other nodes)的示意图,$X$ causes $Z$,$Y$ causes $Z$。关于collider的相关性和独立性关系总结如下:
前两条同样不做解释了。第三条也是比较显然的,因为$X$和$Y$之间没有祖先后代的关系,它们只依赖各自的$U$,而我们假设$U$之间是独立的,所以$X$和$Y$是独立的。但是比较令人困惑的是第四条。为什么当我们condition on它们的共同影响变量,两个独立的变量会突然变得相关了?当我们固定$Z$的取值之后,由于$Z$同时受到$X$和$Y$的影响,那么为了维持$Z$的不变,$X$的改变肯定要有$Y$的改变来抵消其影响,这样$X$和$Y$就产生了联动。举个例子,比如$Z=X+Y$,并且$X$和$Y$互相独立。那么,如果告诉你$X=3$,那么你不会得到关于$Y$的任何信息。但是如果你告诉我$Z=10$,然后再告诉我$X=3$,那么我立马就知道$Y=7$。另一个collier的例子其实就是我们前面提到过的Monty Hall problem。选手选的门和后面有车的门共同决定了主持人打开的门,这么一来是不是对这个问题又有了进一步的认识了。
还有一点要提一下,就是不仅仅condition on collision node可以使得两个独立的变量变得相关,condition on any descendent of this collision node同样可以实现这个目标。我们看一个例子:考虑同时抛两枚fair coin,然后有一个铃铛,当至少一个硬币是head朝上时,铃铛会响。但是我们不能够直接听到这个铃铛,只能听一个证人的证词,而这个人有点不靠谱,当铃铛不响时,他会有50%的概率报告说铃铛响了。这个问题的因果结构以及可能出现的情况对应的概率表如下图所示:
可以验证
因此,我们有
我们习惯性地认为Dependence是来自于Causation。如果$X$和$Y$有Dependence,那么要么是其中一个影响另一个,或者是有第三个变量$Z$同时影响这两个变量。但是collider提供了一种不是由Causation带来的Dependence,所以会令人感到吃惊。
d-separation
我们上面看到的是图中用来判断独立和相关性的3种结构,但现实中一个完整的图通常不会这么简单,节点与节点之间不会仅仅只有一条path,这几种结构也会反复出现。所以我们为了识别一个复杂图中的相依性,引入了d-separation的概念,这里的“d”指的是“directional”。如果$X$和$Y$的每一条path都是blocked,那么我们说它们是d-separated,也就是相互独立;如果存在一条连通的path,那它们就是d-connected。
而如何block一条path,就要用到我们前面的3个结构了。如果我们不condition on任何变量,那么只有collider可以block a path,因为它有unconditional independence;如果我们condition on一系列节点$Z$,那么以下的一种节点可以block a path:
因为condition on collider会引入Dependence,所以要保证$Z$里没有collision node和它的后代,另外chain和fork都有条件独立性,所以可以用来屏蔽路径。
Model Testing and Causal Search
上面介绍的是从graphical model可以导出一些变量之间的相依关系,比如d-separation,本质上就是条件独立性,而条件独立性是可以通过数据来验证的。
比如对于如下的一个causal graph,$W$和$Z_1$在给定$X$的时候是独立的。那我们如果有数据,我们就可以验证这一条,比如我们用$X$和$Z_1$对$W$进行一个线性回归,拟合出系数$w=r_xx+r_1z_1$。如果我们发现$r_1 \neq 0$,那么我们就知道这个模型错了。
而且,我们其实不仅仅可以知道模型是不是错了,还可以知道模型错在哪了。如果$r_1 \neq 0$,那我们知道一定有一条$W$和$Z_1$之间的path没有被d-separated。
有定理(Verma and Pearl, 1990)可以证明:If every d-separation condition in the model matches a conditional independence in the data, then no further test can refute the model.
d-separation和我们常用的统计中的模型选择不太一样。统计中的model selection是计算模型的likelihood然后比较,而且它是一个整体检验(globally)。由于我们大部分时候都是只知道模型的形式,所以在做模型选择之前必须要先进行参数估计,对于线性高斯模型是比较容易的,但是对于一般的分布也不是那么轻松的。另外整体的检验只是通过一个似然函数来评价模型的好坏,无法提供改进的信息。而d-separation是非参数的,它不依赖于特定的分布,只是根据graph的结构。其次,它是局部检验(locally),更加灵活(不像全局检验,如果不计算出所有参数就无法计算似然),还可以提供改进模型的信息。
还有一个概念需要提一下,就是equivalent class。它是指拥有相同d-separation conditions的图构成的集合。这样的图要满足如下条件:
-
有相同的骨架(skeleton),即同样的边,不管它们的方向如何。
-
有相同的v-structures,即父节点不相邻接的collider。
Equivalent class我也不是太了解(以后有需要再进一步学习吧),目前知道的就是这个类里的图的边的方向是没法通过数据来判断的,想要了解更多的也可以参考上面那篇文章。我们以上图为例来说明如何找一个图是否有equivalent graph。
首先我们找到图中所有的v-structures
-
$Z_1 \to Z_3 \leftarrow Z_2$
-
$Z_3 \to Y \leftarrow W$
-
$Z_2 \to Y \leftarrow W$
然后为了找到等价的图,我们要将原图中所有的边的方向依次翻转,并且满足以下2个条件的,就是等价图:
-
不创建新的或者破坏现有的v-结构
-
不创建环路(虽然d-separation在线性有环图上可用,但在一般的图中无效)
按照这个原则,我们发现上图是没有等价图的,分析见下图。
The Effects of Interventions
前面两部分可以说都在介绍预备知识相关工具,接下来我们就正式进入因果推断。其实关于因果推断,有两个最核心的概念:干预(Intervention)和反事实(Counterfactual),它俩是递进的关系。我们先介绍干预。
其实很多统计研究的目标都是去预测干预的效果。书中举了几个例子。比如当我们收集和野火发生相关的数据时,我们是想找到一些我们可以干预的因素来降低野火的发生率;当我们研究一种治疗癌症的新药时,我们想要确定当我们通过给病人用这种药来进行干预可以对癌症产生什么影响;当我们分析电视中的暴力内容和儿童犯罪率之间的关系时,我们是想确定是否我们进行干预减少儿童对于暴力内容的曝光可以降低他们的侵略性。
就像我们经常听到的:“相关性不代表因果性。”两个变量之间有关联并不能说明其中一个对另一个有影响。(一个很有名的例子是冰淇淋销量与暴力犯罪率是成呈正相关的,这并不是因为冰淇淋导致犯罪,而是由于冰淇淋销售和犯罪都更多的发生在夏季。)
因此,如果想探究一个变量对另一个变量的影响时,随机控制实验被认为是一种黄金标准:在RCE中,除了想要研究的自变量,所有其他会影响因变量的因素要么是固定的,要么是随机变化,这样一来因变量的变化就能归结于自变量的变化了。
但是在现实情况里,RCE是很难做到的,我们更多的是只有观测性(observational)的数据,就是只有记录数据,没有控制数据。如何从观测性数据中得出因果关系是比较困难的。但是有了causal graph就可以进行分析了。
有一点要提前说明一下:我们接下来介绍的内容是假设已经知道了causal graph,重点关注在因果关系的可识别性(也可以说是可计算性),而不关注具体的估计问题(虽然也是相当重要)。
接下来是一个非常重要的结论,一定要深刻理解,就是intervene on a variable is different from conditioning on a variable。当我们干预模型中的一个变量时,我们是改变了整个系统结构的,而当我们说在给定某个变量的条件下,我们并没有改变任何东西,我们只是将关注点缩小到变量取某个特定值时的数据。从分布的角度来说,condition on $X$是不改变$X$的分布的,$X$可以可以按照其分布$P(X=x)$取到$x$;但干预是指人为地将$X$设置成$x$,此时$X$的分布发生了变化,变成了一个单点分布,即$P(X=x)=1$。为了区分这两者,我们将干预记为$do(X=x)$。
下面通过一个图示来说明一下:
左边是原始的causal graph。现在我们干预$X$,比如固定其值为$x$。之前说的会改变结构是指会消除所有对$X$产生影响因素,反映在图中就是删除所有直接进入$X$的边,如上图右边所示。在这个例子中,当我们干预$X$后,可以从图中发现$P(Y=y|do(X=x))$是和$x$独立的(不管$x$取什么值都是一样的),而条件概率$P(Y=y|X=x)$是$x$的一个函数。从概率的角度上来说,$P(Y=y|X=x)$是当$X=x$的那些个体的$Y$的分布,而$P(Y=y|do(X=x))$是指当所有的个体的$X$都等于$x$时$Y$的分布。
书中在这里还提了一点值得注意的地方,就是我们目前分析的情况都有一个隐性的假设:The intervention has no “side effect”。意思是说干预这个动作本身没有直接对其他变量产生影响。书中举了一个例子,说你强行违背一些人的宗教信仰去让他们吃某种药可能会对恢复有直接影响(不是药物对人体的作用,而是干预本身产生了影响)。这个“副作用”感觉目前还不太需要特别关注,先有个概念就好。
有了这种$do$-expressions,我们就可以分清楚correlation和Causation了。不过这还只是能够表示出来,接下来我们来看一下如何借助causal graph,使用从observational data中得到的条件概率来计算因果效应$P(Y=y|do(X=x))$。
The Adjustment Formula
上面的冰淇淋的例子比较极端,里面冰淇淋销量和犯罪率的相关性从因果的角度来看完全是无用的(spurious)。但是现实中,往往是如下图左边展示的这样:
比如$X$表示是否用药,$Y$表示是否恢复,$Z$表示性别。我们想要评估药是否有效,其实就是要计算:$P(Y=1|do(X=1))-P(Y=1|do(X=0))$,通常被称为“causal effect difference”或者“average causal effect (ACE)”。更一般的,如果$X$和$Y$都可以去不止一个值,其实本质上还是要算$P(Y=y|do(X=x))$。
上图右边展示的就是$do(X=x)$之后的graph,我们用$P_m$表示这个manipulated model的概率分布。因果效应$P(Y=y|do(X=x))$就等于新模型下的条件概率$P_m(Y=y|X=x)$。我们需要注意到$P_m$和$P$有两个性质是相同的:
-
$Z$的边际分布是不变的,即$P_m(Z=z)=P(Z=z)$
-
给定$X$和$Z$的$Y$的条件分布是不变的,因为$Y=f(x,z,u_Y)$没有改变,即$P_m(Y=y|X=x,Z=z)=P(Y=y|X=x,Z=z)$
而且在右边的干预模型中,$X$和$Z$是独立的,即$P_m(Z=z|X=x)=P_m(Z=z)=P(Z=z)$。因此,
上面的式子被称为adjustment formula。里面的概率都是可以直接通过数据估计出来的。注意到如果是随机对照试验的话,就不需要任何调整,因为它一开始就符合图右边的casual graph,因此$P_m=P$。
如果看adjustment formula,会给我们一种错觉,就是要使用Z-specific的分析(我们之前介绍Simpson悖论的时候也说过,并不是任何情况分组都是正确的)。但是,其实adjustment formula并不偏向使用分组数据,比如对于血压的那个例子也是成立的。
我们知道$do(X=x)$是会将所有进入$X$的边都给去掉,但是在上图中,并没有进入$X$的边,因此并不需要改变原有的模型,即$P(Y=y|do(X=x))=P(Y=y|X=x)$。这样可以看成是adjustment formula的特殊情况,即调整的变量集合是空集。
所以又回到了之前那个问题:什么时候要调整(分组分析),什么时候不要调整?从上面两个例子可以分析出,如果需要调整$Z$,那么$Z$要是$X$的parent node(还有一点是默认的,就是$Z$要对$Y$产生影响,不然就不用分析了)。如果我们记$X$的所有父节点的集合为$PA$,则:
如果我们将上式右边乘以再除以$P(X=x|Z=z)$,那么我们会得到:
\[P(Y=y|do(X=x))=\sum_z\frac{P(X=x,Y=y,Z=z)}{P(X=x|Z=z)}\]$P(X=x|Z=z)$就是我们经常听说的propensity score。写成上式的好处我们会在之后介绍。
Multiple Interventions and the Truncated Product Rule
上面的调整公式,我们是假设只有一个变量被干预。但现实中的政策往往会涉及到干预多个变量,并且有时候还会随时间的变化来变化干预。面对复杂的干预,可以考虑使用前面介绍的乘积分解。我们还是以药物、性别、恢复率为例,它的原始模型的联合分布为:$P(x,y,z)=P(z)P(x|z)P(y|x,z)$,而干预后的模型是$P(z,y|do(x))=P_m(z)P_m(y|x,z)=P(z)P(y|x,z)$。可以看到差别就是$P(x|z)$没了,因为$X$由于干预变成根节点。另外这个也正好符合调整公式,为了得到$X$对$Y$的因果效应,我们需要把$Z$给marginalize掉,即$P(y|do(x))=\sum_zP(z)P(y|x,z)$。
通过上面的例子,可以把调整公式拓展到多干预的情况。我们只需要把干预前的模型的联合分布写出来,然后剔除掉所有干预变量的部分就能得到干预后模型的联合分布,即
上式被称为truncated product formula or $g$-formula。比如对于下面这个图,现在我们要干预$X=x$,$Z_3=z_3$,那干预后模型的联合分布为
\[P(z_1,z_2,w,y|do(X=x,Z_3=z_3))=P(z_1)P(z_2)P(w|t)P(y|w,z_3,z_2)\]和原来比删去了$P(x|z_1,z_3)$和$P(z_3|z_1,z_2)$。
有了adjustment formula,似乎我们只要找到$X$的父节点,然后就可以计算出$X$对于$Y$的因果效应了,但事情往往没那么简单。原因是在父节点中可能存在unobserved or unmeasured variable。不过幸运的是,我们还可以找到其他的变量来替代这些未观测变量。
The Backdoor Criterion
上面的问题其实牵扯到一个更深刻的问题:当满足什么条件时,一个变量对另一个变量的因果效应在仅仅只有观测数据(默认加上causal graph)时是可计算的?这个问题的答案非常长,这一节我们先介绍一种:后门规则(Backdoor Criterion)。
首先我们分析一下,我们condition节点是要达到什么目的:
-
我们要block $X$和$Y$之间所有的spurious paths。
-
不创造新的spurious paths。
-
保证所有从$X$出发到$Y$的paths不被影响。
后门规则提供了一类这样的节点:
举个例子,如下图:评估药对恢复的影响,实验还测量了体重(对恢复有影响)。我们还知道社会地位对于体重和是否接受药物都有影响,但是实验没有记录社会地位的信息。
在这个例子中,虽然我们没法condition on $X$的父节点$Z$,但是根据后门规则,我们发现condition on $W$也是可以达到同样的目的:block了backdoor path $X \leftarrow Z \to W \to Y$。因此,the causal effect of $X$ on $Y$ is given as follow:
\[P(Y=y|do(X=x))=\sum_wP(Y=y|X=x,W=w)P(W=w)\]我们再看一个更复杂的例子。如下图,假设我们想研究对于一个特定的$W=w$,$X$对于$Y$的因果效应是多少,即$P(Y=y|do(X=x),W=w)$。
本来如果只是计算$X$对于$Y$的因果效应,是不需要调整任何变量的,即$P(Y=y|do(X=x))=P(Y=y|X=x)$。因为所有的spurious paths都是blocked。但这是一个带条件的干预,而由于$W$是一个collider,所以condition on $W$会打通$X \leftarrow V \to W \leftarrow Z \leftarrow T \to Y$。这时如果还是不调整任何变量,则结果可能会出错。对于这样的情况,我们依然可以根据后门规则,在这条打通的path上选一个变量来block,比如$T$,这样,
\[\begin{align*} P(Y=y| & do(X=x),W=w) \\ & = \sum_t P(Y=y|X=x,W=w,T=t)P(T=t|W=w) \end{align*}\]计算这样的W-specific causal effects在effect modification/moderation中是十分重要的。比如我们想要看看药在特定人群中的效果,$W$可能表示人群的一些特征变量,比如年龄、性别等。
最后说一下后门规则的另外一些benefits。如果你的模型可以有多个变量都满足后门规则,那你就可以根据需要选择一个(可能是更好算、更好测量或者获取起来成本更小)。因为如果$W$和$Z$都满足后门规则,则有
而且这个等式还可以作为你模型的一个检验条件,可以通过数据来验证模型的正确性。
The Front-Door Criterion
接下来介绍第二类可识别的条件——前门规则。我们以一个例子来开始:持续一个世纪的关于吸烟和肺癌之间关系。1970年之前,烟草公司试图阻止禁烟的立法,他们提出:说之所有会观测到吸烟和肺癌有正相关性是因为有一个基因它能增加肺癌的风险,同时也能让人更喜欢尼古丁。就如下图(a)所示。由于$U$是unmeasured,所以无法block后门,因此吸烟和肺癌之间的因果关系是无法识别的。
但是我们可以更进一步分析,考虑上图(b)的模型。我们额外测量了病人肺中的焦油含量(Z)。虽然这个模型也不满足后门规则,但是由于有$Z$的存在,我们却可以识别吸烟和肺癌之间的因果关系(通过两次使用后门规则)。
我们通过一个有具体数值的例子来解释。事前说明一下,例子中的数据是明显不现实的,是专门设计出来让大家觉得反直觉的。
有这么一个实验,随机挑选了800000名被认为是有很高的患癌风险(比如长时间暴露在吸烟、石棉等环境中)的受试者,记录了他们的吸烟状况、肺部焦油含量高低、是否患肺癌。
从这个实验的数据中能得到两种截然相反的解释。上图的表1和表2是同一份数据的两种不同的展示。烟草公司这边说从表1中可以看出吸烟是有助于减少肺癌发生的。因为首先从整体上看(All subjects),吸烟者患肺癌的概率是小于不吸烟者的(15% vs 90.25%),其次在两个亚组中(Tar and No tar),同样有这样的结论。(这显然和经验的观察不一样,但是能很好地说明观察出来的结论不一定那么可信。)
而抵制烟草的人士则会说,从表2来看,吸烟是会增加患肺癌的风险。他们的解释是这样的:首先,如果你选择吸烟,那么你肺部焦油含量就更容易提高(380/400 vs 20/400)。其次,不管是在吸烟者还是非吸烟者中,焦油含量高的人患肺癌的概率要高于含量低的人(15% vs 10%;95% vs 90%)。因此,不管是不是对于尼古丁有偏爱,我们都应该避免焦油在肺部的积累,而不吸烟是一种很有效的手段。
那么究竟该听谁的呢?我们还是得借助图(b)来分析(前提是我们确定(b)的模型是正确的)。首先我们注意到,$X$对$Z$的因果效应是可以识别的,因为没有任何后门。所以很自然的,$P(Z=z|do(X=x))=P(Z=z|X=x)$。
接下来可以发现$Z$对于$Y$的因果效应也是可识别的,虽然有后门$Z\leftarrow X \leftarrow U \to Y$,但可以通过condition on $X$来block,这样的话,$P(Y=y|do(Z=z))=\sum_x P(Y=y|Z=z,X=x)P(X=x)$。
上面两个式子都是通过后门规则得到的。现在我们要将这两部分串联起来得到$X$对$Y$的因果效应。推理的过程是这样的:如果nature选择将$Z$赋值成$z$,那么$Y$的概率为$P(Y=y|do(Z=z))$。但是在我们干预$X=x$时,nature选择$Z=z$的概率是$P(Z=z|do(X=x))$。因此如果我们summing over all states $z$ of $Z$,我们就得到了
\[\begin{align*} P(Y=y|do(X=x))= & \sum_z P(Y=y|do(Z=z))P(Z=z|do(X=x)) \\ = & \sum_z \sum_{x'}P(Y=y|Z=z,X=x')P(Z=z|X=x) \end{align*}\]上式就被称为front-door formula。扩展一下,$X$到$Y$之间可能不止一条path,也可能不止一个中继变量,就有如下结论:
上述定义中的第2条有点过于保守了,并不是说一定没有,也可以有,只要被block了就行。
至此,最常用的几种规则就介绍完了。实际上有一个工具叫做do-calculus,它可以识别出一个图里所有可识别的因果关系。但需要进一步的学习,之后碰上再学。现有的adjustment formula、backdoor criterion、front-door criterion基本上就能覆盖绝大多数情况了。
Conditional Interventions and Covariate-Specific Effects
我们前面考虑的干预都是限制在某个或者一群变量$X$取到某个特定的值$x$。但通常来说,对$X$的干预可能是跟其他变量有某种关系的。比如$X$表示某项补贴的政策,然后可能对于不同地区$Z$的政策是不一样的。这种情况下,$X$和$Z$可能是某种确定的函数关系($x=g(z)$)或者某种随机概率关系($P^*(x|z)$)。我们记这样的干预为$do(X=g(Z))$。要想评估$P(Y=y|do(X=g(Z))$,我们需要用到前面介绍过的“$z$-specific” effect $P(Y=y|do(X=x),Z=z)$。之前只是在例子中用到了,这里正式介绍一下:它表示在**干预之后**,总体中$Z=z$的部分对应的$Y$的分布。划重点:干预之后!干预之后!干预之后!。至于为什么是干预之后,我们可以改写一下上式:
\[P(Y=y|do(X=x),Z=z)=\frac{P(Y=y,Z=z|do(X=x))}{P(Z=z|do(X=x))}\]这样就比较清楚了,不管是$Y$还是$Z$都是在干预后取值。这个重要性要到我们介绍反事实时才会体现,这里先强调一下。具体的计算方法由下图给出:
然后我们来看怎么计算$P(Y=y|do(X=g(Z))$,使用全概率公式,condition on $Z$:
因此,只要我们能算出$P(Y=y|do(X=x),Z=z)$,那么只需要把$x$用$g(z)$代替,再对$Z$取期望,就可以得到$P(Y=y|do(X=g(Z))$。
Inverse Probability Weighting
前面的分析告诉我们,为了得到$X$对于$Y$的因果效应,只需要我们找到一个变量集合$Z$满足某一个规则,然后使用调整公式就行了。这听起来很棒,但是实际使用时却存在一些问题。主要问题是我们需要遍历计算所有$Z$的可能取值下的条件概率$P(Y=y|X=x,Z=z)$。当$Z$中的变量增加时,可能的组合就会呈指数级增长,这会给条件概率的估计带来困难(比如落到每个分层中的数据很少,很难得到可靠的估计)。
这一节我们讨论一种方法可以缓解这个问题,就是利用我们之前提到过的“propensity score” $P(X=x|Z=z)$。这是可以通过数据算出来的。假设我们已经得到了$P(X=x|Z=z)$,那么我们可以用它来产生人造样本,使其表现得像从干预后概率模型$P_m$中采样出来的,而不是原来的概率$P(x,y,z)$。一旦得到了这些样本,我们只需要计算$Y=y$,$X=x$出现的频率就可以了(其实就是在计算$P_m(y|x)$)。
那应该怎么构造fictitious samples?还记得之前介绍后门规则时说的另一种表达式:$P(y|do(x))=\sum_z \frac{P(x,y,z)}{P(x|z)}$吗?从这个式子中看,答案就很明显了:总体中的每一个样本$P(x,y,z)$要乘上一个factor$\frac{1}{P(x|z)}$。(所以叫做逆概率加权)
关于逆概率加权方法还有几点需要注意:
-
通过逆概率加权实际上是使得$X$和$Z$相互独立了。
-
逆概率加权可以带来计算上的节省,但是当$Z$的可选取值数比较少(远小于样本量)时,是不明显的,甚至也可以说没有。而当$Z$的可选取值远超过样本数时,计算成本是大大下降了的,因为逆概率加权方法只需要算样本量数量的条件概率$P(x|z)$。
-
**逆概率加权方法只有在变量集合$Z$满足后门规则时才是有效的**
。
Mediation
最后我们来介绍一下直接和间接效应。直接效应就是$X \to Y$,间接效应就是$X \to Z \to Y$,其中的$Z$通常称为mediator。比如像之前介绍的treatment/blood pressure/recovery的例子中,treatment对recovery有直接作用,同时treatment也可以通过影响blood pressure来间接地对recovery起作用。很多时候,其实我们会想分别去了解这两种效应,但是想要将两者分开并不容易。
举个例子,我们要研究性别对于入职率的影响。这个影响可能是直接的(性别歧视,这是不应该存在的),也可能是通过其他方式,比如说某些领域女性可能更擅长,或者取得了更高的学位。所以,性别可能还通过mediating变量qualification来间接影响入职率。如下图所示,我们先不考虑红色部分。
为了确认是否有直接效应(如果有性别歧视,就要受到处罚),我们自然是需要保持qualification不变,看看性别的不同是否会导致入职率的差异。做法就是condition on $Z$。比如,我们比较$P(hired|female,~highly~qualified)$和$P(hired|male,~highly~qualified)$。如果有不同,则认为有性别歧视。
然而,如果考虑有一个mediating variable和outcome variable的confounder,比如Income:收入高的家庭的人更有可能获得好的教育资源,从而有更好的学历,另外接触到人脉有可能帮助他们应聘成功。这时如果我们condition on qualification,那么我们就condition on a collider,打开了一条backdoor path。
前面一通分析实际上是为了得到这个结论:如果要定义直接效应的话,我们是不能用condition on mediator的。但现在我们有$do$-expression了,这个问题就解决了。
两个$do$-operator该怎么算呢?之前介绍truncated product rule的时候介绍有多个干预变量时的联合分布是怎么样的。但是回到计算上,其实还是和单个$do$-operator类似,总归是要用上调整公式的。在这个例子里,首先我们发现,$X$到$Y$是没有backdoor的,所以我们可以把$do(x)$简单地替换成condition on $x$。然后我们再想办法去掉$do(z)$。注意到本来$Z$到$Y$有两条backdoor paths,一条通过$X$,一条通过$I$,但是前者被block了(已经condition on $X$),所以只需要通过调整$I$就行了,于是
\[P(Y=y|do(X=x),do(Z=z))=\sum_i P(Y=y|X=x,Z=z,I=i)P(I=i)\]定义间接效应要比直接效应更难一些,因为没有办法去condition away直接效应。不过确定total effect是比较容易的,所以有人会想是不是indirect effect就是total effect和direct effect的差。然而这可能只是对linear systems来说是成立的。对于更复杂的非线性的情况,比如$Y$是受$X$和$Z$的交互作用影响的,这时相减就没有意义了。因此,我们需要找到一种不依赖于total and direct effect的定义法。而这就需要我们接下来要介绍的反事实(counterfactuals)。
Counterfactuals
反事实,顾名思义就是和现实发生的情况不同。从字面意思上理解,干预也可以导致反事实,但是两者还是有些差别。举个例子,有一个糖尿病康复的数据,里面有一部分是吃了某种药,另一部分人没有吃。Intervention要处理的问题是:如果让全部人都服药,康复率是怎么样的($P(y|do(x))$);而counterfactual考虑的问题是:假如那批没吃药的过去吃了药,那么他们的康复率是怎么样的(你会发现这个用$do$表达不出来)。总之,反事实会比干预更灵活,可以考虑比干预更进一步的问题,而这些主要得益于使用了更灵活的记号(相较于$do$而言)。
我们再通过书中一个例子来详细说明一下。 “话说昨晚我开车回家,来到一个路口,我有两个选择:一个是走高速($X=1$),另一个是走林荫大道($X=0$)。我选择了后者,结果发现路上很堵。当我回到家时已经过去一个小时了,我不由得说到:‘我真应该走高速公路的’。”我的这句话是什么意思呢?通俗地说,是指如果我过去选择走高速,那么我应该能更早到家。从科学的角度呢,是指在同一天、相同的环境、相同的驾驶习惯下,我心中预估的走高速所花的时间要比我实际驾车回家的时间要短。
这里的“如果我过去…”就是反事实了,因为它不是真的发生了,英语中也叫做hypothetical condition或者antecedent。我们想比较的是指在其他所有条件都相同的情况下,只有antecedent发生改变时的两种结果(可以想象成平行世界)。而且我们知道真实发生的结果这一点是很重要的,因为在看到走林荫大道的结果后我对走高速的时间估计可能和我prior的估计是不同的。如果要用数学表达式表示这样的一个目标,我们尝试一下用$do$-expressions,写出来是这样的:
\[E(driving~time|do(freeway),driving~time=1~hour)\]这就有问题了,因为我们无法区分出我们想要估计的时间和实际观测到的时间(具体说明一下,我们想要估计的时间是指已知实际上走了林荫大道回家花1个小时的条件下,假想的走高速公路所花的时间)。$do$算子虽然可以区分$P(driving~time=T|do(freewary))$和$P(driving~time=T|do(boulevard))$这两个概率,但是不能区分这两个变量(一个假想的,一个真实的)。好在,有一种很简单的办法来解决这个问题:使用下标来表示不同的结果。我们可以用$Y_{X=1}(Y_1)$来表示走高速的时间,$Y_{X=0}(Y_0)$表示走林荫大道的时间。没有下标的字母都表示实际观测值,在这个例子$Y_0$就是实际观测的$Y$。这样的话我们就可以表示出我们想要估计的目标了:
\[\begin{equation} E(Y_{X=1}|X=0,Y=Y_0=1) \end{equation}\]这个式子乍一看是比较奇怪的,$Y_{X=1}$是基于事件$X=1$,但是却condition on事件$X=0$。我们之前见到的使用$do$算子来表示干预的效应是
\[\begin{equation} E[Y|do(X=x)] \end{equation}\]如果使用我们这里新的表达方式,相应的应该是$E[Y_{X=x}]$。这就是上面提到的更灵活的记号,$do$表示不了的下标法可以表示,同时下标法也能表示$do$表示的内容。(1)和(2)式的不同之处就在于(1)的条件前后是分属于2个不同的世界的,前面是假想的世界(选择freeway),后面是真实发生的世界(选择了boulevard);而(2)的条件前后是同一个世界,即选择了freeway的世界。
-
counterfactual是需要将已经发生的事实考虑进去的,
-
而intervention是不考虑的,它只关心干预之后的状态
因此,在一般情况下,(1)是无法通过随机控制实验来得到的。RCE只能得到$E[Y_1]=E[Y|do(X=1)]$和$E[Y_0]=E[Y|do(X=0)]$。而我们想要求的是$E[Y_1|X=0,Y=1]$。下面我们就来看看该如何定义和计算反事实,接下来就很少使用$do$算子了,基本是使用下标法。因为下标法是比do算子更灵活的记号,所以对于因果推断的各种问题,可以直接考虑使用下标法来表述。当然如果对于do算子能表示的问题,用用也不是不可以。
Defining and Computing Counterfactuals
在前面介绍干预的时候我们已经知道利用structural causal model可以定义和计算干预的效应:所谓干预$X$使其值为$x$,就是在SCM中把生成$X$的方程替换为$X=x$(在graph表示中就是去掉所有进入$X$的边)。只要稍加修改(把外生变量$U$给考虑进来),我们同样可以用SCM来定义和计算反事实。
我们从一个fully specified model $M$开始,所谓完全指定是说模型的函数集${F}$以及所有的外生变量集合$U$中的变量取值都已知。在一个确定性模型中,每一个对外生变量的赋值$U=u$就对应了总体中的一个“个体 (unit)”,或者是自然界中一种“情况 (situation)”。举个例子,如果$U=u$代表一个名叫Joe的人的各种特征,$X$表示工资这个变量,则$X(u)$表示Joe的工资。
考虑这样一句描述反事实的话:“$Y$ would be $y$ had $X$ been $x$, in situation $U=u$.”,其中$X$和$Y$是内生变量集合$V$中的任意两个变量。用符号表示就是$Y_x(u)=y$。我们假设一个很简单SCM,其中$U={U_1,U_2}$:
\[\begin{align*} X & = aU_1 \\ Y & = bX + U_2 \end{align*}\]反事实$X=x$,其实也是将$X$的方程式替换,得到“modified”模型:
\[\begin{align*} X & = x \\ Y & = bX + U_2 \end{align*}\]再令$U=u$,就可以得到$Y_x(u)=bx+u_2$。感觉很自然地就算出来了,没有想象的那么复杂。我们再看一个不那么显然的结果,$X_y(u)$。我们就要把第二的式子替换成$Y=y$,然后求解得到$X_y(u)=au_1$。如果按照相关性的角度来算就会得到$X_y(u)=(y-u_2)/b$,但是记住这里我们是干预$Y$,所以干预后的图模型变成了下图右边的样子,给定$U$之后,$X$和$Y$是相互独立的。这样说明了一个符合直觉的观念:对未来进行的假设是不会影响过去的。
这里稍微提一下,上图左边是原来的模型,注意$U$是外生变量,在上一章干预里我们基本上不考虑它。如果是在上一章里,我们就只有一个$X \to Y$的图,我们感兴趣的是$P(Y|do(X))$。
所以其实如果知道SCM的话,反事实的计算是挺直接的。在这个例子中,似乎反事实和干预没什么不同。但是要注意到,我们这里计算的不仅是$Y$在干预下的期望,而且还有具体到某一个个体在干预下的取值。$do$算子是定义在概率上的,只能得出probabilistic results,像$E[Y|do(X)]$。
-
$do$算子是描述总体在干预下的行为,
-
而$Y_x(u)$描述的是一个特定个体$U=u$在这样的干预下的行为。
下面我们正式给出反事实的定义:
同样的定义也适用于$X$和$Y$都是变量集合的时候。反事实还有一个必须要满足的规则:一致性规则(consistency rule)。说的是如果我们观测到$X(u)=x$,$Y(u)=y$,那么$Y_{X=x}(u)$就一定等于$y$。如果$X$是binary,则一致性规则可以表示成:
\[Y=XY_1+(1-X)Y_0\]为了记号简洁就省略$u$了。
接着我们来看如何计算反事实。还是通过例子来说明。
$X$表示学生在课后辅导班花费的时间,$H$表示学生的作业量,$Y$表示学生的考试成绩。它们的数值都是经过标准化了的。现在我们考虑一个叫Joe的学生,它的$X=0.5$,$H=1$,$Y=1.5$。我们想知道的是:如果当初Joe的作业量加倍,他的成绩会是多少?
在这个模型中,内生变量是完全有系数和外生变量确定的,而后者衡量了个体间的差异性。我们可以通过evidence $X=0.5,H=1,Y=1.5$来确定$U$的值。这些$U$的值在干预下是不变的:
接下来和干预是一样,我们替换$H$的方程,得到modified model,并计算相应的反事实结果:
总结一下,在有SCM的情况下,计算任何确定性的反事实需要3步:
但是反事实也可以是probabilistic,反映总体中某一类个体的行为。比如上面这个例子,变成如果对于$Y<2$的学生当初加倍他们的作业量,他们的成绩会是多少?这种干预$do$算子同样是做不到的,因为$do$只能对整体作干预,而这种干预也是只在部分人群中进行的(对个体干预可以看成是这种情况的特例)。
Deterministic counterfactuals是指定$U$的值,probabilistic就是指定$U$的分布$P(U)$,由此可以导出一个内生变量的分布$P(V)$。通常一个概率性的反事实问题是这样的:假设我们观察到一类个体的特征$E=e$,那么如果当初将$X$干预成$x$,$Y$的期望会是多少?表达式为$E[Y_x|E=e]$。这个$E$里包括所有跟这类个体有关的信息,可能包括$X$、$Y$以及其他内生变量。这类反事实的计算方法和上面确定性的是类似的,只是把赋值变成了赋概率:
反事实的这一套记号可以让我们研究任何我们感兴趣的部分总体在干预下的因果效应,比如研究比较懒的学生($H\leq H_0$),课后辅导班对它们成绩的影响,$E[Y_{X=1}|H\leq H_0]$。而这个$do$算子是做不到的。可能有人会说,怎么做不到,$E[Y|do(X=1),H\leq H_0)]$不行吗?还记得介绍干预时说过的一个重点吗:在$do$算子中,条件概率里$H$是干预后的$H$,而这个模型里$H$是受$X$影响的。因此,干预后的$H \leq H_0$的人可能并不是等于干预前$H \leq H_0$的那部分人,而后者才是我们要干预的对象。这里确实是有点绕,下面我们再通过一个例子来说明。
$X=1$表示上过大学,$U_2=1$表示具有专业经验,$Z$表示职业所需要的技能水平,$Y$表示薪资,$U_1$是什么我们并不关心。
比如我们的目标是$E[Y_{X=1}|Z=1]$。条件前后分别是两个世界的行为,$Z=1$是现实世界,$X=1$是假想的过去世界。如果要用$do$算子来表示,只能写成$E[Y|do(X=1),Z=1)]$,但这并不是我们要求的量,因为
-
$E[Y|do(X=1),Z=1)]$里的条件是干预后条件,表达式里的人全部都是既$X=1$又$Z=1$,
-
而$E[Y_{X=1}|Z=1]$是现实的条件,表达式里可能包含$Z=1$但是现实中$X=0$的人。这部分人才是我们感兴趣的,而且这些人干预后的$Z$也可能不是1。
那么反事实的记号是否能表示干预后条件呢?答案也是肯定的。$E[Y|do(X=1),Z=1)]$用反事实的记号可以写成$E[Y_{X=1}|Z_{X=1}=1)]$,通过下标来指定$Z$是干预后的。我们也可以通过数字来验证一下:
我们解释一下第一个表达式$E[Y_1|Z=1]$是怎么算的。3步走:
-
由$X=0 \Longrightarrow u_1=0$,$Z=1 \Longrightarrow u_2=1$
-
令$X=1$,得到modified model
-
计算$E[Y_1|Z=1]=bz=b(a\times1+u_2)=b(a+1)$
可以发现后两个表达式是上一章介绍的内容,condition on $Z$后,$X$和$Y$是独立的,所以干预$X$不会对$Y$有影响。但是在反事实里却不是这样,在$Z=1$的这群人中,$X$会对$Y$产生影响:$E[Y_1-Y_0|Z=1]=ab \neq 0$。通俗的理解是:我们在现世($X=0$)是condition on $Z$了,所以后3个式子结果都一样,但是在平行世界($X=1$)中,并没有condition on $Z$,所以$X$对$Y$的影响没有被block。而从graph来解释则是因为$Z$是一个collider,condition on $Z$会使$X$和$U_2$相关,从而导致$X$和$Y$相关。即,
\[E[Y_x|X,Z] \neq E[Y_x|Z]\]即使我们知道
\[E[Y|X,Z]=E[Y|Z]\]可能有人要问了,为啥之前不考虑外生变量$U$,现在又考虑了呢?原因是上一章的分析,都是基于干预后的行为来进行的(即完全的假想世界),它有一套$U$,而现实世界也有自己的$U$,它们互不影响;但是在反事实中,我们是要把现实世界的那套$U$放到平行世界里去计算一些东西,当你固定$U$时,反而会产生影响。打个不恰当的比方,如果一个障碍物的轨迹完全是随机的,那我们就根本不应该管它;但是如果它停在了某一个地方,那么我们至少需要绕过它走。所以总结一下:
-
如果只考虑同一个世界的问题(干预),外生变量就可以忽略
-
如果考虑不同世界的问题,且两个世界还有联系的时候(反事实),就要关注外生变量
目前为止,上面的例子并没有用到概率$P(u_1)$和$P(u_2)$来计算期望,原因是$Z=1$只发生在$u_1=0$和$u_2=1$时(假设$a \neq {0,1}$)。然而,如果我们假设$a=1$,那么$Z=1$就有两种可能的情况($u_1=0,u_2=1$)和($u_1=1,u_2=0$)。这时就需要概率来计算期望了。
\[\begin{align*} E[Y_1|Z=1=& E[b(1+u_2)|Z=1]=b(1+E[u_2|Z=1]) \\ = & b(1+P[u_2=1|Z=1])~~~\text{(贝叶斯公式)} \\ = & b\left(1+\frac{P(u_1=0)P(u_2=1)}{P(u_1=0)P(u_2=1)+P(u_1=1)P(u_2=0)} \right) \end{align*}\] \[E[Y_0|Z=1]= b\left(\frac{P(u_1=0)P(u_2=1)}{P(u_1=0)P(u_2=1)+P(u_1=1)P(u_2=0)} \right)\]The Graphical Representation of Counterfactuals
前面介绍反事实大都是在SCM下进行的,但SCM不是那么容易得到的,有时候我们只有graph。那么从graph中是不是也能识别出反事实呢?答案是肯定的。
我们看上图这个例子,左边是原始的模型,右边是干预$X=x$后的模型。我们想要看看$Y_x$会受到哪些变量的影响。
-
$Y$的parents(观测到的和未观测到的都算):${W_2,Z_3,W_3}$
-
$X$和$Y$ path中间的节点的parents:${U_3}$
而$W_3$又是由$X$和$U_3$确定的,所以在这个例子中,会影响$Y_x$的就是${W_2,Z_3,W_3}$,而且它们在左右两个模型中都是一样的。任何变量集合,如果能block通向这几个parents的paths,那么也就能block通向$Y_x$的paths,这样就能产生某些条件独立了。下面的定理给出了总结:
这个定理有着很重要的作用,因为它可以指导我们如何从观测性数据中计算反事实。它说明了$P(Y_x)$可以通过调整公式来识别:
看起来是不是很神奇,但其实我们之前在介绍后门规则时就见过,而且$P(Y_x=y)$其实就是$P(Y|do(X=x))$的另一种写法了。这种给定$Z$之后$Y_x$和$X$独立的性质也被称为“conditional ignorability”。
Counterfactuals in Experimental Settings
接下来我们看看当没有模型,只有数据的时候,我们该怎么计算反事实。我们还是用课后辅导班的例子。我们假设收集了10个人的数据,下表是包括每个人的特征、观测到的行为以及各种潜在的结果。如果有模型以及每个人的特征,那什么样的反事实都是很容易算出来的。
但现实是我们可能只有观测到的行为${X,H,Y}$,这时我们能用的只有一致性规则,就是当$X=1$时,我们知道$Y_1=Y$。除此之外,很难得到其他关于个体的反事实信息。
但是幸运的是,我们可以从这些数据中得到一些总体水平上的反事实信息,比如$E[Y_1-Y_0]$。下表是一个随机对照试验的数据,10个受试者,右边是实际观察到的数据(黑框表示未观测到的),左边是真实的潜在结果。
因为是RCT,所以使得$X$和任何可能影响$Y$的变量都独立了。根据调整公式,$Z={\phi}$,$E[Y_x]=E[Y_x|X=x]$。所以数据中观测到的实验组和控制组的均值的差会收敛到总体的均值的差,$E[Y_1-Y_0]$。
Some Examples of Counterfactuals
这个例子是说政府计划投资一个职业培训计划,旨在帮助失业的人找到工作。为了验证计划的有效性,获得资金,研究人员进行了随机对照实验,结果发现那些参加了计划的人的就业率比没有参加计划的人要高。于是计划通过,开始正式实施,宣布招募计划,自愿报名。结果一期下来研究人员发现参与了计划的人员的就业率甚至比随机对照实验中参加了人更高。他们非常高兴,想以此为依据要政府继续追加投资。
但是有反对者站出来说不应该追加投资,他们的理由是这样的:尽管这个计划在随机对照实验中(人群是随机划分到控制组和对照组)是成功的。但是没有证据表明对于那些是出于自己意愿选择加入的人,该计划是有效的。反对者的意思是这些自愿加入计划的人可能本身就更积极、更有资源或者与社会连接更紧密,那么无论他们加不加入计划,可能最后都能找到工作。所以如果想要验证计划对这些人有效,那么应该评估的是假如这些人当初没有参加计划,他们的就业率和现实中他们参加计划后的就业率之间的差异。
这就是一个典型的反事实目标。如果我们用$X=1$表示参加了计划,$Y=1$表示找到了工作,那么我们想要评估的量就是那些参加计划的人受到计划的影响(ETT,better known as “effect of treatment on the treated”):
\[ETT=E[Y_1-Y_0|X=1]\]$ETT$似乎不能从实验性数据中计算,那更不可能从观测性数据中计算。然而,在某些情况下,它却是可计算的。比如存在一个变量集合$Z$,使得其对于$(X,Y)$满足后门规则,那么$ETT$就可以通过如下方式计算:
同样的,如果存在中继变量满足前门规则,也是可以估计$ETT$的。另外还有一个特殊情况就是当$X$ is binary,那么$ETT$可以通过experimental data和observational data来估计。
由于$X$是二值的,我们可以使用全概率公式得到:
根据一致性规则:$E[Y_x|X=x]=E[Y|X=x]$,再将上式做一个变换,
\[E[Y_x|X=x']=\frac{E[Y_x]-E[Y|X=x]P(X=x)}{P(X=x')}\]其中$E[Y_x]=E[Y|do(X=x)]$,可以通过实验数据得到(如果有满足前门或者后门规则的变量,也可以由观测性数据得到),其他的都是普通的概率,可以通过观测性数据得到。因此$ETT$也可以相应地计算出来。
我们再看一个例子。琼斯夫人是一个癌症患者,她现在面临选择:(1)只进行切割手术(2)切割手术+化疗。她最终选择了(2)。十年之后,琼斯夫人还活着,并且癌症也没有复发。她心里产生疑问:是否真的是化疗救了我的命?而另一位癌症患者史密斯夫人选择了(1),结果一年后癌症复发了。她后悔道:我当初就就应该进行化疗。她们的这些猜想能够通过数据来验证吗?
如果是关于化疗对人群总体的作用,毫无疑问,是可以通过实验来确定的。但是对于具体的个人,这样的实验就不能说明问题了。如果$X=1$表示进行了化疗,$Y=1$表示癌症没有复发。那琼斯夫人想知道其实是如果她当初不进行化疗,她癌症会复发的概率:
\[PN=P(Y_0=0|X=1,Y=1)\]$PN$表示”probability of necessity“,衡量的是琼斯夫人的决策(化疗)对于她最终的积极结果的必要性。而史密斯夫人想知道的如果当初她进行化疗,她癌症不会复发的概率:
\[PS=P(Y_1=1|X=0,Y=0)\]$PS$表示”probability of sufficiency“,衡量了史密斯夫人没做的那个决策(化疗)的充分性。
这两类概率在一大类问题中扮演了重要的角色,这类问题被称为“归因(attribution)问题”。一般来说,它们既无法从实验数据也不能从观测性数据中估计出来,但是接下来我们会介绍在一些条件下,当两种数据都有的时候,它们可以计算。
在介绍怎么算之前,我们还要再介绍一类概率。假设现在有第三位夫人,戴莉,即将要面对同样的选择。她在思考:要是我的肿瘤类型是那种只要做了切除手术就不会复发的类型,为什么我要选择经历化疗的痛苦呢?类似的,要是我的肿瘤类型是那种即使化疗了也还是会复发的类型,我也没必要做化疗了。我唯一会选择化疗的原因就是我的肿瘤是那种如果不化疗就会复发,化疗了就不会复发的类型。
对于戴莉夫人的困惑,其实就是关注化疗的充分性和必要性,用反事实的记号表达为:
\[PNS=P(Y_1=1,Y_0=0)\]这个看起来就很不好计算,但是如果我们假设treatment是由单调性的,就是说化疗要么是会带来更好的结果,或者至少是没有效果,肯定不会起反作用(化疗使得原本不会复发的癌症复发了)。在单调性假设下,$PNS$可以通过实验数据计算出来:
\[PNS=P(Y=1|do(X=1))-P(Y=1|do(X=0))\]下面我们就正式来看一下如何计算这类归因的问题。$X$和$Y$都考虑只有两个取值的情况,我们要求的表达式有如下形式:
\[PN(x,y)=P(Y_{x'}=y'|X=x,Y=y)\]这里用的是必要性,但其实本质上是一样的,上式也可以写成$PS(x’,y’)$。下面的定理提供了$PN$可计算的条件:
这里面含$do$的需要试验数据,其他的需要观测数据。举个例子,有一个诉讼是起诉一个汽车制造商,说是由于他们的一个错误设计导致一个男人在车祸中死亡。ERR是告诉我们开了这个制造商的汽车比没有开这个制造商的汽车更可能死亡的概率。而如果发现那些喜欢开得更快(更可能导致车祸)的人更倾向于与买这个制造商的车,那么CF就会修正这种由confounder带来的偏差。
而且对于一般的非单调的情况,定理中的结果还是$PN$的一个下界:
这些定理和结论具体是怎么来的还得看参考资料(日后用上再看吧)。
这个例子主要是想研究招聘中的性别差异,这种差异一方面是由于直接的性别歧视导致的,另一方面是由于性别通过影响受教育程度间接导致的。之前有介绍过,如果想要研究直接作用,可以通过固定中继变量来研究,但是如果是想研究间接作用,只用$do$算子是不行的。然而,借助反事实的记号,我们就可以做到。比如,我们想要评估在实施了gender-blind hiring procedures后hiring disparity。分析流程是这样的:一个有着qualification $Q=q$的女性应聘者的hiring status($Y$),在假设她当初被视为男性的反事实结果为$Y_{X=1,Q=q}$,$X=1$表示应聘者为男性。但是由于不同的应聘者有着不同的$q$,所以我们需要根据女性qualification的分布来平均这个量,即$\sum_q E(Y_{X=1,Q=q})P(Q=q|X=0)$。对于男性应聘者也是同理,只不过分布变成了男性qualification的分布,得到$\sum_q E(Y_{X=1,Q=q})P(Q=q|X=1)$。两者相减,就是我们想要评估的由中继变量qualification带来的性别对于求职的间接效应:
\[\sum_q E(Y_{X=1,Q=q})[P(Q=q|X=0)-P(Q=q|X=1)]\]我们称其为“natural indirect effect(NIE)”,因为我们允许$Q$自然地随着个体变化而变化,这跟我们在干预一章中介绍的controlled direct effect不同。因此,反事实让我们能够冻结$X$对$Y$的直接作用,而允许$Q$仍然自然地受$X$影响。
接下看一下如何识别。我们采用下图的模型:
我们在这里利用反事实的记号来将从$T=0$到$T=1$的过程中存在的4种效应定义清楚:
这里稍微注意下最后的NIE的定义,它和我们上面那个例子里的NIE不太一样。这里是正式的定义,上面那个例子的定义其实可以看成是从$T=1$到$T=0$(reverse transition)的NIE,被称为$\text{NIE}_r$。并且,有
\[TE=NDE-NIE_r\]对于linear system来说,reverse transition就是改变效应的符号,所以有$TE=NDE+NIE$。我们知道,TE和CDE(m)是可以通过$do$算子来表达的,所以可以通过实验数据或者是可以利用后门、前门规则的观测性数据来计算。而后面两个就需要其他的一些条件来保证可识别性。以下条件是充分条件,我们在找到一个变量集合$W$使其满足以下条件时,NDE和NIE是可识别的:
有了这几个条件,首先我们来看NDE的可识别性:
进一步的,如果$W$满足A-1和A-2,同时又deconfounds the relationships in A-3 and A-4(这里我理解deconfound是指$W$不是$T$和$M$的confounder),上式中的$do$算子就可以退化成条件概率:
再进一步,如果是完全的nonconfounding case(只有$T,M,Y$),NDE进一步退化成:
再根据$TE=NDE-NIE_r$,在nonconfounding case下,$TE=E[Y|T=1]-E[Y|T=0]$,则NIE等于:
上述两个公式被称为“mediation formulas”。我们看到NDE是CDE的一个加权平均,但是NIE就没有这样类似的解释。
NDE/TE表示冻结$M$,$T$对于$Y$直接影响的比例;NIE/TE表示当$Y$屏蔽$T$后,通过$M$影响的比例;(TE-NDE)/TE measures the fraction of the response that is necessarily due to $M$. (最后这一部分我没太理解,就把原文放上来了)
About $Y_x(u)$
如果读过一定量因果推断相关内容的话,估计会知道因果推断大致分成两派:一派是我们这本书主要介绍的Structural Causal Model,另一派是Potential Outcome框架。两者里都有$Y_x(u)$这个记号,前者是在反事实的叙述中使用,而后者就是表示潜在结果,其实两派本质上殊途同归(Pearl, 2000讨论了两者的等价性)。
Causal Inference in Linear Systems
我们之前的介绍大都是以非参数的角度来进行说明的。然而,现实中因果推断的方法大部分还是基于线性模型来进行应用。所以还是很有必要学习一下的。我把书中本来分别在干预和反事实章节中介绍的线性因果推断的内容整理到一起来,放在最后。希望大家在已经全面了解因果推断的相关概念之后,再通过在线性模型中的使用来强化对其的认识。
在接下来的模型中,我们均假设变量之间是线性关系,并且所有的error terms都服从正态分布。由于正态分布是完全可以由期望来确定的($\mu=E[X], \sigma^2=E[(X-\mu)^2]$),所以在表示条件独立时就可以用条件期望替代条件概率,而使用条件期望的一大好处就是可以使用回归来计算因果效应。再加上线性的假设,我们可以通过系数在因果图中表示变量之间的关系。比如SCM是$Y=3X+U$,那么边$X \to Y$上的系数就是3。我们把因果图上的这些系数$\beta_1,\ldots,\beta_n$称为path (structural) coefficients,它们和我们通常说的回归系数$r_1,\ldots,r_n$是有本质区别的。前者是causal,后者是statistical。
回归方程和结构方程是不一样的。当我们写一个回归方程$y=r_1x+r_2z+\epsilon$,我们并没有假设任何因果关系,不是说$X$和$Z$ cause $Y$。这个式子只是在表达我们想通过得到特定的$r_1,r_2$使得$y=r_1x+r_2z$成为($E[y|x,z]$)最好的线性预测。而结构方程有假设因果性,一般为了区别这两者,在记号的使用上也有不同,如果是结构方程,一般写成$y=\alpha x+\beta z+u$。$\epsilon$表示拟合后的残差,而$u$表示那些被忽略的影响$Y$同时又不被$X$影响的因素。
不过在线性系统的因果推断中,回归方程也是非常重要的。因为条件概率的位置被条件期望取代,而后者又可以用回归系数表示。比如说,如果对于一个回归方程:
\[y=r_0+r_1 x_1 + r_2x_2 + \ldots + r_nx_n + \epsilon\]如果$r_i=0$,则$X_i$在给定其他变量的情况下和$Y$独立。
The Causal Interpretation of Structural Coefficients
在linear system里,每个path coefficient代表了一个变量对另一个变量的direct effect。我们看一个例子:
我们想求的是$Z$对于$Y$的直接效应(之前介绍过的),写成期望的形式如下:
根据$do$算子的规则替换$W$和$Z$的方程,再带入具体的值得到$DE=d$,就是$Z \to Y$上的path coefficient。那如果我们是想计算$Z$对$Y$的total effect呢?
按照上面的意思就是$d+ce$。我们也可以根据SCM来计算一下,替换$Z$的方程为$Z=z$,然后进行一些变换:
最后一个式子是$Y=\tau Z+U$的形式,其中$\tau=d+ce$,$U$只包含在modified model里和$Z$无关的变量。因此$\tau$就是我们要求的。
Identifying Structural Coefficients and Causal Effect
其实在线性模型中,识别因果效应就转变成要挑哪些变量进行回归,选入回归方程就以为这condition on这些变量。而该怎么选则还是要根据前面介绍过的图理论。比如下面这个图,想要计算$X$对于$Y$的因果效应。
根据后门规则,我们需要调整$T$,所以我们就regress $Y$ on $X$ and $T$,即$y=r_X X+r_T T$。$r_X$就$X$对于$Y$的total effect。那么如果我们想计算direct effect呢?在这个例子中因为$X$到$Y$没有直接的边,所以很明显直接效应为0。但是如果有边该如何计算呢?我们先看下面一个例子,然后回头再来看上面这个例子该怎么做。
(a)是模型的图表示,要想求total effect $\alpha$,就要block从$X$间接到$Y$的path,也就是要condition on $W$。所以我们就regress $Y$ on $X$ and $W$,即$y=r_X X+r_W W +\epsilon$,$r_X$就是direct effect。总结一下,首先去掉$X$直接到$Y$的边(如果有的话),形成的图叫做$G_{\alpha}$,如(b)所示。其次,如果$G_{\alpha}$中有变量$Z$可以$d$-separates $X$和$Y$,那么regress $Y$ on $X$ and $Z$,$X$的系数就是direct effect $\alpha$。
回到之前那个$\alpha=0$的例子,我们根据这个准则,$Z={T,W}$。所以构造回归方程$y=r_x X+r_T T+r_W W +\epsilon$,$r_X$就是direct effect。
我们发现,只要满足:
-
所有$U$是相互独立的
-
所有内生变量都是可观测的
则在linear SCM中所有的系数都是可识别的。然而,对于(c)中的情况,$X$和$Y$有一个unobserved common cause。由于无法测量,所以我们无法condition on它,所以就无法识别$\alpha$了。但是在这个例子中,我们可以使用工具变量(instrumental variable)来解决这个问题。
从这个定义来看$Z$就是一个工具变量,我们来看看它是如何帮助我们识别$\alpha$的。我们将$X$和$Y$分别对$Z$回归,即$y=r_1z+\epsilon_1$,$x=r_2z+\epsilon_2$。由于$Z$不产生任何后门,所以$r_2=\beta$,而$r_1$则是$Z$对$Y$的total effect,$\beta \alpha$。因此,$r_1/r_2$就是我们想要的$\alpha$。
最后多说一句,在线性模型中,计算indirect effect本质上也是计算direct effect。以图(a)为例,$X$对$Y$的间接效应等于$\gamma \delta$。只要分别把两个对应的直接效应算出来就行了,如果$W$观测不到,则可以使用total effect - direct effect,当然这只在线性模型中有效。
Counterfactuals in Linear Models
下面我们来看看线性模型中的反事实。在一般的非参数模型中,像$E[Y_x|Z=z]$这种形式的反事实即使有很多实验数据可能也无法被识别(这句话我暂时还没有充分理解)。但是在线性模型下,事情就变得简单多了:只要模型的参数是可识别的,那么任何反事实都是可识别。这是因为参数完全决定了模型的函数,就像我们之前看过的例子,只要SCM完全给定,计算任何反事实是很容易的。而模型参数又是可以通过实验数据计算的,所以至少在线性模型中,反事实是可以通过试验性数据计算的。那么如果是观测性数据呢?有研究表明,只要$E[Y|do(X=x)]$是可识别的,那么任何$E[Y_{X=x}|Z=e]$这种形式的反事实($e$ is an arbitrary set of evidence)也是可识别的,这两者的关系在下面的定理中总结了:
这个定理提供了一个计算总体中个体(或者说一部分个体)反事实的方法。它的大意是说:计算$E[Y_{X=x}|Z=e]$,首先计算在给定$Z=e$下$Y$的最佳估计,然后加上$X$从它的最佳估计$E[X|Z=e]$改变到$x$后对$Y$造成的变化。我们还是举课后辅导班那个例子,我们想要计算effect of treatment on the treated:
\[ETT=E[Y_1-Y_0|X=1]\]利用定理,$e={X=1}$,我们可以得到
可以发现,在treatment组上的因果效应和在总体中的因果效应是一样的。这对于线性模型来说是成立的。然而,存在非线性关系(比如交叉项),这个结论就不一定成立了。比如我们把上面的模型修改一下,$X \to H$的箭头调转一下,然后$Y$的方程变成:$Y=bX+cH+\delta XH+U_Y$,$ETT$和$\tau$就不一样了。我们来算一下:
另外假设$U_i \sim N(0,1),i={X,H<Y}$。首先算一下$\tau$:
接下来因为不是线性关系,所以不能用定理来算$E[Y_x|X=x’]$,那我们就用反事实的定义来算:
自然的,$ETT=E[Y_1-Y_0|X=1]=b+\frac{\delta a}{1+a^2}$。因此,$ETT-\tau=\frac{\delta a}{1+a^2}\neq 0$.