logo

读统计之都《因果推断简介》系列文章

wangzf / 2023-07-09


目录

统计之都的《因果推断简介》系列文章是 2019 年的一些旧文章,作者是伯克利统计系的老师,研究方向是因果推断,不经意间看到了这个系列,也被统计之都最近一段时间推的关于因果推断的文章标题洗脑,恰巧工作中遇到了一些数据分析的问题,感觉可以用因果推断尝试去解决一下。

Yule-Simpson’s Paradox

统计还能研究因果?

因果推断的教材

目前市面上能够买到的因果推断(causal inference)相关教科书:

目前还没写完的:

Yule-Simpson’s Paradox

在高维列联表分析中, 有一个很有名的例子,叫做 Yule-Simpson’s Paradox。 有文献称,Karl Pearson 很早就发现了这个悖论——也许这正是他反对统计因果推断的原因。 此悖论表明,存在如下的可能性:$X$$Y$ 在边缘上正相关;但是给定另外一个变量 $Z$ 后, 在 $Z$ 的每一个水平上,$X$$Y$ 都负相关。Table 1 是一个数值的例子,取自 Pearl(2000)。

img

Table 1 中,第一个表是整个人群的数据:接受处理和对照的人都是 40 人,处理有较高的存活率,因此处理对整个人群有 “正作用”。 第二个表和第三个表是将整个人群用性别分层得到的,因为第一个表的四个格子数,分别是下面两个表对应格子数的和:

$$20 = 18 + 2$$ $$20 = 12 + 8$$ $$16 = 7 + 9$$ $$24 = 3 + 21$$

奇怪的是,处理对男性有 “负作用”,对女性也有 “负作用”。一个处理对男性和女性都有 “负作用”,但是他对整个人群却有 “正作用”:悖论产生了!

个人理解:

有人可能会认为这种现象是由于随机性或者小样本的误差导致的。但是这个现象与样本量无关,与统计的误差也无关。 比如,将上面的每个格子数乘以一个巨大的正数,上面的悖论依然存在。

纯数学的角度,上面的悖论可以写成初等数学;

$$\frac{a}{b} < \frac{c}{d},\frac{a'}{b'}<\frac{c'}{d'},\frac{a+a'}{b+b'}>\frac{c+c'}{d+d'}$$

这并无新奇之处。但是在统计上,这具有重要的意义——变量之间的相关关系可以完全的被第三个变量 “扭曲”。 更严重的问题是,我们的收集的数据可能存在局限性,忽略潜在的“第三个变量” 可能改变已有的结论,而我们常常却一无所知。 鉴于 Yule-Simpson 悖论的潜在可能,不少人认为,统计不可能用来研究因果关系。

上面的例子是人工构造的,在现实中,也存在不少的实例正是 Yule-Simpson’s Paradox:

吸烟是否导致肺癌和健康工人效应

由于有 Yule-Simpson’s Paradox 的存在,观察性研究中很难得到有关因果的结论,除非加上很强的假定。

一个很经典的问题:吸烟是否导致肺癌?由于我们不可能对人群是否吸烟做随机化试验, 我们得到的数据都是观察性的数据:即吸烟和肺癌之间的相关性 (正如 Table 1 的合并表)。 此时,即使我们得到了吸烟与肺癌正相关,也不能断言 “吸烟导致肺癌”。这是因为可能存在一些未观测的因素, 他既影响个体是否吸烟,同时影响个体是否得癌症。比如,某些基因可能使得人更容易吸烟,同时容易得肺癌; 存在这样基因的人不吸烟,也同样得肺癌。此时,吸烟和肺癌之间相关,却没有因果作用。

相反的,我们知道放射性物质对人体的健康有很大的伤害,但是铀矿的工人平均寿命却不比常人短; 这是流行病学中有名的 “健康工人效应”(healthy worker effect)。这样一来,似乎是说铀矿工作对健康没有影响。 但是,事实上,铀矿的工人通常都是身强力壮的人,不在铀矿工作寿命会更长。此时,在铀矿工作与否与寿命不相关, 但是放射性物质对人的健康是有因果作用的。

结语

这里举了一个悖论,但没有深入的阐释原因。阐释清楚这个问题的根本原因,其实就讲清楚了什么是因果推断。

Rubin Causal Model 和随机化试验

Rubin Causal Model,RCM

因果推断用的最多的模型是 Rubin Causal Model (RCM; Rubin 1978) 和 Causal Diagram (Pearl 1995)。 Pearl(2000) 中介绍了这两个模型的等价性,但是就应用来看,RCM 更加精确,而 Causal Diagram 更加直观, 后者深受计算机专家们的推崇。这里主要讲了 RCM。

