【因果推断经典论文】Direct and Indirect Effects - Judea Pearl
Direct and Indirect Effects
Author: Judea Pearl
UAI 2001 加州大学洛杉矶分校
论文链接:https://dl.acm.org/doi/pdf/10.5555/2074022.2074073
本文链接:https://www.cnblogs.com/zihaojun/p/15715903.html
前言
Judea Pearl是图灵奖得主,因果推断的奠基人之一。由于阅读的论文中涉及到反事实推断中Total Effect(TE), Natural Direct Effect(NDE), Total Indirect Effect(TIE)等概念,涉及到反事实推断方法的核心,因此前来拜读一下Pearl老爷子二十年前发表的这篇论文。本文被引用1300+。
这篇文章比较硬核,挺难读的,有需求的同学可以先收藏一波,高能预警~~
1. Introduction
一个变量对另一个变量的直接效应(direct effect)可以通过控制其他变量(中介变量、其他因变量等)的值来确定,但是在非线性模型中,间接效应(indirect effect)是不能用这种方式得到的,在这种条件下,间接效应甚至还没有明确定义。
2. 概念性分析
2.1 直接效应 VS. 总体效应
直接效应(direct effect):直接效应是指,如果保持其他所有变量都不变,只改变X的值(例如从\(X=x^*\)到\(X = x\),则Y的值发生多少变化。
- 例如,X表示性别,Y表示是否雇佣,当其他所有变量(品质、资历、技能等)都不变,只改变性别时,雇佣决定是否会发生改变。这个结果可以用来衡量是否有性别歧视,即性别对雇佣决定的直接影响,而不是通过其他中介变量的间接影响。
- 再例如,有一个药品A,会产生头痛的副作用。所以患者就会吃阿司匹林来缓解疼痛,而阿司匹林的服用剂量又会对药品A的治疗效果产生影响。
- 如果我们要考虑整体的治疗效果,那就不考虑患者吃没吃阿司匹林,或者说阿司匹林带来的效果也是服用药品A间接带来的。服用\(x\)和\(x^*\)剂量的药品A带来的总体治疗效果为 \(P(Y_x = y)- P(Y_{x^*} = y)\)
- 如果要考察药品A对治疗的直接贡献,也就是要去除“药品A\(\rightarrow\)头痛\(\rightarrow\)服用阿司匹林\(\rightarrow\)影响治疗效果”这条因果路径,只考虑药品A\(\rightarrow\)治疗效果这条路径,那就要控制阿司匹林的用量。在服用阿司匹林剂量为z的情况下,服用\(x\)和\(x^*\)剂量的药品A带来的直接治疗效果为 \(P(Y_{xz} = y)- P(Y_{x^*z} = y)\)
当考察一个线性系统时,直接效应可以直接通过变量前面的系数得到,中介变量的具体取值没有影响。但是当考察非线性系统时,中介变量的取值也会影响到直接效应的观测结果,因此需要仔细考虑。
2.2 描述性效应和规定性效应
(这个概念我还是第一次听说,主要是关于干预控制变量时,中介变量的取值问题。之前没有理解到,非线性系统中,其他变量的取值对因果效应的影响。)
描述性效应(Descriptive effect)指的是,不对中介变量的值做干预,保持其在自然状态下的取值,此时实施干预带来的因果效应。又称为自然效应(natural effect)
规定性效应(Prescriptive effect)指的是,用预定义的值来替换中介变量的值,改变其在自然状态下的取值,此时实施干预带来的因果效应。又称为控制效应(controlled effect)
例如,在2.1中提到的阿司匹林和药品A的例子中
- 描述性效应指的是,如果病人保持吃药之前服用阿司匹林的剂量(自然剂量),且开始服用药品A,病人的状况会好转吗?(自然直接因果效应)
- 规定性效应指的是,如果病人服用阿司匹林的剂量为z(一个人为规定的量),则病人服用药品A是否会对病人的状况带来改善?(控制直接因果效应)
如果一个病人,只有在吃药品A的时候才会吃阿司匹林,而只有吃阿司匹林的时候,服用药品A才有治疗效果。在这种情况下:
- 服用药品A对于该病人的康复是没有自然直接因果效应(natural direct effect)的。
- 但是服用药品A对于该病人的康复有控制直接因果效应(controlled direct effect)。
在研究自然效应的时候,需要知道病人在自然状态下,服用阿司匹林的剂量,而研究控制效应的时候不需要知道这个信息。
这两个概念的区别在实际人群中观测平均因果效应的时候是很重要的。
- 规定性效应要更实际一些。
- 例如还是在上述例子当中:
- 规定性效应的观测只需要给所有病人规定阿司匹林的用量即可
- 但描述性效应需要知道每个病人在自然状态下的阿司匹林用量,并分别进行控制。
- 描述性效应(自然效应)还有一个严重的问题,要得到自然效应,需要分别观测同一批人在服药时和不服药时的情况,而对同一批人做两次实验是很困难的。在后文3.4部分,会介绍估计平均自然直接效应所需的额外假设。
2.3 自然效应对策略制定的意义
- 在药物和阿司匹林的例子中,药厂如果想要去除药物的副作用(头痛),需要考虑到,去除副作用后,患者服药后的阿司匹林用量就会比现在少,药物的治疗效果将只剩下现在药品对康复的自然直接因果效应。因此,估计自然直接因果效应是很重要的。
在估计自然直接因果效应的时候,需要使病人维持服药前的阿司匹林服用量,这种限制并不是do算子可以描述的,而是在不干预阿司匹林用量的情况下,断开了服药和阿司匹林服用量之间的因果路径。
后文会介绍如何用一种标准的方法处理这种情况。
2.4 自然间接效应
自然直接效应的概念可以被泛化到自然间接效应,但是规定直接效应无法这样泛化,因为规定效应已经把中介路径阻断了,无法衡量间接效应。
- 在药物和阿司匹林的例子中,自然间接效应是指,在患者服药的情况下,阿司匹林服用量 从 服药前的量 变化到 服药后因为头痛加大后的量,治疗效果有什么变化?
3. 正式分析
3.1 符号
- X代表控制变量,即需要研究X对其他变量的因果效应。
- 一般用\(x^*\)表示干预之前的取值,\(x\)表示干预之后的取值。
- Y代表结果变量。
- Z代表X和Y之间所有中介变量组成的集合,也可能包含Y除X之外的父节点。
- 反事实符号\(Y_x(u)\)表示在\(do(X=x),U = u\)的情况下,Y的取值。
3.2 控制直接效应
【Definition 1】(Controlled unit-level direct-effect; qualitative 个体控制直接效应,存在性定义) 在因果模型M中,如果在U=u的情况下,存在一组模型中其他变量的取值Z=z和X的两个取值\(x,x^*\),使得
Y_{x^*z}(u)\not =Y_{xz}(u)
\end{align}
\]
则称\(X=x\)这个事件(以\(X=x^*\)为参考点)对Y有控制直接效应。
【Definition 2】(Controlled unit-level direct-effect; quantitative 个体控制直接效应,定量)给定一个因果模型M和一个因果图G,在U=u和Z=z的条件设置下,\(X=x\)对Y的因果效应为:
CDE_z(x,x^*;Y,u)=Y_{xz}(u)-Y_{x^*z}(u)
\end{align}
\]
其中Z代表在G中,除X外,Y的所有父节点。
【Definition 3】(Average contrilled direct effect,平均控制直接效应)给定一个概率因果模型\(<M, P(u)>\),\(X=x\)对Y的控制直接效应被定义为:
CDE_z(x,x^*;Y) = E_u(Y_{xz}-Y_{x^*z})
\end{align}
\]
3.3 自然直接效应:定义
正如第二部分已经分析过的,自然效应和控制效应最大的区别,就是没有给Z人为赋值,而是使Z保持干预之前的值,相当于删去X到Z的因果路径,但是不对Z的值做干预,这是do算子无法表达的。
【Definition 4】(Unit-level natural direct effect; qualitative 个体自然直接效应;存在性定义)在U=u的条件下,如果
Y_{x^*}(u)\not = Y_{x,Z_{x^*}(u)}(u)
\end{align}
\]
则称事件X=x对Y有自然直接效应。也就是说,\(X\)从\(x^*\)变成\(x\),同时保持\(Z\)还是\(X=x^*\)时的取值,如果此时Y的值发生了变化,则有自然直接效应。
【Definition 4.5】(unit-level natural direct effect; quantitative 个体自然直接效应;定量定义)在U=u的条件下,事件X=x对Y的自然直接效应大小为:
NDE(x,x^*;Y,u)=Y_{x,Z_{x^*}(u)}(u) - Y_{x^*}(u)
\end{align}
\]
【Definition 5】(Average natural direct effect,平均自然直接效应)事件X=x对Y的平均自然直接效应为:
NDE(x,x^*;Y) = E_u(Y_{x,Z_{x^*}}) - E_u(Y_{x^*})
\end{align}
\]
3.4 自然直接效应:识别
从观测数据中,无法直接估计自然直接效应,换句话说,自然直接效应无法被直接转化为统计量。
文中给出了识别自然直接效应所需的条件,还没看懂。。orzzzz
3.5 自然间接效应:定义
控制效应只有直接效应,没有间接效应。因此间接效应就只有自然间接效应。
【Definition 6】(Unit-level indirect effect; qualitative,个体间接效应,存在性定义)如果在U=u的条件下,
Y_{x^*}(u) \not = Y_{x^*, Z_x(u)}(u)
\end{align}
\]
则认为一个事件X=x对Y有间接效应。间接效应大小为:
NIE(x,x^*;Y,u) = Y_{x^*,Z_x(u)}(u) - Y_{x^*}(u)
\end{align}
\]
- \(X=x^*\)不变的条件下,\(Z\)从自然值变为\(Z_x(u)\),此时Y的值发生了改变,这种改变是X导致的Z的变化带来的。
【Definition 7】(Average indirect effect,平均间接效应)事件X=x对Y的平均间接效应为:
NIE(x,x^*;Y) = E_u(Y_{x^*},Z_x) - E_u(Y_{x^*})
\end{align}
\]
【Theorem 3】总的来讲,直接和间接效应遵循如下关系:
&T E\left(x, x^{*} ; Y\right)=N I E\left(x, x^{*} ; Y\right)-N D E\left(x^{*}, x ; Y\right) \\
&T E\left(x, x^{*} ; Y\right)=N D E\left(x, x^{*} ; Y\right)-N I E\left(x^{*}, x ; Y\right) \\
&T E\left(x, x^{*} ; Y\right)=N D E\left(x, x^{*} ; Y\right)+N I E\left(x, x^{*} ; Y\right)
\end{align}
\]
- (这个关系一定成立吗?)
3.6 自然间接效应:识别
容我过段时间来补上3.4和3.6两部分 TAT
3.7 General Path-specific Effects
(emmm这个标题没翻译出来)
例如我们要得到\(X\rightarrow Z\rightarrow W \rightarrow Y\)这条路径的因果效应,方法就是通过去除其他\(X\rightarrow Y\)的因果路径,如Figure 3(b)。

