《因果推断入门》学习笔记
本文是笔者在B站《因果推断入门》课程学习以及教材《Causal Inference in Statistics: A Primer》学习过程中留下的笔记。对应课程链接如下:因果推断入门课程,对应书籍链接如下:《Causal Inference in Statistics: A Primer》电子书。
1.简介(Introduction)
三位因果推断领域著名的科学家:Juden Pearl(UCLA 计算机科学家),Donald Rubin(Harvard 统计学家),James Robins(Harvard 流行病学、生物学家)。
相关性≠因果性:图中是美国1999-2009年的自杀人数与科研经费花费的变化图。可以看到两个指标是高度相关。但是他们之间不存在因果性,即不可能因为减少科研经费而导致自杀人数急剧降低。实际上,相关性通常是对称的,因果性通常是不对称的(单向箭头),相关性不一定说明了因果性,但因果性一般都会在统计层面导致相关性。
- 推荐入门教材:《Causal Inference In Statistics》by Judea Pearl;《Causal Inference》 by Hernan and Robins。
2.辛普森悖论(Simpson’s Paradox)
- 概念:在某个条件下的两组数据,分别讨论时都会满足某种性质,可是一旦合并考虑,却可能导致相反的结论。下面用一个例子来进一步说明这个问题:下面第一个表为男性在接受某种药物治疗后的康复情况,发现经过治疗后的康复率为0.93,而没有经过药物治疗的康复率为0.86。第二张表是女性的情况,在经过药物治疗后的康复率为0.73,而未经过药物治疗的康复率为0.69。由上面数据我们可以发现:无论是男性女性,药物对治疗该疾病都是有帮助的。
但是,第三个表格将男女数据全部合并,我们发现:药物对治疗该疾病是没有帮助的,反而是有害的。以上这个问题就是典型的辛普森悖论问题。
概率论解释与混淆变量:下面就用概率论的方法来解释上述现象发生的实质和原因。
首先,对变量进行编码表示:
X | Y | Z | |
---|---|---|---|
0 | Women | Not Recovered | No Treatment |
1 | Men | Recovered | Treatment |
那么上述的“辛普森悖论例子”图片中的①、②、③、④、A以及B便可以用条件概率的形式来表示:
这里我们假设$P(X=1|Z=1)$为$q$,则$P(X=0|Z=1)$为$1-q$。假设$P(X=1|Z=0)$为p
,则$P(X=0|Z=0)$为$1-p$。那么A和B便可以表示为:
为了更加形象的说明问题,我们将上述的两个式子转化成如下图:
可见A和B的取值分别由p和q取值来决定的。从上图中可以看到,出现A<B的内在条件是:1.A点趋于③的位置(q趋向于0,即数据中的药物更多是在女性人群中使用);2.Prob(③)<Prob(①)(即女性用药人群要比男性用药人群更难恢复)。将这两个条件用因素影响图来表示:
也就是:性别会影响用药情况和人的恢复,而用药也会影响恢复。这里我们称Sex为混淆因素,它不仅会影响我们判断是否用药,也会影响最终的恢复情况。如果你是医生,想要判断该药是否对病情有恢复作用,就必须把Sex这一混淆因素去除掉。而去除混淆变量的方法很简单,我们只需要看分组数据(只看男性数据或者只看女性数据,而不是将男女数据合到一起而引入了混淆因素)。通过上述的解读,可以得到一个结论:统计结论的反转是因为存在混淆变量,该变量同时影响着原因和结果。
因果中间变量:相对于上述的混淆变量,这里还有一类变量:因果中间变量。下面同样以一个例子来说明。
上图中有三个因素:血压,是否用药以及治疗效果。其中用药对治疗效果有副作用,而另一方面用药可以降血压进一步来提升治疗效果。这里的血压我们称之为“因果中间变量”。
上图是一组实际中的例子。第一行为低血压人群用药的治疗结果:对于没用药有93%治愈率,而对于用药人群只有87%的治愈率。第二行为高血压人群,对于没用药有73%治愈率,而对于用药人群只有69%的治愈率。通过这两行分类数据发现:无论是高血压人群还是低血压人群,药物只体现了其对康复的副作用。而第三行,将高血压和低血压人群合并,发现得到了药物对治疗有促进作用。如果你是医生,想知道药物对治疗疾病的真正效果,你会从分类角度(高血压\低血压独立来看)还是整体角度来看?如果从分类的角度,则只是单独考虑了药物的副作用而忽略了血压的影响,但事实上药物对治疗的影响还存在一部分是血压带来的效益。所以从分类角度来看是有问题的。所以,对于这种因果中间变量模型,我们应该从整体的角度来评估药物对治疗的效果。
3.概率统计知识(Probability and Statistics)
条件概率(conditional Probability):
独立事件(Independence):
其中 Independence 和 Conditional Independence 是不相等的,如上式中,给定C使得A和B是条件独立的,但我们是无法得到A和B是独立的。举个例子:A打电话与B打电话本身是独立事件,但是我们假定A和B都给你打电话,如果你的电话响了,那么对于你来说电话要么是A打的要么是B打的,这样A和B事件就是相关了。
- 贝叶斯法则(Bayes‘ rule):
- 期望(Expectation):
- 方差(Variance):
- 协方差(Covariance):
- 相关系数(Correlation):
4.图模型(Graph Model)
完全图(Complete graph):图中任意两个节点之间都存在一条连边。
Parent和Child节点:如果有一条有向边,那么这条有向边的起始点为Parent节点,而终止点为Child节点。
ancestor和descendent:如果两个节点被一条有向路径连接,那么第一个节点被在这条路径上称为其他节点的ancestor,而其他节点是第一个节点的descendent。具体可以见下图所示。
- 闭环图(cyclic):含有闭环的有向图,如下图所示:
- 非闭环图(acyclic directed graph)DAG:不含闭环的有向图,如下图所示:
5.结构因果模型(Structural Causal Model)
结构因果模型(SCM)刻画:假设原因X导致了结果Y,那么这种直接关系就可以用$Y=f(X)$这一结构因果模型来表示。另一种情况,如果原因X导致结果Z,而结果Z导致结果Y,那么这种间接关系可以用$Y=f(g(X))$这一结构因果模型来表示。无论是直接还是间接,X都是Y的原因(cause)。
因果、SCM以及图模型关系:下面就用3个例子来说明现实世界中的因果如何转化成结构因果模型以及图模型。首先,是直接因果关系的情况,即只需一条有向边表示即可。
其次是结果Y由两个原因X、Z共同导致的情况:
最后是间接因果关系的情况,即前面提到复合函数的情况。
- 外生节点与内生节点:上面我们提到了3种比较简单的因果模型,下面我们来看一个相对复杂一点的因果图模型。如下图,原因X和W共同导致了结果Z,而结果Z导致了结果Y。那么我们便可以画出对应的因果图模型如下所示。在图中,我们称X和W这类没有父亲的节点为外生节点(exogenous),而称Z和Y这类有父亲的节点为内生节点(endogenous)。即:根节点
<=>
外生节点集合U,根节点的后代节点(descendent)<=>
内生节点集合V,连边<=>
对应的函数映射。
6.因果与相关(Intransitive Case)
- 1.如果两个变量统计相关,那么这两个变量未必具有因果性。
2.如果两个变量存在因果性,那么这两个变量在大多数情况下是统计相关的,但未必一定相关。
下面用一个例子来说明上述结论2中“未必相关”的部分,下面是该例子的结构因果模型:
根据上述的结构因果模型可以作得对应的图模型:
从模型中我们可以发现,$P(Z=i)=P(Z=i|X=1)=P(Z=i|X=2)$三者都是相等,即Z的取值实际上和X没有关系,而完全取决于$ U_y $和$U_z$,$Z$和$X$之间便是独立的。因此,实际上两个还有因果关系的变量也未必存在统计相关性,这也给因果推断带来了困难。
7.链式结构(Chain)
- V-Structure的三种结构:①chain、②fork、③collider(所谓V-structure就是含有三个顶点的图,是图模型的基本组件,掌握了这三个基本组件便一通百通),具体对应的图模型见下图所示。
- Chain上的条件独立结论:从下图(题注为:Chain的性质)中,我们发现
X
和Z
之间存在很多的链式结构。按照前几节的内容可以得到下面结论:X
与Y1...Yn
都是大概率统计相关的,且Z
与Y1...Yn
也是大概率统计相关的。进一步可以得到Z
和X
也是大概率统计相关。
但是如果其中的Y
是已知条件(即Condition在Y1..Yn
上所有通路),那么X
和Z
便是统计独立的(相当于X
和Z
间所有通路断开)——这是链式结构的重要性质。
8.叉式结构(Fork)
- Fork上的条件独立结论:从下图(题注为:Fork的性质)中,我们发现
Ux
、Uy
以及Uz
为三个外生变量,而X
、Y
和Z
之间构成了Fork结构。按照前几节的内容可以得到下面结论:X
与Y
都是大概率统计相关的,且X
与Z
也是大概率统计相关的。进一步可以得到Y
和Z
也是大概率统计相关。
但是如果其中的X
是已知条件(即Condition在X
上),那么Y
和Z
便是统计独立的(相当于Y
和Z
间不存在通路)——这是叉式结构的重要性质。
9.对撞结构(Collider)
Collider上的条件独立结论:从下图(题注为:Collider的性质)中,我们发现Ux
、Uy
以及Uz
为三个外生变量,而X
、Y
和Z
之间构成了Collider结构。按照前几节的内容介绍,可以得到下面结论:X
与Z
都是大概率统计相关的,且Y
与Z
也是大概率统计相关的。而X
和Y
却是大概率统计独立的。
但是如果其中的Z
是已知条件(即Condition在Z
上),那么X
和Y
便是统计相关的——这是对撞结构的重要性质。
注:如果Z
还存在后代,那么Condition在Z
后代上,X
和Y
依旧是大概率统计相关的。
10.D-分隔(D-Separation)
- D-分隔定义:有向图相关性的分隔。通过第7、8、9章的介绍,我们可以得到下表的结论:
V-Structure | Uncondition | Condition |
---|---|---|
Fork | Unblock | Block |
Chain | Unblock | Block |
Collider(or descendents) | Block | Unblock |
注:其中的Unblock为dependent,而Block为independent。
- 对于Fork:X<—Z—>Y,
X
和Y
是d-connected的,即前面提到的Unblock(连通通路)。 - 对于Chain:X—>Z—>Y,
X
和Y
是d-connected的,即前面提到的Unblock(连通通路)。 - 对于Collider:X—>Z<—Y,
X
和Y
是d-separated的,即前面提到的Block(阻断通路)。
如果
X
和Y
是d-connected,那么X
和Y
是相关的。反之,如果X
和Y
是d-separated,那么X
和Y
是独立的。在Uncondition的时候,对撞结构会阻断通路。而叉状和链状结构会连通相关通路。如果Condition在叉状和链状结构上,通路会被阻断;而Condition在对撞结构或其子节点上,通路就被打开。
如果
X
和Y
之间的每一条通路都被阻断,那么X
和Y
就被D-分隔。另一方面,如果X
和Y
之间存在一条通路连通,那么X
和Y
就是D-连接。对于复杂的图,只要拆分成V-structure就可以用D-Separation理论来分析。下面是一个复杂图的D-分隔分析方法。其中,’$\equiv$‘ 表示变量间相关,而‘$\perp$’ 表示变量间独立。
11.模型检验和等价类(Model Testing and Causal Search)
模型检验:通过给定图模型,可以从中确定出各个变量间的因果关系和统计相关性。而在实际中我们往往有这些变量的统计数据,需要做的就是从统计数据中估计出变量间的相关性和因果性,这里估计的方法有很多,如:变量间的线性回归或者非线性回归等等。图模型得到的因果推断和数据统计得到的因果结论应该是统一的,这便有了模型检验。
等价类:从前面的介绍我们可以得到 Fork 和 Chain 的很多性质都是相同的。但 Chain 和 Collider,Fork 和 Collider的性质差异都很大。即:
- 叉状和链状结构在统计相关性上是等价的。
- 对撞和链式结构并不等价。
- 对撞和叉状结构也不等价。
- 有连通父节点的对撞结构也是等价类的一种情况。(collider的两个父节点之间存在连边)
判断两个有向图等价就看他们是否有相同的骨架,也就是在两个有向图里去掉等价类的部分之后,剩下的部分是否等价。
12.乘积分解法则(Rule of Product Decomposition)
含义:对于每一个结构化因果模型所对应的联合分布,都可以进行乘积分解,这种乘积分解可以大大的减少联合分布的参数空间维度,使得在数据量有限的情况下,对因果模型联合分布有效的估计成为了可能。这种乘积分解将联合分布分解成若干项,每一项都是模型中的一个变量基于其父节点的条件概率。乘积分解公式的推导基于条件概率公式,用到了D-Separation中的链状结构。最终得到乘积分解法则:
其中$pa(X_i)$是变量$X_i$的所有父节点。
下面用一个例子来证明该法则:
实际上只要证明下面的等式,而下面的等式只需要根据D-Separation即可得到。
13.混淆变量(Confounding Variable)
代表原因的变量:Treatment,代表结果的变量:Outcome。
混淆变量(Confounding Variable/Confounder):同时影响原因和结果的变量。混淆变量会引入非因果的统计相关性。
观测数据(Observational Study) VS 实验数据(Experiment)
- 观测数据是由被动观测和收集产生。观测数据中数据采集源和采集环境没有受到影响和干预。
- 实验数据是干预的环境下得到的结果。一般是先干预再观测。
例如:要想研究锻炼和感冒的关系。随机取选择样本,记录每一个人的锻炼量和感冒次数就属于观测数据。而实验数据:随机选择参与者,其中一部分进行干预(锻炼),而另一部分不进行干预(不锻炼),记录感冒的次数。
随机试验一般是先招募试验个体,然后随机的给受验个体指定Treatment和Control,然后再比较Outcome的区别。
观测数据中变量可能呈现相关性,但只有试验数据可以直接验证因果关系。因为随机实验能够去掉Confounding的影响。
14.观测数据与试验数据(Observation Study And Experiment)
观测数据中可能体现的仅仅是统计相关性,而可靠的试验数据可能直接揭示因果性,因为观测数据往往受混淆变量的影响,而随机试验可以消除这种影响。
随机试验使得试验组和对照组中个体的混淆变量的分布相同,因此Outcome的变化就可以归咎于Treatment的影响。
15.消除混淆:后门准则(Backdoor Criterion)
有了d-分离的概念基础,我们就可以回到一开始提到的混淆的问题,按照之前所述,我们希望消除混淆因子带来的“伪相关”,找出真正的因果关系。一种消除混杂的方法叫后门准则(backdoor criterion)。首先需要明确什么是前门路径,什么是后门路径。
变量$A$和$Y$之间的后门路径就是连接$A$和$Y$但是箭头不从变量$A$出发的路径。比如:$A \gets L \to Y$,便称为$A$和$Y$之间的后门路径(backdoor path)。而$A\to Y$就是前门路径(frontdoor path)。
后门准则可以简述如下:如果我们有足够的数据能够将所有$A$和$Y$之间的后门路径全部阻断,那么我们就可以识别(identify)$A$和 $Y$之间的因果关系。
简单来说,混淆(confounding)就是因果变量之间的共因。而混淆因子(confounder)就是能够阻断因果变量之间所有后门路径的变量(可能混杂因子不止一个)。这里要特别说明的是,混淆因子的概念是建立在因果图结构之上的,必须要指定因果图的结构,混杂因子才有意义。在一个复杂的因果图中,某个变量可能阻断了某两个变量之间的所有后门路径,因此它是某两个变量的混孝因子,但它对另一个路径来说可能并不是混淆因子。因此我们纠缠于谁是混淆因子没有实际意义,有意义的是:以哪个变量为条件可以消除这条路径上的混淆。
因此,混淆因子也可以被更准确地定义如下:
- 【从结构角度定义】如果以某个变量 $L$为条件使得变量 $A$ 和 $Y$ 之间的相关性发生了更改(即原来相关变为不相关、原来不相关变为相关),那么该变量 $L$ 为 $A$ 和 $Y$ 之间的混杂因子。
- 【从传统角度定义】当变量 $L$ 满足以下三个条件时, $L$ 便是 $A$ 和 $Y$ 之间的混淆因子:
- $L$与$A$ 相关
- 当以$A$ 为条件时$L$ 与$Y$ 相关
- $L$ 不在$A$ 到$Y$ 的因果关系路径中
要注意的是,结构角度的定义并不一定得到正确的判断,很多情况下会带来选择偏倚等错误判断,所以两个角度结合起来判断更好。