$Z_{i}$ 表示个体 $i$ 接受处理与否,处理取 $1$,对照取 $0$(这部分的处理变量都讨论二值的,多值的可以做相应的推广); $Y_{i}$ 表示个体 $i$ 的结果变量。另外记 $\{Y_{i}(1), Y_{i}(0)\}$ 表示个体 $i$ 接受处理或者对照的 潜在结果(potential outcome), 那么 $Y_{i}(1) - Y_{i}(0)$ 表示个体 $i$ 接受治疗的 个体因果作用。 不幸的是,每个个体要么接受处理,要么接受对照, $\{Y_{i}(1), Y_{i}(0)\}$ 中必然缺失一半,个体的作用是不可识别的。 观测的结果是 $Y_{i} = Z_{i}Y_{i}(1)+(1-Z_{i})Y_{i}(0)$。 但是,在 $Z$ 做随机化的前提下,我们可以识别 总体的平均因果作用(Average Causal Effect, ACE)

$$ACE(Z \rightarrow Y)=E[Y_{i}(1) - Y_{i}(0)]$$

这是因为:

$$\begin{align} ACE(Z \rightarrow Y) &= E[Y_{i}(1)] - E[Y_{i}(0)] \\ &= E[Y_{i}(1) | Z_{i} = 1] - E[Y_{i}(0) | Z_{i} = 0] \\ &= E[Y_{i} | Z_{i}=1] \end{align}$$

最后一个等式表明 ACE 可以由观测的数据估计出来。其中第一个等式用到了期望算子的线性性(非线性的算子导出的因果度量很难被识别); 第二个式子用到了随机化,即:$Z \perp \{Y(1), Y(0)\}$

$Y$ 是二值的时候,平均因果作用是是流行病学中常用的“风险差”(risk difference, RD):

$$\begin{align} CRD(Z \rightarrow Y) &= P(Y(1) = 1) - P(Y(0) = 1) \\ &= P(Y = 1|Z=1) - P(Y=1|Z=0) \end{align}$$

当然,流行病学还常用“风险比”(risk ratio, RR):

$$\begin{align} CRR(Z \rightarrow Y) &= \frac{P(Y(1) = 1)}{P(Y(0) = 1)} \\ &= \frac{P(Y=1 | Z = 1)}{P(Y=1|Z=0)} \end{align}$$

和“优势比”(odds ratio, OR):

$$\begin{align} COR(Z \rightarrow Y) &= \frac{P(Y(1) = 1)P(Y(0) = 0)}{P(Y(0) = 1)P(Y(1) = 0)} \\ &= \frac{P(Y = 1 | Z = 1)P(Y=0|Z=0)}{P(Y=1|Z=0)P(Y=0|Z=1)} \end{align}$$

上面的记号都带着“C”,是为了强调 “causal”。细心的读者会发现, 定义 CRR 和 COR 的出发点和 ACE 不太一样。ACE 是通过对个体因果作用求期望得到的, 但是 CRR 和 COR 是直接在总体上定义的。这点微妙的区别还引起了不少人的研究兴趣。 比如,经济学中的某些问题,受到经济理论的启示,处理的作用可能是非常数的, 仅仅研究平均因果作用不能满足实际问题的需要。这时候, 计量经济学家提出了“分位数处理作用”(quantile treatment effect,QTE):

$$QTE(\tau) = F_{Y(1)}^{-1}(\tau) - F_{Y(0)}^{-1}(\tau)$$

在随机化下,这个量也是可以识别的。但是, 其实这个量并不能回答处理作用异质性(heterogenous treatment effects)的问题, 因为处理作用非常数,最好用如下的量刻画:

$$\Delta(\delta)=P(Y(1) - Y(0) \leq \delta)$$

这个量刻画的是处理作用的分布。不幸的是,估计 $\Delta(\delta)$ 需要非常强的假定, 通常不具有可行性。

R.A.Fisher 和 J.Neyman 的分歧

完全随机化试验下的 Fisher randomization test 和 Neyman repeated sampling procedure。 简单地说,前者是随机化检验,或者如很多教科书讲的 Fisher 精确检验(Fisher exact test); 后者是 Neyman 提出的置信区间 (confidence interval)理论。

不过在 Guido Imbens 和 Donald Rubin 所写的因果推断教科书(还未出版)中,这两点内容放在了全书的开端, 作为因果推断的引子。在其他的教科书中,是看不到这样的讲法的。

