一组动图读懂因果推断

发布时间:2022-11-18 阅读 586

Stata连享会   主页 || 视频 || 推文 || 知乎 || Bilibili 站

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

New! lianxh 命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc, ihelp, rdbalance, gitee, installpkg

课程详情 https://gitee.com/lianxh/Course

课程主页 https://gitee.com/lianxh/Course

⛳ Stata 系列推文:

PDF下载 - 推文合集

作者:陈卓然 (中山大学)
邮箱3352026899@qq.com

编者按:本文摘译自 Nick C. Huntington-Klein 教授的博客 Causal Inference Animated Plots,特此致谢!


目录


1. 控制变量

如果我们认为 X 对 Y 可能有影响,并且我们想知道这个影响有多大。在理想情况下,我们可以只查看一下数据中 X 和 Y 之间的关系,然而很多情况下这并不能起作用,例如可能有一些其他变量 W 同时影响 X 和 Y。具体如下图所示:

当这种情况发生时,我们在数据中看到的 X 和 Y 之间的关系将反映两件事:X 对 Y 的影响 (我们感兴趣的部分),以及 W 对 X 和 Y 的影响 (我们不感兴趣的部分)。W 提供了从 X 到 Y 的后门路径,我们可以通过 X  Y 路径 (这是我们想要的) 或 X  Y 路径 (这是我们不想要的) 从 X 到达 Y。

例如,X 是教育,Y 是收入,W 是智力。我们观察到受教育程度越高的人往往赚得越多。部分原因是教育导致工资上涨,但另一部分原因是,更聪明的人更有可能接受教育,也可能赚得更多。

解决这个问题的一个方法是通过控制 W 来关闭后门路径,也就是说我们想看看在去除 W 的影响之后的 X 和 Y 的关系。此时我们关闭掉 X  Y,只留下 X  Y。这正是我们所想要的,在我们控制 W 之后,X 和 Y 之间剩下的唯一关系就是因果关系 (假设唯一的后门路径是 X 通过 W 去影响 Y)。

那么,如何看待在去除 W 影响之后 X 和 Y 之间的关系呢?其实我们就是去掉了 X 和 Y 中同时由 W 解释的部分,我们去掉了可以用 W 预测的 X 和 Y 的部分从而关闭后门,来确保我们是在一群 W 水平相同的人之间进行比较。如果 W 是一个二元变量 (只接受两个值),下图清晰地展现了控制 W 之后的情形:

2. 匹配

如果我们想知道一个政策对于变量 Y 的影响有多大。理想情况下,我们只需要看看数据中反映政策的处置变量和 Y 之间的关系就可以了。然而,可能有很多原因导致这一想法行不通。例如,某些特定类型的人可能更多或更少地被处理,这些人不管是否接受处理,其 Y 值都可能更高或更低。

让我们不妨假定具有某一特定的 X 值的人更有可能得到处置,而这些人具有某些特定的 Y。具体如下图所示:

当这种情况发生时,我们在数据中看到的处置变量和 Y 之间的关系将反映两件事:Treatment 对 Y 的真正影响 (我们所感兴趣的部分),以及 X 对处置变量和 Y 的影响(我们不感兴趣的部分)。这时 X 为我们提供了从处置变量到 Y 的后门路径,从而使得处置变量可以通过直接路径到 Y (这是我们想要的)或 X 传导到 Y 路径 (这是我们所不想要的)。

例如,处置变量代表一个城市在 2014 年是否改善了其道路,Y 表示该城市在 2015 年的 GDP 增长。我们观察到处置城市在第二年比非处置 (对照) 的城市增长更快。部分原因是公路带来了 GDP 的增长,但也可能是由于已经快速增长的城市更有可能有资金来资助公路建设。在此例中,X 是 2014 年之前的 GDP 增长。

解决这个问题的一个方法是通过在 X 上进行匹配来关闭后门路径,我们想看看在具有相同的 X 值的城市中处置变量和 Y 之间的关系,也就是说我们关闭了 Treatment  Y,只留下 Treatment  Y,这正是我们感兴趣的部分!在我们控制了 X 之后,处置变量和 Y 之间剩下的关系就是我们需要的因果关系 (假设唯一的后门路径是通过 X)。

