因果推断笔记

不谜语人的因果推断笔记!

学习统计最好还是学习一下 R 语言。相比 Python,R 是专门用于统计的语言,它提供了更细致的函数和更标准的实现方法。

GitHub 项目地址:

1. 因果推断入门

小朋友感冒,家长给他吃药,一个星期后就痊愈了。那么“吃药”和“痊愈”是否有因果关系呢?

我们知道普通的小感冒,即使不吃药,一个星期后也会痊愈。因此未必是因为吃药才痊愈的,也有可能是小朋友凭借抵抗力恢复了健康。此时,要进一步分析“吃药”与“痊愈”的因果关系,就要用到因果推断技术。

注意在上述例子中,原因存在两种状态:吃药/不吃药。结果也存在两种状态:痊愈/未痊愈。为了描述方便,我们把:

  • 作为原因的变量:x 叫做控制变量 (control variable),或解释变量 (explanatory variable)
  • 作为结果的变量:y 叫做响应变量 (response variable),或被解释变量 (explained variable)

1.1 如何测量因果关系

反事实因果分析框架 是统计学中分析因果关系的一种常见思路。这种思路把一种“状态”与其“反事实状态”造成结果的差异当作因果效应。对于小朋友 $i$,反事实因果分析框架反映的因果效应 $\tau_{i}$ 表示为: $$\tau_{i} = Y_{i}(1) - Y_{i}(0)$$ 这里 $Y_{i}(1)$ 代表吃药,$Y_{i}(0)$ 代表不吃药,它们都是观测值。

不难发现,$Y_{i}(1)$$Y_{i}(0)$ 是无法同时观测到的。这被称为 因果推断的根本性问题 (Holland, 1986)。正如“人不能两次踏入同一条河流”,一旦做出某种选择,其他选择的结果就无从观测了。

由于此“根本性问题”的存在,对 $\tau$ 算不了真实值,只能估计。因果效应 $\tau$ 有三种常见的估计值

我们约定:是否吃药用 $X$ 表示,$X = 0 \space or \space 1$,其中 1 代表吃药,0 代表不吃药。这里有必要区分下,$Y_{i}|X=1$ 是指那些真的吃了药的人的 $Y$ 值。$Y_{i}(1)$$Y_{i}(0)$ 则是看不到的一个潜在状态,可能是用统计方法算出的估计值,也可能是模型的外推。

1.ATT (average treatment effect on treated):实验组平均因果效应 $$\tau_{ATT} = E( \space (Y_{i}|X=1) - Y_{i}(0) \space )$$ 2.ATU (average treatment effect on untreated):控制组平均因果处理效应 $$\tau_{ATU} = E( \space Y_{i}(1) - (Y_{i}|X=0) \space )$$ 3.ATE (average treatment effect):平均因果处理效应 $$\tau_{ATE} = \pi * \tau_{ATT} + (1 - \pi) * \tau_{ATU} $$ 其中,$\pi$ 是吃药的人(即$X=1$)在所有样本中所占的比例。

扩展阅读ATE: Average Treatment Effect

1.2 因果推断的前提假设

根据上一节内容我们知道,因果效应是由估计得来的。这也就不难理解,为了让“估计”成立,我们需要一些前提假设对问题进行约束。

因果推断的4个前提假设:

  1. 单位处理变量稳定性假设 (stable unit treatment value assumption, SUTVA)
  2. 一致性假设 (consistency)
  3. 可忽略性假设 (ignorability)
  4. 正值假设 (positivity)

名词解释:

🌟 单位处理变量稳定性假设 有两层含义。一层含义是,用户的实验结果是相互独立的,一个用户的行为不能影响另一个用户。这样的例子有很多,比如出租车公司给 A 组用户发放优惠券,结果 A 组用户大量打车。由于市场上出租车的存量是有限的,于是发生了挤兑。结果B组用户既没有优惠券又很难打到车,于是就转而使用其他公司的服务,最终导致 B 组用户的 GMV 暴跌。这就是典型的组间用户的相互影响。再举一个例子,医生给病人开出某种精神镇定类药物,A 病人先服用,精神好了很多。这个过程病人 B 看见了,于是他在服用的时候,因为有了 A 给他的心理暗示,他也感觉精神好了很多。此时用户间的相互干扰就发生了,因为你说不清病人 B 身上的“药效”,有多少是药物导致的,又有多少是安慰剂效应导致的。另一层含义是,施加在用户身上的干预不能有版本的区别。比如同样发优惠券,不能给 A 发两毛,给 B 发一块。

🌟 一致性假设 是指:如果一个人真的吃了药,那么他看不见的潜在状态 $Y_{i}(1)$ 就等于真的吃了药时的 $Y$ 值。用符号表示为: $$Y_{i}(1)|X=1 \space 等于 \space Y_{i}|X=1$$ 🌟 可忽略性假设 指用户进入实验组还是控制组是随机事件。举个 bad case,如果让山东用户都进入实验组,河北用户都进入对照组,那显然不服从该假设。

🌟 正值假设 指用户的处理变量取某个特定值的概率在 0 到 1 之间,它既不能无限趋近于 0,也不能无限趋近于 1。举个例子,假如我们要研究大学教育与未来薪资的关系,但是我们的样本中有这样一个人,他天资聪颖、家境优渥,家长从小就为他铺好了成才之路。这样的样本我们就要把他剔除。因为他太过极端,极端到我们无法想象对应的反事实状态“不上大学”有任何出现的可能。

1.3 观测性分析与随机实验

生活中,并非所有研究都能直接干预处理变量 $X$。比如人的性别是一出生就确定的,我们没有办法做干预性别的随机实验,LGBTQ+ 走开 (`ヮ´ )σ 还有就是那些涉及伦理道德的问题,比如研究有害物质对孕妇的影响。针对这样的研究,我们没法做随机实验,只能做观测性分析。

观测性分析与随机实验代表了分析因果关系的两种思路。观测性分析是探讨结果的原因,而随机实验则是探讨原因的结果

在观测性分析中,由于观测大都取决于客观条件,因此一般都有不满足上述四条假设的地方。为减小各种系统误差,往往要使用纠偏方法对结果进行校正。但纠偏方法并非是完全无害的,多多少少会引入新的问题。有些纠偏方法,使用不当甚至不如不用。

正因为观测性分析存在如此多的问题,因此在有条件做随机实验的情况下,还是尽量做随机实验。随机实验是检验因果关系的 黄金标准

todo: 未完待续