Fisher randomization test

Fisher 的随机化检验,针对的是如下的零假设,又被称为 sharp null:

$$H_{0}: Y_{i}(1) = Y_{i}(0), \forall i=1, 2, \cdots, n.$$

坦白地说,这个零假设是我见过的最奇怪的零假设,没有之一。现行的统计教科书中,讲到假设检验, 零假设都是针对某些参数的,而 Fisher 的 sharp null 看起来却像是针对随机变量的。

这里需要讲明白的是,当我们关心有限样本(finite sample)的因果作用时,每个个体的潜在结果 $\{Y_{i}(1), Y_{i}(0)\}$ 都是固定的, 观测变量 $Y_{i}=Z_{i}Y_{i}(1) + (1-Z_{i})Y_{i}(0)$ 的随机性仅仅由于“随机化”本身导致的。理解清楚这点,才能理解 Fisher randomization test 和后面的 Neyman repeated sampling procedure。

如果读者对于这种有限样本的思考方式不习惯,可以先阅读一下经典的抽样调查教科书, 那里几乎全是有限样本的理论,所有的随机性都来自于随机采样的过程。

如果认为潜在结果是固定的数,那么 Fisher sharp null 就和现行的假设检验理论不相悖。 这个 null 之所以“sharp”的原因是,在这个零假设下,所有个体的潜在结果都固定了, 个体的因果作用为零,唯一的随机性来自于随机化的“物理”特性。定义处理分配机制的向量为:

$$\overrightarrow{Z}=(Z_{1}, \cdots, Z_{n})$$

结果向量为:

$$\overrightarrow{Y}=(Y_{1}, \cdots, Y_{n})$$

此时,有限样本下的随机化分配机制如下定义:

$$P(\overrightarrow{Z}|\overrightarrow{Y}) = \left( \begin{array}{l} n \\ m \end{array}\right)^{-1}, \forall\overrightarrow{Y}$$

其中:$m=\sum_{i=1}^{n}Z_{i}$ 为处理组中的总数。这里的“条件期望”并不是说 $\overrightarrow{Y}$ 是随机变量,而是强调处理的分配机制不依赖于潜在结果。比如,我们选择统计量:

$$T=T(\overrightarrow{Z}, \overrightarrow{Y})=\frac{1}{m}\sum_{i=1}^{n}Z_{i}Y_{i}-\frac{1}{n-m}\sum_{i=1}^{n}(1-Z_{i}Y_{i})$$

来检验零假设,问题在于这个统计量的分布不易求出。但是,我们又知道, 这个统计量的分布完全来自随机化。因此,我们可以用如下的“随机化”方法(Monte Carlo 方法模拟统计量的分布):将处理分配机制的向量进行随机置换得到 $\overrightarrow{Z}^{1}=(Z_{1}^{1}, Z_{2}^{1}), \cdots, Z_{n}^{1}$,计算此时的检验统计量 $T^{1}=T(\overrightarrow{Z}^{1}, \overrightarrow{Y})$;如此重复多次,$n$ 不大时,可以穷尽所有的置换,便可以模拟出统计量在零假设下的分布,计算出 $p$ 值。

有人说,Fisher randomization test 已经蕴含了 bootstrap 的思想,似乎也有一定的道理。 不过,这里随机化的方法是针对一个特例提出来的。

Neyman repeated sampling procedure

下面要介绍的 Neyman 的方法,其实早于 Fisher 的方法。这种方法在 Neyman 1923 年的博士论文中,正式提出了。这种方法假定 $n$ 个个体中有 $m$ 个随机的接受处理, 目的是估计(有限)总体的平均因果作用:

$$\tau =\frac{1}{n}\sum_{i=1}^{n}\{Y_{i}(1) - Y_{i}(0)\}$$

一个显然的无偏估计量是:

$$\hat{\tau}=\bar{y}_{1} - \bar{y}_{0} = \frac{1}{m}\sum_{i=1}^{n}Z_{i}Y_{i}-\frac{1}{n-m}\sum_{i=1}^{n}(1-Z_{i})Y_{i}$$

但是,通常的方差估计量

$$\hat{Var}(\hat{\tau})=\underset{Z_{i}=1}{\sum}\frac{(Y_{i}-\bar{y}_{1})^{2}}{(m-1)m} + \underset{Z_{i}=0}{\sum}\frac{(Y_{i}-\bar{y}_{0})^{2}}{(n-m-1)(n-m)}$$

高估了方差,构造出来的置信区间在 Neyman-Pearson 意义下太“保守”。可以证明,在个体处理作用是常数的假定下,上面的方差估计是无偏的。

