上一章我们提出了两个有趣的因果问题,并浅尝辄止的提及了因果推理的定义:因果推理指推断出任意处理或干预等的效果。
这一章让我们从因果和统计学的关系出发,了解二者的关系,并初步学习一个经典因果框架:潜在结果框架。
首先我们回忆上一章我们提到的问题,公鸡打鸣是太阳升起的原因吗?地面潮湿是天要下雨的原因吗?二者是相关的,那他们的因果关系是什么?带着这个疑惑,让我们开始今天的学习。
Correlation does not imply causation
首先,关联性并不意味着因果性。
关联性是统计学的概念,而因果性是因果推理的概念。
让我们看一个例子,如图1所示,黑色的表示尼古拉斯每年拍的电影数量,红色的表示每年溺水者的数量,从统计的数据可以看出,二者具有极高的相关性(66.6%),那我们是否可以据此推理出尼古拉斯凯奇拍电影导致人们溺水,并以谋杀罪控告他?
当然这只是个玩笑话,因为我们知道这二者的关联性只是一种数据的巧合,但这也证明了我们的观点:关联性不等于因果性
。
那么,什么能表示因果呢?我们需要一套系统能严谨的阐述这样的因果关系。
Potential Outcome Framework
潜在结果框架。
我们依然从一个例子出发。假设我们要测试一个药物的是否能治好头痛,该怎么做?经过高中生物教育的我们应该能很快想到随机对照实验,即如果一个人,他不吃药,头依然会痛,但吃了药头就不痛了,那说明这个药是能治好头痛的,如图2.1所示。
术语解释:
d o ( T = 1 ) do(T=1) do(T=1): 吃药
d o ( T = 0 ) do(T=0) do(T=0): 不吃药
Y i ∣ d o ( T = 1 ) Y_i|_{do(T=1)} Yi∣do(T=1): 个体吃药后的观测结果
Y i ∣ d o ( T = 0 ) Y_i|_{do(T=0)} Yi∣do(T=0): 个体不吃药的观测结果
在这里,我们假定T和Y皆为二值,分别表示吃药(T=1)和不吃药(T=0),头不痛(Y=1)和头痛(Y=0)。术语中的do(*)就相当于随机对照实验中的控制变量,在这个例子中就是指定变量的值为吃药或者不吃药。使用do操作后,我们就只需要考虑T和Y这两种变量。我们继续看下去。
术语解释:
Y i ( 1 ) Y_i(1) Yi(1):吃药后的潜在结果
Y i ( 0 ) Y_i(0) Yi(0):不吃药的潜在结果
Y i ( 1 ) − Y i ( 0 ) Y_i(1) - Y_i(0) Yi(1)−Yi(0):因果效应
如图2.2所示,我们将do操作后得到的结果 Y i ∣ d o ( T = 1 ) Y_i|_{do(T=1)} Yi∣do(T=1)记为为 Y i ( 1 ) Y_i(1) Yi(1),将 Y i ∣ d o ( T = 0 ) Y_i|_{do(T=0)} Yi∣do(T=0)记为为 Y i ( 0 ) Y_i(0) Yi(0),并称 Y i ( ∗ ) Y_i(*) Yi(∗)为潜在结果(potential outcome)。
这个潜在结果是什么意思呢?让我们思考一下”吃药治头痛“这个例子,对于一个个体i,我们是否能同时观测到他吃药的结果和不吃药的结果?显然是不能的,我们不能让一个人在同一时间内既吃药,又不吃药。事实上,我们得到的结果只是如果对该个体进行处理而可能得到的潜在的预期结果
,这便是”潜在结果“这一名词的由来。
而有了潜在结果之后,我们就可以得到最基本的个体处理效应(ITE,individual treatment effect):
I T E = Y i ( 1 ) − Y i ( 0 ) ITE = Y_i(1) - Y_i(0) ITE=Yi(1)−Yi(0)
即两种处理的潜在结果之差,但显然,个体的因果效应能带来的价值是有限的,我们希望能得到更有普遍性的结果,即平均处理效应(ATE,Average treatment effect ):
A T E = E [ Y i ( 1 ) − Y i ( 0 ) ] = E [ Y ( 1 ) ] − E [ Y ( 0 ) ] ATE=E[Yi(1)-Yi(0)] = E[Y(1)]-E[Y (0)] ATE=E[Yi(1)−Yi(0)]=E[Y(1)]−E[Y(0)]
其实就是对个体处理效应求个期望。
因为是随机对照实验,所以我们可以进一步推导公式:
A T E = E [ Y i ( 1 ) − Y i ( 0 ) ] = E [ Y ( 1 ) ] − E [ Y ( 0 ) ] ATE=E[Yi(1)-Yi(0)] = E[Y(1)]-E[Y (0)] ATE=E[Yi(1)−Yi(0)]=E[Y(1)]−E[Y(0)] (causation)= E [ Y ∣ T = 1 ] − E [ Y ∣ T = 0 ] E[Y|T=1]-E[Y|T=0] E[Y∣T=1]−E[Y∣T=0](correlation)
然后根据实验数据,直接求出 E [ Y ∣ T = 1 ] − E [ Y ∣ T = 0 ] E[Y|T=1]-E[Y|T=0] E[Y∣T=1]−E[Y∣T=0]值就得到我们想要的因果效应了。
我希望读者对 E [ Y ( 1 ) ] − E [ Y ( 0 ) ] = E [ Y ∣ T = 1 ] − E [ Y ∣ T = 0 ] E[Y(1)]-E[Y (0)]=E[Y|T=1]-E[Y|T=0] E[Y(1)]−E[Y(0)]=E[Y∣T=1]−E[Y∣T=0]这一步推导感到警觉,如果大家还记得上一章的因果之梯的话,你会发现事实上这一步推导正是将第二层干预与第一层关联连接起来的阶梯。正是这一等式的成立,我们才建立了因果推断与统计学的联系,使得我们能从真实数据中窥探因果之秘。
好了,现在我们得到了随机对照试验条件下ATE的公式,我们是不是能解决现实中”吃药能否治头痛“的问题呢?聪明的你应该知道这是不能的,因为我们很难满足随机对照实验这样严苛的条件。
Randomized control trials(RCTs)
随机对照实验。
在因果中,我们用do操作实现随机对照实验假设。在我们探讨do操作究竟做了什么之前,让我们先引入一个之前一直**忽略(ignore)**的变量:混淆变量(confounder)。
如图3所示,假设在实验中,存在变量会影响T和Y的值,则我们称其为混淆变量(confounder)。这个变量在因果中的地位至关重要,事实上前人提出的各种假设和算法都是为了解决混淆变量给因果带来的影响。
比如在”吃药治头痛“的例子中,药的价格就可以是一个混淆变量。我可能会因为药太贵而选择不吃药(影响T),也可能因为吃的药太贵,为花了这么多钱而头痛(影响Y)。
那么do操作,如图4所示,就是强行切断了所有混淆变量X对T的影响。
当我们对一个变量执行do操作,就默认了保证其他变量的一致性,即确保了没有混淆因子可以影响变量T,只有这样,我们才可以认为 E [ Y ( 1 ) ] − E [ Y ( 0 ) ] = E [ Y ∣ T = 1 ] − E [ Y ∣ T = 0 ] E[Y(1)]-E[Y (0)]=E[Y|T=1]-E[Y|T=0] E[Y(1)]−E[Y(0)]=E[Y∣T=1]−E[Y∣T=0] 成立。
也就是说,只有随机对照实验中数据才满足 E [ Y ( 1 ) ] − E [ Y ( 0 ) ] = E [ Y ∣ T = 1 ] − E [ Y ∣ T = 0 ] E[Y(1)]-E[Y (0)]=E[Y|T=1]-E[Y|T=0] E[Y(1)]−E[Y(0)]=E[Y∣T=1]−E[Y∣T=0] 。显然这很不现实,现实数据大多是无法满足随机对照实验条件的。那么我们如何才能从现实数据中总结出因果关系呢?这需要我们进行观察性研究(observational studies)。
Observational studies
观察性研究,指对研究对象在自然状况下的数据对比分析而得出结论,不需要人为设置处理因素,如图5所示。
但在这种情况下的数据就无法满足$ E[Y(1)]-E[Y (0)]=E[Y|T=1]-E[Y|T=0]$ 了,因为真实数据中充斥着混淆变量对T和Y的影响。我们需要一些方法摆脱混淆变量对数据的影响,突破因果与统计数据间的壁垒。
如何突破因果推断与统计数据的壁垒,实现 E [ Y ( 1 ) ] − E [ Y ( 0 ) ] = E [ Y ∣ T = 1 ] − E [ Y ∣ T = 0 ] E[Y(1)]-E[Y (0)]=E[Y|T=1]-E[Y|T=0] E[Y(1)]−E[Y(0)]=E[Y∣T=1]−E[Y∣T=0]呢?我们需要学习4个重要假设:
- unconfoundedness
- positivity
- no interference
- consistency
好了,我想这章到这里就可以结束了。这一章我们初步学习了潜在结果框架的一些术语,并在其中穿插着因果与统计之间关系的思考,在后面的文章中,我们将一起学习潜在结果模型中的4个重要假设,我会尽量将篇幅限制在今天这样的范围,以避免大家觉得过长而枯燥乏味。
最后,如图6所示,这是我们给定的”吃药治头疼“的数据,请大家分别思考在随机对照实验和观察性研究中,如何求得该数据的因果效应,并尝试自己设定假设,使得 E [ Y ( 1 ) ] − E [ Y ( 0 ) ] = E [ Y ∣ T = 1 ] − E [ Y ∣ T = 0 ] E[Y(1)]-E[Y (0)]=E[Y|T=1]-E[Y|T=0] E[Y(1)]−E[Y(0)]=E[Y∣T=1]−E[Y∣T=0]。我们下一章会以这个表格数据为开始,缓缓揭开因果与统计之间的关系。