反事实因果(Counterfactual)简介

2023-11-15

Counterfactual 简介

确定的反事实

反事实是什么?用了例子说明,比如你去了二仙桥,走的是成华大道,但是用了很久才到,于是你就想要是当初坐地铁就好了。你会发现,“要是坐地铁就好了”这个推断只有在发生了“走成华大道用了很久”这个事实下才成立的。什么意思呢,就是一般情况下走成华大道跟地铁是差不多的,但是当天路上发生了一个事故耽误了很久,在已知事实下,你才能推断出坐地铁更好的结论,否则这个结论是不成立的。显然,我们常用的average treatment effect都无法表达这一类推断,因此,我们必须设计新的语言来描述他。在此之前可以先看上面这个例子怎么用数学来求解:

x = 1 \displaystyle x=1 x=1表示走成华大道,用 x = 0 \displaystyle x=0 x=0表示坐地铁,用 z = 1 \displaystyle z=1 z=1表示堵车,一个结构方程模型(SCM)写作如下:
z = U z y = x ( z + U y ) + ( 1 − x ) U y z=U_{z}\\ y=x( z+U_{y}) +( 1-x) U_{y} z=Uzy=x(z+Uy)+(1x)Uy

其中 U z , U y \displaystyle U_{z} ,U_{y} Uz,Uy是噪声,这些噪声决定了当天的状态,于是,因为你走的成华大道 x = 1 \displaystyle x=1 x=1,用了2小时,因为你知道,只有堵车才会用2小时,所以一定发生了堵车,因此 z = 1 \displaystyle z=1 z=1,然后你可以反推出, U z = 1 , U y = 1 \displaystyle U_{z} =1,U_{y} =1 Uz=1,Uy=1,那么如果当初你坐地铁 x = 0 \displaystyle x=0 x=0,你需要的时间就是 y = 0 + U y = 1 \displaystyle y=0+U_{y} =1 y=0+Uy=1这就是反事实。

所以推断这种确定的反事实的一个基本套路就是,用观测到的事实,反推出当时的噪声U,然后修改其中的变量,得到SCM计算的结果就是反事实。

不确定的反事实

刚才给出了一个确定的反事实推理,但是有时候反事实是不能确定的。比如这个世界有两类人,一种是永远快乐的人,一种是有猫才快乐的人。现在你给了一个人一只猫,然后那个人很快乐,那你是没有办法区分这个人到底是哪种人的,你只能通过这两类人群的概率来猜测这个人到底是什么人,然后通过这个概率来预测出,如果你不给这个人一只猫,他到底会不会快乐。

形式化地来讲, T = 1 \displaystyle T=1 T=1表示给猫, T = 0 \displaystyle T=0 T=0表示没给,Y服从以下过程:

Y = { 1 U = always happy T U = cat-needer Y=\begin{cases} 1 & U=\text{always happy}\\ T & U=\text{cat-needer} \end{cases} Y={1TU=always happyU=cat-needer

如果我们观测到事实, T = 1 , Y = 1 \displaystyle T=1,Y=1 T=1,Y=1,那么我们没办法反推出U,但可以肯定的是,这个U只可能是 a l w a y s   h a p p y \displaystyle always\ happy always happy c a t − n e e d e r \displaystyle cat-needer catneeder,于是根据这两人群的概率 p ( U = c a t − n e e d e r ) = 0.6 , p ( U = a l w a y s   h a p p y ) = 0.4 \displaystyle p( U=cat-needer) =0.6,p( U=always\ happy) =0.4 p(U=catneeder)=0.6,p(U=always happy)=0.4,我们可以推断,如果不给猫 T = 0 \displaystyle T=0 T=0那么, P ( Y u ( 0 ) = 1 ) = 0.4 \displaystyle P( Y_{u}( 0) =1) =0.4 P(Yu(0)=1)=0.4.

反事实计算框架

从上述的例子可以看出,反事实是需要依赖于SCM才能实现的,所谓SCM就是, v i = f i ( p a i , u i ) \displaystyle v_{i} =f_{i}( pa_{i} ,u_{i}) vi=fi(pai,ui)的方程, p a i \displaystyle pa_{i} pai v i \displaystyle v_{i} vi的父亲, u i \displaystyle u_{i} ui v i \displaystyle v_{i} vi的噪声,用 M = < U , V , F > \displaystyle M=< U,V,F > M=<U,V,F>表示这个集合,为了表达,干预操作 d o ( X = x ) \displaystyle do( X=x) do(X=x),我们可以将x对应的 f x = x \displaystyle f_{x} =x fx=x强行等于某个值,于是令 F \displaystyle F F变成 F x \displaystyle F_{x} Fx,从而得到子模型, M = < U , V , F x > \displaystyle M=< U,V,F_{x} > M=<U,V,Fx>

对于每个 v i \displaystyle v_{i} vi,我们都可以用外生变量U表示,于是

p ( y ) ≜ p ( Y = y ) = ∑ { u ∣ Y ( u ) = y } P ( u ) p( y) \triangleq p( Y=y) =\sum _{\{u|Y( u) =y\}} P( u) p(y)p(Y=y)={uY(u)=y}P(u)

这个意味着,所有能够使得 Y = y \displaystyle Y=y Y=y U \displaystyle U U的总的概率就是 Y = y \displaystyle Y=y Y=y的概率。利用这个等式,我们可以计算,所有经过 d o ( x ) \displaystyle do( x) do(x)之后, Y x = y \displaystyle Y_{x} =y Yx=y的概率:

p ( Y x = y ) = ∑ { u ∣ Y x ( u ) = y } P ( u ) p( Y_{x} =y) =\sum _{\{u|Y_{x}( u) =y\}} P( u) p(Yx=y)={uYx(u)=y}P(u)

基于此,我们就能写出任意反事实模型的推导,如 p ( Y x = y , X = x ′ ) \displaystyle p( Y_{x} =y,X=x') p(Yx=y,X=x)你会发现这个 X = x ′ \displaystyle X=x' X=x Y x \displaystyle Y_{x} Yx是冲突的,但这仍然是可算的:

p ( Y x = y , X = x ′ ) = ∑ { u ∣ Y x ( u ) = y   &   X ( u ) = x ′ } P ( u ) p( Y_{x} =y,X=x') =\sum _{\{u|Y_{x}( u) =y\ \&\ X( u) =x'\}} P( u) p(Yx=y,X=x)={uYx(u)=y & X(u)=x}P(u)

这意味着,我们需要先筛选出所有使得 X ( u ) = x ′ \displaystyle X( u) =x' X(u)=x发生的 u \displaystyle u u(根据事实反推U),然后再穷举所有 u \displaystyle u u,并计算 Y x ( u ) = y \displaystyle Y_{x}( u) =y Yx(u)=y的概率(根据U的分布,猜测干预x的结果).

显然,计算多个不同干预的结果也是可行的:

p ( Y x = y , Y x ′ = y ′ ) = ∑ { u ∣ Y x ( u ) = y   &   Y x ′ ( u ) = y ′ } P ( u ) p( Y_{x} =y,Y_{x'} =y') =\sum _{\{u|Y_{x}( u) =y\ \&\ Y_{x'}( u) =y'\}} P( u) p(Yx=y,Yx=y)={uYx(u)=y & Yx(u)=y}P(u)

参考资料

到二仙桥走成华大道完整版

Pearl, Judea. Causality. Cambridge university press, 2009. 第七章

《因果推理导论》课程(2020) by Brady Neal

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

反事实因果(Counterfactual)简介 的相关文章

随机推荐

  • 一、创建型模式:工厂方法模式(Factory Method)

    请MM去麦当劳吃汉堡 不同的MM有不同的口味 要每个都记住是一件烦人的事情 我一般采用Factory Method模式 带着MM到服务员那儿 说 要一个汉堡 具体要什么样的汉堡呢 让MM直接跟服务员说就行了 定义 核心工厂类不再负责所有产品
  • MySQL-多表关联

    多表关联 多张数据表之间是可以有一定的关联关系 这种关联关系可以通过外键约束实现 多表的分类 一对一 一对多 多对多 一对一 一张表对应另一张表 适用场景 人和身份证 一个人只能有一个身份证 一个身份证只能对应一个人 建表原则 在任意一个表
  • python爬虫实战练手——————淘宝网站的爬取

    python爬虫是很好的数据分析手段 可以进行爬虫程序来进行爬取网站 下面是淘宝的爬取 淘宝搜索书包 然后得到以下的界面 注意到下面的分页 可以通过进行分页的改变来进行多页数据的爬取 爬取多页 这里用到了和重要的re库 也就是正则表达式库
  • Windows10下Linux子系统Ubuntu使用教程(8)——升级WSL2,及解决遇到的问题

    WSL 2 是 WSL 中体系结构的新版本 它更改 Linux 发行版与 Windows 交互的方式 WSL 2 的主要目标是提高文件系统性能并增加系统调用的完全兼容性 每个 Linux 发行版都可以作为 WSL 1 或 WSL 2 发行版
  • vue 获取服务端base64位图片之后的处理

    目录 Base64是什么 Base64可以在Url中传输吗 Base64是加密算法么 Base64的应用场景有哪些 Base64的优点 Base64的缺点 关于vue中img无法展示base64位图片的原因分析 Base64是什么 Base
  • CSS-选择器的基本用法

    目录 一 CSS的分类 1 行内样式 2 内部样式 3 外部样式 二 选择器是什么 三 选择器具体种类 1 类选择器 2 标签选择器 3 ID选择器 4 通配符选择器 一 CSS的分类 1 行内样式 通过 style 属性 来指定某个标签的
  • Java实现Token的生成与验证

    二 基于JWT的token认证实现 JWT JSON Web Token 其实token就是一段字符串 由三部分组成 Header Payload Signature 1 引入依赖
  • 爬虫之简单js逆向

    本次js逆向没有存在代码混淆 所以还是比较简单的 重要的就是js逆向的思路 目标网站https notice qb com detail noticeId 215让我们开始吧 进入网站后按F12 查看DOC中的 可以看出该网页一部分内容是异
  • vue3解读—reactivity响应式实现

    前言 Vue3 中引入了proxy进行数据劫持 而effect是响应式系统的核心 而响应式系统又是 vue3 中的核心 所以vue3的解读要从 effect 开始讲起 1 reactivity和effect的使用 目前vue3的各个模块都可
  • 蓝桥杯:基础练习 特殊的数字(java实现)

    问题描述 153是一个非常特殊的数 它等于它的每位数字的立方和 即153 111 555 333 编程求所有满足这种条件的三位十进制数 输出格式 按从小到大的顺序输出满足条件的三位十进制数 每个数占一行 public class Main
  • 2014阿里巴巴9月14北京校园招聘笔试及参考答案

    form http blog csdn net lingfengtengfei article details 12344511 from http blog csdn net lingfengtengfei article details
  • java实现根据pdf文件模板生成pdf文件

    一 如何制作pdf模板 1 首先创建template doc 2 根据doc文件制作pdf模板 3 将doc文件输出为pdf 文件 gt 输出为pdf 4 输出的pdf文件 5 使用Adobe Acrobat DC打开template pd
  • HTML+CSS炫酷效果(小伙伴赶紧收藏起来吧)

    制作不易 点赞加关注哦 目录 1 实现奥运徽效果 2 实现3D效果 3 翻开葵花宝典 4 实现漂浮文字 动图 5 手机充电特效 动态 6 滚动时针 7 立体相册 1 实现奥运徽效果 由于图片违规 就不给老铁发了哈 亲自试试呗 HTML如下
  • 对 Electron 架构的理解

    Electron 的架构可以分为三层 Chromium Node js 和应用程序层 Electron 是一种基于 Chromium 和 Node js 的开源框架 可以用于快速构建跨平台的桌面应用程序 Chromium 层 Chromiu
  • 【并发编程】CPU cache结构和缓存一致性(MESI协议)

    一 cache cpu cache已经发展到了三级缓存结构 基本上现在买的个人电脑都是L3结构 1 cache的意义 为什么需要CPU cache 因为CPU的频率太快了 快到主存跟不上 这样在处理器时钟周期内 CPU常常需要等待主存 浪费
  • Klarf 文件可视化工具

    1 技术框架 1 1 前端 Vue3 网页版 Electron Quasar 可生成 EXE APK 等客户端 Element Plus 控件 axios 跨域 1 2 后端 Flask 提供接口 2 Web 版和客户端版 2 1 Web
  • android:configchanges 作用,关于android:configChanges的属性的简介

    在Android系统默认的情况下 当 屏幕方向 或 键盘显示隐藏 变化时都会销毁当前Activity 创建新的Activity 如果不希望重新创建Activity实例 可以在AndroidManifest xml中配置 android co
  • 基于Docker做MySQL主从搭建与Django的读写分离

    目录 基于Docker做MySQL主从搭建 django读写分离 基于Docker做MySQL主从搭建 主从的作用 写数据数据时使用主库 从库只用来读数据 这样做能够减少数据库压力 主从搭建可以一主一从 也可以是一主多从 mysql主从配置
  • 微信小程序、微信公众号、H5之间相互跳转

    转自慕课网 一 小程序和公众号 答案是 可以相互关联 在微信公众号里可以添加小程序 图片有点小 我把文字打出来吧 可关联已有的小程序或快速创建小程序 已关联的小程序可被使用在自定义菜单和模版消息等场景中 公众号可关联同主体的10个小程序及不
  • 反事实因果(Counterfactual)简介

    Counterfactual 简介 确定的反事实 反事实是什么 用了例子说明 比如你去了二仙桥 走的是成华大道 但是用了很久才到 于是你就想要是当初坐地铁就好了 你会发现 要是坐地铁就好了 这个推断只有在发生了 走成华大道用了很久 这个事实