通常的教科书讲假设检验,都是从正态均值的检验开始。Neyman 的方法给出了 $\tau$ 的点估计和区间估计,也可以用来检验如下的零假设:

$$H_{0}: \tau=0$$

实际中,到底是 Fisher 和零假设合理还是 Neyman 的零假设合理,取决于具体的问题。 比如,我们想研究某项政策对于中国三十多个省的影响,这是一个有限样本的问题,因为我们很难想象中国的省是来自某个“超总体”。 但是社会科学中的很多问题,我们不光需要回答处理或者政策对于观测到的有限样本的作用,我们更关心这种处理或者政策对于一个更大总体的影响。 前者,Fisher 的零假设更合适,后者 Neyman 的零假设更合适。

关于这两种角度的争论,可以上述到 Fisher 和 Neyman 两人。1935 年, Neyman 向英国皇家统计学会提交了一篇论文 “Statistical problems in agricultural experimentation”, Fisher 和 Neyman 在讨论文章时发生了激烈的争执。不过,从今天的统计教育来看,Neyman 似乎占了上风。

观察性研究,可忽略性和倾向得分

和之前的假设一样,$Z$ 表示处理变量(1 是处理,0 是对照),$Y$ 表示结果, $X$ 表示处理前的协变量。在完全随机化的试验中,可忽略性 $Z \perp \{Y(1), Y(0)\}$ 成立, 这保证了平均因果作用 $ACE(Z \rightarrow Y) = E[Y(1) - Y(0)] = E[Y|Z=1] - E[Y|Z=0]$ 可以表示成观测数据的函数, 因此可以识别。在某些试验中,我们“先验的”知道某些变量与结果强相关,因此要在试验中控制他们,以减少试验的方差。 在一般的有区组(blocking)的随机化试验中,更一般的可忽略性 $Z\perp \{Y(1), Y(0)\} | X$ 成立, 因为只有在给定协变量 $X$ 后,处理的分配机制才是完全随机化的。比如,男性和女性中,接受处理的比例不同, 但是这个比例是事先给定的。

在传统的农业和工业试验中,由于随机化,可忽略性一般是能够得到保证的; 因此在这些领域谈论因果推断是没有太大问题的。Jerzy Neyman 最早的博士论文,就研究的是农业试验。 但是,这篇写于 1923 年的重要统计学文章,迟迟没有得到统计学界的重视, 也没有人将相关方法用到社会科学的研究中。1970 年代,Donald Rubin 访问 UC Berkeley 统计系, 已退休的 Jerzy Neyman 曾问起:为什么没有人将潜在结果的记号用到试验设计之外? 正如 Jerzy Neyman 本人所说 “without randomization an experiment has little value irrespective of the subsequent treatment(没有随机化的试验价值很小)”, 人们对于观察性研究中的因果推断总是抱着强烈的怀疑态度。我们经常听到这样的声音:统计就不是用来研究因果关系的!

在讲 Yule-Simpson 悖论的评论中,有人提到了哲学(史)上的休谟问题(我的转述):人类是否能从有限的经验中得到因果律?这的确是一个问题, 这个问题最后促使德国哲学家康德为调和英国经验派(休谟)和大陆理性派(莱布尼兹-沃尔夫)而写了巨著《纯粹理性批判》。 其实,如果一个人是绝对的怀疑论者(如休谟),他可能怀疑一切,甚至包括因果律,所以,康德的理论也不能完全“解决”休谟问题。 怀疑论者是无法反驳的,他们的问题也是无法回答的。他们存在的价值是为现行一切理论起到警示作用。 一般来说,统计学家不会从过度哲学的角度谈论问题。从前面的说明中可以看出,统计中所谓的“因果”是“某种”意义的“因果”, 即统计学只讨论“原因的结果”,而不讨论“结果的原因”。前者是可以用数据证明或者证伪的;后者是属于科学研究所探索的。 用科学哲学家卡尔·波普的话来说,科学知识的积累是“猜想与反驳”的过程:“猜想”结果的原因,再“证伪”原因的结果; 如此循环即科学。

观察性研究

下面谈到的是,在什么样的条件下,观察性研究也可以推断因果。这是一切社会科学所关心的问题。 答案是:可忽略性,即 $Z\perp \{Y(1), Y(0)\} | X$。在可忽略性下,$ACE$ 可以识别, 因为

$$\begin{align} ACE = E[] \end{align}$$

Causal Diagram

Causal Diagram,因果图

有向无环图和 do 算子

参考