4. 结论
这篇文章提出了一种新的路径相关因果效应的定义,通过对路径进行操作,达到了do算子无法表达的效果,将直接效应和间接效应的定义范围扩展到了非线性模型。本文还给出了通过实验数据和非实验数据来识别直接和间接因果效应的条件。通过定义和计算直接和间接效应,可以回答传统方法无法回答的政策问题,为更好的决策提供理论工具支撑。
相关文章
[1] von Kügelgen J, Gresele L, Schölkopf B. Simpson's paradox in Covid-19 case fatality rates: a mediation analysis of age-related causal effects[J]. IEEE Transactions on Artificial Intelligence, 2021, 2(1): 18-27.
[2] Wei T, Feng F, Chen J, et al. Model-agnostic counterfactual reasoning for eliminating popularity bias in recommender system[C]//Proceedings of the 27th ACM SIGKDD Conference on Knowledge Discovery & Data Mining. 2021: 1791-1800.
[3] Wang W, Feng F, He X, et al. Clicks can be cheating: Counterfactual recommendation for mitigating clickbait issue[C]//Proceedings of the 44th International ACM SIGIR Conference on Research and Development in Information Retrieval. 2021: 1288-1297.
【因果推断经典论文】Direct and Indirect Effects - Judea Pearl的更多相关文章
- Direct and Indirect Effects
目录 概 主要内容 CDE NDE NIE TDE, TIE, PDE, PIE Judea Pearl. Direct and indirect effects. In Proceedings of ...
- 经典论文系列| 实例分割中的新范式-SOLO
前言: 这是实例分割中的一篇经典论文,以往的实例分割模型都比较复杂,这篇论文提出了一个简单且直接的实例分割模型,如何设计这种简单直接的模型且要达到一定的精度往往会存在一些困难,论文中有很多思路或思想值 ...
- PointCloud及其经典论文介绍
这篇博客会介绍点云的基本知识,重点介绍最近两年发表的部分经典论文,有什么建议欢迎留言! 点云基本介绍 点云是某个坐标系下的点的数据集,包含了丰富的信息,可以是三维坐标X,Y,Z.颜色.强度值.时间等等 ...
- 巨经典论文!推荐系统经典模型Wide & Deep
今天我们剖析的也是推荐领域的经典论文,叫做Wide & Deep Learning for Recommender Systems.它发表于2016年,作者是Google App Store的 ...
- Memory Networks01 记忆网络经典论文
目录 1.Memory Networks 框架 流程 损失函数 QA 问题 一些扩展 小结 2.End-To-End Memory Networks Single Layer 输入模块 算法流程 Mu ...
- 经典论文系列 | 目标检测--CornerNet & 又名 anchor boxes的缺陷
前言: 目标检测的预测框经过了滑动窗口.selective search.RPN.anchor based等一系列生成方法的发展,到18年开始,开始流行anchor free系列,CornerNe ...
- 经典论文系列 | 缩小Anchor-based和Anchor-free检测之间差距的方法:自适应训练样本选择
前言 本文介绍一篇CVPR2020的论文,它在paperswithcode上获得了16887星,谷歌学术上有261的引用次数. 论文主要介绍了目标检测现有的研究进展.anchor-based和 ...
- 青源Talk第8期|苗旺:因果推断,观察性研究和2021年诺贝尔经济学奖
biobank 英国的基金数据因果推断和不同的研究互相论证,而非一个研究得到的接了就行.数据融合,data fusion,同一个因果问题不同数据不同结论,以及历史上的数据,来共同得到更稳健.更高效的推 ...
- Fully Convolutional Networks for semantic Segmentation(深度学习经典论文翻译)
摘要 卷积网络在特征分层领域是非常强大的视觉模型.我们证明了经过端到端.像素到像素训练的卷积网络超过语义分割中最先进的技术.我们的核心观点是建立"全卷积"网络,输入任意尺寸,经过有 ...
随机推荐
- C#时间选择
<script type="text/javascript" src="http://www.shicishu.com/down/WdatePicker.js&qu ...
- 一条查询SQL查询语句的执行原理
先熟悉一下浅而易懂SQL执行的流程图SQL查询过程七步曲 1.查询SQL发送请求 客户端将查询sql按照mysql通信协议传输到服务端.服务端接受到请求后,服务端单起一个线程执行sql 2.判断是否为 ...
- gitlab之数据备份恢复
备份#备份的时候,先通知相关人员服务要听 ,停止两个服务,并影响访问 root@ubuntu:/opt/web1# gitlab-ctl stop unicorn ok: down: unicorn: ...
- linux查询健康状态,如何直观的判断你的Linux系统是否健康
一提到对于查看系统运行的健康状况,可能大多数朋友考虑到的就是查看进程或者打开任务管理器,但是对于应用在真实生产环境中服务器的linux系统来说,以上两种方式都不是***效的查看方式,那么今天就给大家推 ...
- 一、手把手教你docker搭建fastDFS文件上传下载服务器
在搭建fastDFS文件上传下载服务器之前,你需要准备的有一个可连接的linux服务器,并且该linux服务器上已经安装了docker,若还有没安装docker的,先百度自行安装docker. 1.执 ...
- SQL查询:并集、差集、交集
新建两个表进行测试: test_a ID name 1 曹操 2 郭嘉 3 孙权 4 周瑜 test_b ID name 1 刘备 2 关羽 3 张飞 4 孙权 5 周瑜 1.UNION形成并集 UN ...
- 1、Spring简介及IOC入门案例
一.Spring框架介绍 1.介绍 Spring框架是由于软件开发的复杂性而创建的.Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅仅限于服务 ...
- HashMap的putAll方法介绍说明
jdk1.8 使用putAll时,新map中的值仅为旧map值所对应对象的引用,并不会产生新对象. 如下,使用for循环赋值! public void putAll(Map<? extends ...
- 修复 Edge 浏览器 1Password 插件 Ctrl+Shift+X 弹出快捷键失效
解决方式 在 Edge 浏览器右上角 1Password插件图标上右键,选择设置: 在打开的 1Password 设置页面中,找到快捷键设置环节,默认使用快捷键打开后面为空,点击"在扩展也上 ...
- 去除指定….RemoveMatching…(Power Query 之 M 语言)
表去除指定行: =Table.RemoveMatchingRows( 表, 列表, "指定列") 表中指定列中与列表中相同的行会被去除 表只有一列时,第三参数可以缺省 示例1:&q ...