具体而言,我们进行匹配的方法是选择处置组城市,然后只将它们与 X 值相同或非常相似的控制组城市进行比较。如果 Treatment 是一个二元变量,那么在 X 上的匹配的过程是这样的:

3. 工具变量

我们认为 X 可能对 Y 有影响,并且想知道这个影响有多大。理想情况下,我们可以只查看数据中 X 和 Y 之间的关系。但是有很多原因使得这可能行不通。例如有某些其他变量 W 同时影响 X 和 Y,如下面的因果图所示:

当这种情况发生时,我们在数据中看到的 X 和 Y 之间的关系将反映两件事:X 对 Y 的影响 (我们感兴趣的部分),以及 W 对 X 和 Y 的影响 (我们不感兴趣的部分)。W 为我们提供了从 X 到 Y 的后门路径。我们可以通过 X  Y 路径 (这是我们想要的) 或 X  Y 路径 (这是我们不想要的) 从 X 到 Y。

但是,注意图中我们也有变量 Z 在影响 X,但是在控制 X 之后并没有后门路径从 Z 到 Y,因此所有 Z 到 Y 的影响都是来自 X。此时如果我们能够提取出 X 所解释的 Z 的部分,便可以提取出我们感兴趣的因果关系。

例如,X 是父母的收入,Y 是孩子的健康。W 是父母的健康状况,这可能会影响到孩子的健康 (一些疾病可能是遗传的或传染性的) 和父母的收入 (如果生病了就很难工作)。Z 可能是随机分配到一个福利计划,每个月给父母发一张支票。如果支票让你的收入增加,那和父母的健康没有任何关系 (因为这是随机分配的),所以我们不需要担心父母的健康对于孩子健康的影响。

解决这个问题的一种方法是将 Z 作为 X 的工具变量。从而提取出由 Z 引起的 Y 的变化。由于 Z 与 W 无关,W 不再给我们带来任何问题。这看上去和我们前文提到的控制变量的思路相反,我们不是去掉所有由我们控制的变量能够解释的 X 和 Y 的部分,而是去掉所有由工具变量所无法解释的 X 和 Y 的部分。如果 Z 是一个二元变量 (只接受两个值),那么使用 Z 作为 X 的工具变量的过程如下所示:

4. 固定效应

我们认为 X 可能对 Y 有影响,并且想知道这个影响有多大。理想情况下,我们可以只查看数据中 X 和 Y 之间的关系。但是这可能有很多原因使得这并不能行得通。例如,人与人之间可能存在各种各样的差异,导致他们有不同水平的 X 和不同水平的 Y,正如下面的因果图所示:

在上图中,Individual 代表我们所关注的个人/公司/城市/国家的任何不随时间变化的东西。当这种情况发生时,我们在数据中看到的 X 和 Y 之间的关系将反映两件事:X 对 Y 的影响 (我们感兴趣的部分),以及个体特征影响 X 和 Y 的方式 (我们不感兴趣的部分)。Individual 为我们提供了从 X 到 Y 的后门路径。

例如,假设 X 是首席执行官的教育水平,Y 是公司在某一年的利润。不同类型的公司可能盈利能力不同,也更有可能或者更没有可能聘用受过高等教育的 CEO。谁知道这些差异是什么造成的呢?固定效应实际上是在考察每个给定公司在有着受教育程度更高的CEO的年份,以及有着受教育程度较低的CEO的年份的表现。因此,为了实现这一目标,我们需要对每个公司进行多次观察,以便我们有多个时期进行比较。

只要我们能够在多个时点观察一个个体,我们就可以使用固定效应去关闭 “个体” 的后门路径。我们的想法是去考察每个人内部 X 和 Y 之间的关系。另一种思考方式是,你在 “控制” 每一个个体。当我们这样做时,我们实际上关闭 X  Individual  Y,只留下 X  Y,这是我们感兴趣的!在我们控制 Individual 之后,X 和 Y 之间剩下的关系是因果关系 (假设唯一的后门路径是通过 Individual)。

5. 双重差分

对于处理组,他们在某一时刻被实施了一项新政策,我们可以在处置开始之前和之后观察他们。我们认为这项政策可能对 Y 有影响,理想情况下,我们可以只看治疗后 Y 是否比治疗前上升。然而,有很多原因使得这并不能行得通!因为有可能在政策实施的这段时间内,Y 在所有组中都上升了,而不仅仅是处置组。具体如下图所示:

例如,处置变量为是否将办公室从小隔间转换到开放式办公室,Y 是生产力。处置前是 2016 年,处置后是 2017 年。但经济从 2016 年到 2017 年也有所改善,所以生产率的提高可能与开放式办公室无关。当这种情况发生时,处置组的 Y 在处置前和处置后的差异将反映两件事:处置对 Y 的影响 (我们感兴趣的部分),以及 Y 可能因与处置无关的原因而随时间发生的变化 (我们不感兴趣的部分),时间为我们提供了从处置变量到 Y 的后门路径。

更糟糕的是,如果我们只观察处置组,我们无法通过控制时间来关闭这扇后门,因为时间完美地预测了处置,所以如果我们删除所有由时间解释的处置部分,就什么都不剩了!

我们可以添加一个从未接受处置的对照组。这将让我们有机会控制时间,但现在引入了另一个后门,因为控制组和处置组可能是不同的。在下图中,一个人只有在处置组中并且在处置期之后的时间段内才接受 “处置”。除了时间这一后门之外,我们还需要关闭一个来自 Treatment  In Treatment Group  Y 的后门:

我们可以使用 DID (双重差分) 的办法关闭两条后门路径。也就是说我们首先可以通过观察处置组的 Y 从处置前到处置后变化了多少,以及对照组的 Y 从处置前到处置后变化了多少,这样的计算出的差异便可以控制 In Treatment Group,关闭 Treatment  In Treatment Group  Y 的后门。然后,我们将处置组的处置前后差异减去对照组的处置前后差异,从而去掉了由时间解释的对照组的 Before/After 差异,关闭了 Treatment  Time  Y 后门。

6. 断点回归

我们认为 X 可能对Y有影响,并且想知道这个影响有多大。理想情况下,我们可以只查看数据中 X 和 Y 之间的关系,但是实际上可能有很多原因使得这并不能行得通。例如,某些类型的人可能更多或更少地获得处置,这些人的 Y 值可能更高或更低。事实上,在本小节中,是否接受处置是基于一个驱动变量分配的。如果你的驱动变量高于某个临界值,你就会得到处置,否则不会接受处置。然而,驱动变量也可能预测 Y。

假设处置变量是能否进入伊顿公学 (Eton College),Y 是能否进入牛津大学 (Oxford University),驱动变量是考试成绩。考试成绩在 90 分以上的学生可以进入伊顿公学 (Eton College),90 分以下的学生不能进入。进入伊顿公学 (Eton College) 可能会帮助你进入牛津,但是往往考试分数高的学生更有可能进入牛津。

此时,处置变量和 Y 之间的关系将反映两件事:处理变量对 Y 的影响 (我们感兴趣的部分),以及驱动变量对处理和 Y 的影响 (我们不感兴趣的部分)。驱动变量为我们提供了从处理变量到 Y 的后门路径。

我们可以通过控制驱动变量来关闭后门。最好的方法是看看驱动变量是如何解释 Y 的,然后只关注在断点附近的部分。这确保了我们将处理过的人和未处理过的人进行比较,他们的驱动变量基本相同,从而有效地控制了驱动变量。

为什么要在截止点附近进行比较,而不是正常地控制驱动变量呢?因为在临界值附近的人群中,他们是刚好高于还是低于临界值几乎是随机的。因为它几乎是随机的,如果有其他我们没有发现的后门路径,我们也会关闭它们。

通过集中于断点右侧的部分,我们便可以分离出 Above Cutoff  Treatment  Y 的路径,忽略掉 Treatment  Y 这条路径。

7. 相关推文

Note:产生如下推文列表的 Stata 命令为:
lianxh 因果推断, m
安装最新版 lianxh 命令:
ssc install lianxh, replace

相关课程

免费公开课

最新课程-直播课

专题 嘉宾 直播/回看视频
最新专题 文本分析、机器学习、效率专题、生存分析等
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]
  • Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。

课程主页

课程主页

关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。
  • 连享会-主页知乎专栏,700+ 推文,实证分析不再抓狂。直播间 有很多视频课程,可以随时观看。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会-常见问题解答:
https://gitee.com/lianxh/Course/wikis

New! lianxhsongbl 命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh