【Causality】do calculus原理

2023-10-30

这部分主要讲了causal discovery的do-calculus理论。这是将干预的结果概率化表达的重要理论,是评估因果作用的主要方法。欢迎大家一起学习

理论

1 有向图

相关图论知识请移步:

【Causality】因果图入门

2 do算子

通过因果之梯,我们知道,如果想要把对因果的理解上升到“干预”的层面,就必须引入“干预”。我们用do算子来在概率分布层面表述这种动作。在 D A G DAG DAG d o ( X i ) = x i ′ do(X_i)=x'_i do(Xi)=xi表示如下的操作:将 D A G DAG DAG中指向 x i x_i xi的有向边全部切断,且将 X i X_i Xi的取值固定为常数 x i ′ x'_i xi 。如此操作,得到的新 D A G DAG DAG的联合分布可以记做 P ( x 1 , x 2 , . . . , x n ∣ d o ( X i ) = x i ) P(x_1,x_2,...,x_n|do(X_i)=x_i) P(x1,x2,...,xndo(Xi)=xi) 。 可以证明,干预后的联合分布为
P ( x 1 , . . . , x n ∣ d o ( X i ) = x i ′ ) = P ( x 1 , . . . , x n ) P ( x i ∣ P a ( x i ) ) I ( x i = x i ′ ) P(x_1,...,x_n|do(X_i)=x'_i)=\frac{P(x_1,...,x_n)}{P(x_i|Pa(x_i))} I(x_i=x'_i) P(x1,...,xndo(Xi)=xi)=P(xiPa(xi))P(x1,...,xn)I(xi=xi)

3 do ≠ condition

如下图(1)所示,当 x 1 x_1 x1 x 2 x_2 x2的原因(父节点)时, P ( X 2 = x 2 ∣ X 1 = x 1 ) = P ( X 2 = x 2 ∣ d o ( X 1 ) = x 1 ) P(X_2=x_2|X_1=x_1)=P(X_2=x_2|do(X_1)=x_1) P(X2=x2X1=x1)=P(X2=x2do(X1)=x1),因为在干预前,原因的状态原本就对应着相应的结果状态,改变原因的值不会影响这种对应关系。

但如图(2)所示,当 x 1 x_1 x1 x 2 x_2 x2的结果(子节点),给定了结果,对应的原因状态的可能性是不变的,即人为的干预结果,并不影响原因的分布,所以$ P ( X 2 = x 2 ∣ X 1 = x 1 ) ≠ P ( X 2 = x 2 ∣ d o ( X 1 ) = x 1 ) = P ( X 2 = x 2 ) P(X_2=x_2|X_1=x_1)\ne P(X_2=x_2|do(X_1)=x_1)=P(X_2=x_2) P(X2=x2X1=x1)=P(X2=x2do(X1)=x1)=P(X2=x2),根据因果边假设(causal edge assumption),从图像上来看,指向X_1的所有边都被删除了。

在这里插入图片描述

4 后门准则与The Adjustment Formula (校正公式)

根据 do 算子,便可以定义因果作用。比如二值的变量 Z Z Z对于 Y Y Y的平均因果作用(average causal effect)定义为
A C E ( Z → Y ) = E { Y ∣ d o ( Z = 1 ) } − E { Y ∣ d o ( Z = 0 ) } ACE(Z \rightarrow Y)=E\left \{ Y|do(Z=1) \right \}-E\left \{ Y|do(Z=0) \right \} ACE(ZY)=E{Ydo(Z=1)}E{Ydo(Z=0)}
也就是激活 Z Z Z与不激活 Z Z Z之间的区别。

“可识别性” 这个概念将被频繁的使用。因果推断中的识别性,和传统统计中的识别性定义是一致的。统计中,如果两个不同的模型参数,对应不同的观测数据的分布,那么我们称模型的参数可以识别。这里,如果因果作用可以用观测数据的分布唯一的表示,那么我们称因果作用是可以识别的。

有关 D D D-分离的概念请看图论。

在这里插入图片描述

后门准则:如图(1),在 D A G DAG DAG中,如果如下条件满足:

  1. Z Z Z中节点不是 X X X的后代;
  2. Z Z Z阻断了 ( X , Y ) (X,Y) (X,Y)之间所有指向 X X X的路径(又称为后门路径),

则称变量集合 Z Z Z相对于变量有序对 ( X , Y ) (X,Y) (XY)满足后门准则。且Pearl(1995)证明,若存在一个变量集合 Z Z Z相对于 ( X , Y ) (X,Y) (X,Y)满足后门准则,那么 X X X Y Y Y的因果作用是可以识别的。进行干预后,我们会得到新的图称作manipulated model,见图(2),对应的概率记作 P m P_m Pm.

根据后门准则,有

  1. P m ( Z = z ) = P ( Z = z ) P_m(Z=z)=P(Z=z) Pm(Z=z)=P(Z=z)
  2. P m ( Y = y ∣ X = x , Z = z ) = P ( Y = y ∣ X = x , Z = z ) P_m(Y=y|X=x,Z=z)=P(Y=y|X=x,Z=z) Pm(Y=yX=x,Z=z)=P(Y=yX=x,Z=z)

因此,校正公式(又称作causal effect rule)得以满足,如下:
P ( Y = y ∣ d o ( X ) = x ) = ∑ z P ( Y = y , Z = z ∣ d o ( X = x ) ) = ∑ z P ( Y = y ∣ X = x , Z = z ) P ( Z = z ) = ∑ z P ( Y = y ∣ X = x , P a ( x ) = z ) P ( P a ( x ) = z ) \begin{aligned} P(Y=y|do(X)=x) & =\sum_{z}P(Y=y,Z=z|do(X=x)) \\ & = \sum_{z}P(Y=y|X=x,Z=z)P(Z=z)\\ & = \sum_{z}P(Y=y|X=x,Pa(x)=z)P(Pa(x)=z) \end{aligned} P(Y=ydo(X)=x)=zP(Y=y,Z=zdo(X=x))=zP(Y=yX=x,Z=z)P(Z=z)=zP(Y=yX=x,Pa(x)=z)P(Pa(x)=z)

A C E ACE ACE识别公式相同,用 Z Z Z做调整,在分层加权求和求期望。

后门准则的例子(转载)

https://zhuanlan.zhihu.com/p/395623955

后门准则失败的例子

5 前门准则与The Adjustment Formula (校正公式)

在这里插入图片描述

前门准则:如图(1),在 D A G DAG DAG中,如果满足下列条件:

  1. Z Z Z切断了所有 X X X Y Y Y的直接路径
  2. X X X Z Z Z没有后门路径
  3. 所有 Z Z Z Y Y Y的后门路径都被 X X X阻断。

如图, P ( Y = y ∣ X = x ) P(Y=y|X=x) P(Y=yX=x)可以分解为两个后门 P ( Y = y ∣ Z = z ) P(Y=y|Z=z) P(Y=yZ=z) P ( Z = z ∣ X = x ) P(Z=z|X=x) P(Z=zX=x)
对于 P ( Y = y ∣ Z = z ) P(Y=y|Z=z) P(Y=yZ=z),满足后门准则的变量有 { X } \left \{ X \right \} {X},所以根据后门准则,
P ( Y = y ∣ Z = z ) = ∑ x ′ P ( Y = y ∣ Z = z , X = x ′ ) P ( X = x ′ ) P(Y=y|Z=z)=\sum_{x'}P(Y=y|Z=z,X=x')P(X=x') P(Y=yZ=z)=xP(Y=yZ=z,X=x)P(X=x)
对于 P ( Z = z ∣ X = x ) P(Z=z|X=x) P(Z=zX=x),没有满足后门准则的变量,因此不变。则有
P ( Y = y ∣ d o ( X ) = x ) = ∑ z P ( Y = y , Z = z ∣ d o ( X = x ) ) = ∑ z P ( Y = y ∣ Z = z , d o ( X ) = x ) P ( Z = z ∣ d o ( X ) = x ) = ∑ z P ( Y = y ∣ d o ( Z = z ) ) P ( Z = z ∣ d o ( X ) = x ) = ∑ z ∑ x ′ P ( Y = y ∣ Z = z , X = x ′ ) P ( X = x ′ ) P ( Z = z ∣ X = x ) \begin{aligned} P(Y=y|do(X)=x) & =\sum_{z}P(Y=y,Z=z|do(X=x)) \\ & = \sum_{z}P(Y=y|Z=z,do(X)=x)P(Z=z|do(X)=x)\\ & = \sum_{z}P(Y=y|do(Z=z))P(Z=z|do(X)=x)\\ & = \sum_{z}\sum_{x'}P(Y=y|Z=z,X=x')P(X=x')P(Z=z|X=x) \end{aligned} P(Y=ydo(X)=x)=zP(Y=y,Z=zdo(X=x))=zP(Y=yZ=z,do(X)=x)P(Z=zdo(X)=x)=zP(Y=ydo(Z=z))P(Z=zdo(X)=x)=zxP(Y=yZ=z,X=x)P(X=x)P(Z=zX=x)
进而得到前门准则的校正公式为
P ( y ∣ d o ( x ) ) = ∑ z P ( z ∣ x ) ∑ x ′ P ( y ∣ x ′ , z ) P ( x ′ ) P(y|do(x))=\sum_{z}P(z|x)\sum_{x'}P(y|x',z)P(x') P(ydo(x))=zP(zx)xP(yx,z)P(x)
这两个准则的意义在于:(1)某些研究中,即使 D A G DAG DAG中的某些变量不可观测,我们依然可以从观测数据中估计出某些因果作用;(2)这两个准则有助于我们鉴别“混杂变量” 和设计观察性研究。

6 do calculus

6.1 基本术语

  1. G X ‾ G_{\overline{X} } GX:移除 G G G中所有指向 X X X的边,即 X X X没有parent,也表示do(x)为空集;
  2. G X ‾ G_{\underline{X} } GX:移除 G G G中所有从 X X X指出的边,即 X X X没有;descendant
  3. G Z ( W ) ‾ G_{\overline{Z(W)} } GZ(W):移除 Z Z Z指向 W W W的所有边,即 Z Z Z中没有 W W W的parent。
  4. A ⊥ B ∣ C A\perp B|C ABC指已知C的情况下A条件独立于B。

6.2 三条规则

  1. Ignoring observations(d-separation):如果 G X ‾ G_{\overline{X} } GX Y ⊥ Z ∣ X , W Y\perp Z|X,W YZX,W
    P ( y ∣ d o ( x ) , z , w ) = P ( y ∣ d o ( x ) , w ) P(y|do(x),z,w)=P(y|do(x),w) P(ydo(x),z,w)=P(ydo(x),w)
  2. Intervention/observation exchange(后门调整):如果 G X ‾ , Z ‾ G_{\overline{X},\underline{Z} } GX,Z Y ⊥ Z ∣ X , W Y\perp Z|X,W YZX,W
    P ( y ∣ d o ( x ) , d o ( z ) , w ) = P ( y ∣ d o ( x ) , z , w ) P(y|do(x),do(z),w)=P(y|do(x),z,w) P(ydo(x),do(z),w)=P(ydo(x),z,w)
  3. Ignoring interventions:如果 G X , Z ( W ) ‾ G_{\overline{X,Z(W)}} GX,Z(W) Y ⊥ Z ∣ X , W Y\perp Z|X,W YZX,W,即 Y Y Y Z Z Z W W W D D D-separation。
    P ( y ∣ d o ( x ) , d o ( z ) , w ) = P ( y ∣ d o ( x ) , w ) P(y|do(x),do(z),w)=P(y|do(x),w) P(ydo(x),do(z),w)=P(ydo(x),w)

6.3 例子:计算 P ( c ∣ d o ( s ) ) P(c|do(s)) P(cdo(s))

在这里插入图片描述
P ( c ∣ d o ( s ) ) = ∑ t P ( c , t ∣ d o ( s ) ) = ∑ t P ( c ∣ t , d o ( s ) ) P ( t ∣ d o ( s ) ) = ∑ t P ( c ∣ d o ( t ) , d o ( s ) ) P ( t ∣ s ) = ∑ t P ( c ∣ d o ( t ) ) P ( t ∣ s ) = ∑ t ∑ s ′ P ( c ∣ d o ( t ) , s ′ ) P ( s ′ ∣ d o ( t ) ) P ( t ∣ s ) = ∑ t ∑ s ′ P ( c ∣ t , s ′ ) P ( s ′ ∣ d o ( t ) ) P ( t ∣ s ) = ∑ t ∑ s ′ P ( c ∣ t , s ′ ) P ( s ′ ) P ( t ∣ s ) 1 行 . 边缘分布公式 2 行 . 因子分解 3 , 4 行 . d o ( s ) = 空集,所以 d o ( s ) = s 5 行 . t 和 c 后门被 S 阻断,因为 T ← S ← G → C ,根据后门修正公式 6 行 . t 是 c 的原因,改变 t 不会影响 c 对应的分布,还是原本的条件分布 7 行 . t 是 s 的结果,人为干预结果不会影响原因的分布,因此 d o ( t ) 与 s 无关 \begin{matrix} \begin{aligned} P(c|do(s)) & =\sum_{t}P(c, t|do(s)) \\ & = \sum_{t}P(c|t,do(s))P(t|do(s))\\ & = \sum_{t}P(c|do(t),do(s))P(t|s)\\ & = \sum_{t}P(c|do(t))P(t|s)\\ & = \sum_{t}\sum_{s'}P(c|do(t),s')P(s'|do(t))P(t|s)\\ & = \sum_{t}\sum_{s'}P(c|t,s')P(s'|do(t))P(t|s)\\ & = \sum_{t}\sum_{s'}P(c|t,s')P(s')P(t|s) \end{aligned} & \begin{aligned} & 1行.边缘分布公式 \\ & 2行.因子分解\\ & 3,4行.do(s)=空集,所以do(s)=s\\ & 5行.t和c后门被S阻断,因为T \leftarrow S \leftarrow G \rightarrow C,根据后门修正公式\\ & 6行.t是c的原因,改变t不会影响c对应的分布,还是原本的条件分布\\ & 7行.t是s的结果,人为干预结果不会影响原因的分布,因此do(t)与s无关 \end{aligned} \end{matrix} P(cdo(s))=tP(c,tdo(s))=tP(ct,do(s))P(tdo(s))=tP(cdo(t),do(s))P(ts)=tP(cdo(t))P(ts)=tsP(cdo(t),s)P(sdo(t))P(ts)=tsP(ct,s)P(sdo(t))P(ts)=tsP(ct,s)P(s)P(ts)1.边缘分布公式2.因子分解34.do(s)=空集,所以do(s)=s5.tc后门被S阻断,因为TSGC,根据后门修正公式6.tc的原因,改变t不会影响c对应的分布,还是原本的条件分布7.ts的结果,人为干预结果不会影响原因的分布,因此do(t)s无关

下期预告

接下来会用代码实现do-calculus的计算,大概就这两天。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Causality】do calculus原理 的相关文章

  • linux系统下安装搜狗输入法(小白)

    第一次尝试使用linux系统 开头就被输入法困住了 记录一下安装搜狗输入法的过程 参考博客 http t csdn cn eGtX1 http t csdn cn oiV3Y 打开终端 首先要安装依赖 sudo yum install ep
  • TortoiseGit安装中文语言包无法切换语言

    TortoiseGit安装中文语言包切换不了中文 网上有很多解决方案思路 1 检查TortoiseGit版本要和语言包版本一致或语言包版本要高于TortoiseGit版本 2 查看语言包版本就莫名其妙的好了 3 主要原因是TortoiseG
  • 【你不知道的JavaScript】(01)基础+数组+字符串+数字

    本文章仅针对我自己在看书过程中对一些不太清楚的知识点进行查漏补缺 你不知道的JavaScript 中卷 第一部分类型和语法中的 第一章 第二章 JavaScript基础 JavaScript是什么类型的语言 动态类型语言 在运行期进行类型检
  • 计算机二级c语言程序题怎么评分,计算机二级编程题怎么给分

    二级考试的程序设计题没有步骤分 只有零分和满分 考计算机二级的编程题可以用c语言的编译器运行 考试一般是VC 6 0编译器运行 计算机二级成绩评定流程 1 成绩评定流程如下 各级上机考试的成绩由考生交卷后由计算机直接评分给出 机器阅卷 并由
  • JDBC-MySql基础

    JDBC MySql 概述 使用步骤 mysql为例 导入驱动jar包 注册驱动 获取数据库连接对象Connection 执行sql语句 PreparedStatement和Statement的区别 处理结果 释放资源 JDBC工具类 概述

随机推荐

  • Linux的常见指令

    目录 pwd命令 ls 指令 mkdir指令 touch指令 cd 指令 rmdir指令 rm 指令 man指令 nano cp指令 mv指令 cat指令 more指令 less指令 head指令 tail指令 grep指令 热键 zip
  • 【WEB】[极客大挑战2019]EasySQL WP

    0X0000000000000001 审题 其实由题目可以知道这是道SQL注入 然后看到登录 首先尝试万能密码 admin or 1 1 红色部分为切入点 其他随意 这道题的username随便 如名字所说 这是一道很ez的SQL注入
  • MATLAB实现Newton Cotes求积

    clear syms t x f x input 请输入函数f x a input 请输入区间下限 b input 请输入区间上限 n input 请输入n 即将区间几等分 h b a n for i 1 n 1 将区间n等分后 计算各节点
  • 【第 46 天】给定 q 个询问查询任意子数组的和

    本文已收录于专栏 Java入门一百练 学习指引 序 专栏前言 一 前缀和 二 例题1 1 题目描述 2 解题思路 3 模板代码 4 代码解析 三 例题2 1 题目描述 2 解题思路 3 模板代码 4 代码解析 四 例题3 1 题目描述 2
  • Xilinx FIFO RST复位

    记录在使用Xilinx的FIFO Generate的时候遇到的问题 modelsim仿真和ILA都能遇到 full empty 等信号一直keep high 直接原因 以下内容说的都是Asynchronous Reset 在手册pg057
  • storm使用(二)–使用java操作storm

    storm使用 二 使用java操作storm 文章目录 storm使用 二 使用java操作storm 一 简介 二 storm特点 2 1 元组可靠性保证 2 2 容错性 2 3 可与任何语言使用 三 storm基础接口 3 1 org
  • MQTT协议-MQTT协议解析(MQTT数据包结构)

    MQTT 目前物联网的最主要的协议之一 基本上所有的IOT云平台都使用了MQTT 比如机智云 中国移动的oneNet 百度的云平台 阿里物联网云平台 虽然MQTT很火 但是目前对MQTT的资料确实很少 尤其是在如何移植到嵌入式上来 大部分的
  • 使用chatgpt生成快速入眠笔记

    以下是使用chatgpt生成快速入眠笔记的简单过程 可以发现 增加详细两个字 可以让它表述的更明白 通过询问 还有其他方法吗 获取更多可能性 当然你也可以直接说继续 但实测继续有时候不会记住上一条提问 详细讲解一下程序员怎么快速入眠 程序员
  • 6开机白苹果一闪一灭_苹果6s开机一直显示白苹果,过会就直接黑屏,重复一直这样...

    展开全部 苹果6s开机一直显示白苹果过会就直接黑屏的原因是 1 在32313133353236313431303231363533e78988e69d8331333365643661为苹果手机更新升级时出现意外情况 2 是一些越狱的手机会遇
  • Unity实战篇:使用图片制作自己的艺术字

    本篇博客我将和大家一起从零开始根据图片制作自己的艺术字 不包括汉字 准备工作 BMFront http www angelcode com products bmfont 编写艺术字体生成工具 Author 烟雨迷离半世殇 Mail 177
  • linux查看 rsync 服务状态

    root rsync server 1 lsof i tcp 873 COMMAND PID USER FD TYPE DEVICE SIZE OFF NODE NAME rsync 10309 root 4u IPv4 94045 0t0
  • RT-Thread中AT组件连接ESP8266 模块

    应用 AT 组件连接 ESP8266 模块 本文介绍 智龙开发板 应用AT组件 连接 esp8266 模块 从而连接无线网络 参考官网 应用 AT 组件连接 ESP8266 模块 1 首先去除 lwip 2 连接硬件模块 连接到智龙开发板的
  • 梯度下降(BGD)、随机梯度下降(SGD)、Mini-batch Gradient Descent、带Mini-batch的SGD

    一 回归函数及目标函数 以均方误差作为目标函数 损失函数 目的是使其值最小化 用于优化上式 二 优化方式 Gradient Descent 1 最速梯度下降法 也叫批量梯度下降法Batch Gradient Descent BSD a 对目
  • 为什么mydock会经常崩溃_MyDock

    MyDock官方版 MyDock官方版是款针对电脑桌面打造的图标管理工具 MyDock桌面工具条采用的是滑动的方式启动图标 其图标采用的是原型设计的概念设计的 MyDock可以直接在win系统桌面上生成第二个启动图标 让您在运行电脑桌面工具
  • java调用其他类的方法_从本类调用另一个类的方法

    这里我有三种 1 直接new 出另一个类的实例 通过实例来调用方法 2 使用static修饰 通过类名 方法 前两种我就省略了 3 在本类返回一个返回类型为对象的方法 这里以设置私有化属性 生成set和get方法 举例 本类 调用B类的s
  • JedisConnectionException: java.net.SocketTimeoutException: connect timed out

    使用Eclipse或IDEA连接虚拟机中的redis报错 Exception in thread main redis clients jedis exceptions JedisConnectionException java net S
  • SmartFusion从FPGA到ARM(七)——MSS_UART的使用

    文章目录 1 MSS串口资源简介 2 库函数简介 3 串口printf函数的实现 3 串口使用 系列教程 SmartFusion从FPGA到ARM系列教程 1 MSS串口资源简介 SmartFusion2系列片上MCU有两个串口 串口0和串
  • jdbc线程池

    目录 1 基本介绍 2 连接池类 2 1 C3P0 2 2 DBCP 2 3 Druid 1 基本介绍 2 连接池类 2 1 C3P0 2 2 DBCP 2 3 Druid
  • 【Spring】Spring 网络原因导致日志下载失败

    1 概述 我的Spring boot项目有个功能是下载Flink 的yarn日志 大概代码是读取本地文件 代码如下 package com xb servlet import javax servlet ServletException i
  • 【Causality】do calculus原理

    这部分主要讲了causal discovery的do calculus理论 这是将干预的结果概率化表达的重要理论 是评估因果作用的主要方法 欢迎大家一起学习 Do Calculus 理论 1 有向图 2 do算子 3 do conditio