因果推理简介(causal inference)

article/2025/8/22 17:09:26

结构因果模型SCM

在这里插入图片描述
  结构因果模型(SCM)由内生变量 V V V、外生变量 U U U和映射函数 F F F构成。因果的定义:若 Y Y Y f X f_X fX 的定义域中,则 Y Y Y X X X的直接原因 ;如果 Y Y Y X X X的直接原因,或者是直接原因的原因,则 Y Y Y X X X的原因。
   U U U中的变量称为外生变量,它们属于模型的外部,不必解释它们变化的原因。 V V V中的变量称为内生变量,模型中每一个内生变量都至少是一个外生变量的后代。外生变量没有祖先节点,不是内生变量的后代。

因果图的三种结构

在这里插入图片描述

链式结构

  1. 相关性: 链式结构中,信息从 X X X经过 Y Y Y流向 Z Z Z,所以 X X X Z Z Z是相关的
  2. 链式结构中的条件独立性: 如果变量 X X X和变量 Z Z Z之间只有一条单向路径, Y Y Y是截断这条路径的任何一组变量,则在 Y = y Y=y Y=y的条件下, X X X Z Z Z是独立的
  3. 例:火灾 → \rightarrow 烟雾 → \rightarrow 烟雾警报,在统计的数据中查看“烟雾=1”的数据会发现,无论是否有火灾,一定会响警报,与火灾的值为0或者1无关,以中介为条件的情况下,火灾和烟雾警报独立

叉式结构

  1. 相关性: 叉式结构中,信息从 X X X流向 Y Y Y Z Z Z,所以 Y Y Y Z Z Z是相关的
  2. 叉式结构中的条件独立性: 如果变量 X X X是变量 Y Y Y Z Z Z的共因,并且变量 Y Y Y Z Z Z之间只有一条单向路径,则 Y Y Y Z Z Z X = x X=x X=x的条件下是独立的
  3. 例:鞋子尺码 ← \leftarrow 年龄 → \rightarrow 阅读能力,小孩年龄大,一般鞋码长,阅读能力也更强,但是只看统计数据中“年龄=8岁”小孩的记录会发现,鞋子尺码和其阅读能力间是没有关系的

对撞结构

  1. 相关性: 对撞结构中,变量 X X X Y Y Y都影响 Z Z Z,但是信息没有从 Z Z Z流向 X X X或者 Y Y Y,所以 X X X Y Y Y是独立的(假设没有其他的边)
  2. 对撞结构中的条件独立性: Z Z Z X X X Y Y Y的对撞节点,且 X X X Y Y Y间只有一条路径,则 X X X Y Y Y是无条件独立的,若以 Z Z Z或者 Z Z Z的子孙节点为条件会让 X X X Y Y Y产生关联(以对撞节点为条件会使得该节点的父节点互相依赖)
  3. 例:绩点 → \rightarrow 奖学金 ← \leftarrow 活动分,查看获得奖学金的这些人,如果学习成绩不好,那么他们一定参加了很多活动才评上奖学金,参加活动和学习成绩产生了关联

d d d-分离

定义: 一条路径会被以一组节点 Z Z Z时阻断,当且仅当:

  1. 路径 p p p包含链结构 A → B → C A \rightarrow B \rightarrow C ABC或者分叉结构 A ← B → C A \leftarrow B \rightarrow C ABC,且中间节点 B B B Z Z Z中(也就是以 B B B为条件),或者
  2. 路径 p p p包含一个对撞结构 A → B ← C A \rightarrow B \leftarrow C ABC,且对撞节点 B B B及其子孙节点都不在 Z Z Z
    在这里插入图片描述
    例如,在条件集为空集时, Z Z Z X X X d d d-分离的(条件独立);在条件集为 X {X} X时, W W W Y Y Y d d d-分离的(条件独立)。

干预运算( d o do do-calculus)

  完全的随机对照试验可以解决很多问题,但是有的问题不适合用随机对照试验来解决,可以对变量进行干预,提取因果关系。需要区别的是,对一个变量进行干预和以该变量为条件是不一样的。当要干预图模型中的一个变量时,需要固定这个变量的值,也就是改变了系统,其他变量的值通常会因此发生变化。例如,可以发现干预冰淇淋销量,发现不会影响犯罪的数目,冰淇淋销量和犯罪率没有因果关系。干预是否接种疫苗,发现接种后,患病率下降了,二者存在因果关系。但是以一个变量为条件,不会做任何改变,只是在取统计数据时关注这个条件下的某个子集。“以变量为条件,改变的是我们对世界的看法,而不是世界本身”。
在这里插入图片描述
  上图显示了冰淇淋销量例子的图模型, X X X表示冰淇淋销量, Y Y Y表示犯罪率, Z Z Z表示温度。例如进行干预,降低冰淇淋销量,在图模型中干预 X X X表示把指向 X X X的所有边移除(如下图),然后对 X X X进行赋值。 X X X的值由干预时的赋值决定,与父节点无关,但是这个赋值操作会影响 X X X的子节点。在干预后的图模型中可以发现, X X X Y Y Y完全独立,二者不相关,没有因果关系。
在这里插入图片描述
  在符号上,使用 d o do do运算来表示干预操作,变量 X X X在干预情况下被赋值为 x x x表示为 d o ( X = x ) do(X=x) do(X=x)。在 X = x X=x X=x的条件下 Y = y Y=y Y=y的概率为 P ( Y = y ∣ X = x ) P(Y=y|X=x) P(Y=yX=x),通过干预使得 X = x X=x X=x的概率为 P ( Y = y ∣ d o ( X = x ) ) P(Y=y|do(X=x)) P(Y=ydo(X=x)) P ( Y = y ∣ X = x ) P(Y=y|X=x) P(Y=yX=x)表示在数据中观察, X = x X=x X=x的这些个体组成的群体的 Y Y Y的分布; P ( Y = y ∣ d o ( X = x ) ) P(Y=y|do(X=x)) P(Y=ydo(X=x))表示的是如果所有个体都把 X X X的值固定为 X = x X=x X=x时,总体中 Y Y Y的分布。

平均因果效应ACE

  平均因果效应ACE可以用来衡量某个操作带来的效果,例如为了确定药物的有效性,假设干预操作是让整个人群都服药或者不服药,然后比较两种干预下的健康数值。用 d o ( X = 1 ) do(X=1) do(X=1)表示让所有人服药,用 d o ( X = 0 ) do(X=0) do(X=0)表示让所有人不服药,二者的差异为平均因果效应ACE。
A C E = P ( Y = 1 ∣ d o ( X = 1 ) ) − P ( Y = 1 ∣ d o ( X = 0 ) ) ACE=P(Y=1|do(X=1))-P(Y=1|do(X=0)) ACE=P(Y=1do(X=1))P(Y=1do(X=0))

后门准则与调整公式

  假如要计算下图中的 P ( Y = y ∣ d o ( X = x ) ) P(Y=y|do(X=x)) P(Y=ydo(X=x)),存在混杂( Z Z Z X X X Y Y Y的共因),因为满足后门准则,因果效应是可识别的,具体可以使用调整公式来进行计算。
在这里插入图片描述
  后门准则: 给定有向无环图中的一组有序变量 ( X , Y ) (X,Y) (X,Y),如果变量集合 Z Z Z满足: Z Z Z中没有 X X X的后代节点,且 Z Z Z阻断了 X X X Y Y Y直接的每条含有指向 X X X的边的路径(后门路径),则称 Z Z Z满足关于 ( X , Y ) (X,Y) (X,Y)的后门准则。
  需要注意的是 X → Y X \rightarrow Y XY表示 X X X Y Y Y有前门路径, X ← Y X \leftarrow Y XY表示 X X X Y Y Y有后门路径,反的箭头也表示是路径。。。。。
  如果变量集合 Z Z Z满足 ( X , Y ) (X,Y) (X,Y)的后门准则,那么 X X X Y Y Y的因果效应可以使用调整公式计算(证明见参考文献):
P ( Y = y ∣ d o ( X = x ) ) = ∑ z P ( Y = y ∣ X = x , Z = z ) P ( Z = z ) P(Y=y|do(X=x))=\sum_z{P(Y=y|X=x,Z=z)P(Z=z)} P(Y=ydo(X=x))=zP(Y=yX=x,Z=z)P(Z=z)

前门准则与前门校正公式

在这里插入图片描述
  对于上图(a),存在一个不可观测的混杂因子 U U U,是 X X X Y Y Y的共因,要估计 X X X Y Y Y的因果效应就不能用后门准则了,因为没有 U U U的统计信息。但是,如果额外有一个可以观测的变量 Z Z Z位于 X X X Y Y Y之间,作为中介变量,这种情况下 X X X Y Y Y的因果效应是可识别的,满足前门准则,可以使用前门校正公式来计算。
  前门准则: 变量集合 Z Z Z被称为满足关于有序变量对 ( X , Y ) (X,Y) (X,Y)的前门准则,当:
    1. Z Z Z切断了所有 X X X Y Y Y的有向路径( X → . . . → Y X \rightarrow...\rightarrow Y X...Y)
    2. X X X Z Z Z没有后门路径
    3. 所有 Z Z Z Y Y Y的后门路径都被 X X X阻断

  如果 Z Z Z满足关于有序变量对 ( X , Y ) (X,Y) (X,Y)的前门准则,并且 P ( x , z ) > 0 P(x,z)>0 P(x,z)>0,那么 X X X Y Y Y的因果效应是可识别的,且由下式计算:
P ( Y = y ∣ d o ( x ) ) = ∑ z P ( z ∣ x ) ∑ x ′ P ( y ∣ x ′ , z ) P ( x ′ ) P(Y=y|do(x))=\sum_z{P(z|x)}\sum_{x^{\prime}}{P(y|x^{\prime},z)P(x^{\prime})} P(Y=ydo(x))=zP(zx)xP(yx,z)P(x)

工具变量

  假如存在无法观测的混杂因子,不满足前门准则,要识别 X X X Y Y Y的因果效应,可以考虑引入工具变量,借助来计算因果效应。
  一个变量𝑍称为工具变量,满足三个性质 :

  1. 相关性: R R R X X X有因果效应 (Relevance)
  2. R R R X X X的因果效应都由 X X X中介 (Exclusion Restriction)
  3. 工具变量不存在混杂(不存在到 Y Y Y未被阻断的后门路径)(Instrumental Unconfoundedness)

在这里插入图片描述
  例如上图中,假设是线性模型, X X X Y Y Y的因果效应是系数,也就是 δ \delta δ,混杂效应 α \alpha α不可观测,引入工具变量 R R R。如果求 R R R Y Y Y的平均因果效应,可以得到
E [ Y ∣ R = 1 ] − E [ Y ∣ R = 0 ] = E [ δ X + α C ∣ R = 1 ] − E [ δ X + α C ∣ R = 1 ] ( Y = δ X + α C ) = δ ( E [ X ∣ R = 1 ] − E ( X ∣ R = 0 ) ) + α ( E [ C ∣ R = 1 ] − E [ C ∣ R = 0 ] ) = δ ( E [ X ∣ R = 1 ] − E ( X ∣ R = 0 ) ) ( u n c o n f o u n d e d n e s s ) \begin{aligned} &\mathbb{E}[Y|R=1]-\mathbb{E}[Y|R=0]\\ &=\mathbb{E}[\delta X+\alpha C|R=1]-\mathbb{E}[\delta X+\alpha C|R=1] \qquad (Y=\delta X+\alpha C)\\ &=\delta(\mathbb{E}[X|R=1]-E(X|R=0))+\alpha(\mathbb{E}[C|R=1]-\mathbb{E}[C|R=0])\\ &=\delta(\mathbb{E}[X|R=1]-E(X|R=0)) \qquad (unconfoundedness) \end{aligned} E[YR=1]E[YR=0]=E[δX+αCR=1]E[δX+αCR=1](Y=δX+αC)=δ(E[XR=1]E(XR=0))+α(E[CR=1]E[CR=0])=δ(E[XR=1]E(XR=0))(unconfoundedness)
  所以可以求出来因果效应为
δ = E [ Y ∣ R = 1 ] − E [ Y ∣ R = 0 ] E [ X ∣ R = 1 ] − E [ X ∣ R = 0 ] \delta=\frac{\mathbb{E}[Y|R=1]-\mathbb{E}[Y|R=0]}{\mathbb{E}[X|R=1]-\mathbb{E}[X|R=0]} δ=E[XR=1]E[XR=0]E[YR=1]E[YR=0]
  如果是下面的图,可以得到对应的结论:
在这里插入图片描述

参考文献

上面写的仅仅是个人理解,不一定正确,参考文献更为严谨
【1】因果推理网课,https://www.bradyneal.com/causal-inference-course
【2】因果推理课本,Causal Inference in Statistics:A Primer
【3】因果推理课本中文翻译版,统计因果推理入门
【4】因果推理知乎专栏,因果关系之梯,by望止洋,https://www.zhihu.com/column/c_1217887302124773376


http://chatgpt.dhexx.cn/article/BBbeBnMu.shtml

相关文章

变分推断(Variational Inference)

1.变分推断简称VI,是一种确定性近似推断方法 2.基于平均场理论的VI是假设q(z)可以分解为M个独立qi 3.采取坐标上升法可以求解VI问题 4.VI有两个局限:假设太强,同时积分也不一定能算 5.为了解决积分不能算问题,考虑采取随机梯度法进…

【因果推断与机器学习】Causal_inference: Chapter 4

Chapter4: Estimation 一旦我们找到了识别因果量的策略,我们就需要选择如何使用统计方法估计这些因果量。我们使用受实际计算应用程序启发的示例来描述最常用的方法。首先,我们介绍因果估计的基础知识:如何从已确定的估计值到估计器&#xf…

variational inference

theta: org parameter, theta_P: variational parameter 1. goal: 估计p(z|x) 2. 找p(x|theta)likelihood的lower bound,再max这个lower bound 就能找到 p(z|x)的近似分布q(z|theta_P) 3. 找complete likelihood ln[p(x,z)]的关于qj j!i的期望 4. incomplete lik…

Paddle Inference(模型推理)实例分析

一、Paddle推理生态 二、API说明 create_predictor 方法 # 根据 Config 构建预测执行器 Predictor # 参数: config - 用于构建 Predictor 的配置信息 # 返回: Predictor - 预测执行器 paddle.inference.create_predictor(config: Config)加载预测模型 - 非Combined模型 impo…

对于jetson nano 的docker部署jetson-inference等模型

对于Nvidia jetson nano来说是一款十分优秀的网络模型部署设备我对于nano来说也是学习了2个星期左右.这也是对我这一阶段做一个复习总结吧! 目录 烧录 下载jetson-inference dock镜像部署操作 跑个例程助助兴 找到函数接口进行调整 我用的是jetson nano a02 版本 是4GB内存…

LLM Inference 串讲

大家好,这里是 NewBeeNLP。 本文主要概述一下当前LLM 是如何生成文本及为什么对应的资源(cost/latency)与prompt 和completion 都有关系。更佳阅读体验请点击原博客地址:LLM Inference 串讲(https://xv44586.github.io/2023/03/10/llm-inf/) …

【PaddleInferenceSharp】基于C#和Paddle Inference 部署PaddlePaddle模型

1. 项目介绍 Paddle Inference 是飞桨的原生推理库, 提供服务器端的高性能推理能力,直接基于飞桨的训练算子,因此它支持飞桨训练出的所有模型的推理;Paddle Inference 功能特性丰富,性能优异,针对不同平台不…

Paddle Inference C++ 依赖库安装(Windows)

Paddle Inference C 依赖库安装 1. 环境准备2. 下载安装库3. 设置环境变量4. VS C 项目配置 Paddle Inference 是飞桨的原生推理库, 提供服务器端的高性能推理能力。由于 Paddle Inference 能力直接基于飞桨的训练算子,因此它支持飞桨训练出的所有模型的…

ESIM:Enhanced LSTM for Natural Language Inference

原文链接:https://aclanthology.org/P17-1152.pdf ACL 2017 概述 对于自然语言推理任务,Bowman等人在2015年提出了一个大数据集,大多数工作就开始使用神经网络来对该任务进行训练。但作者认为序列模型的潜力还没有完全被挖掘,因此…

Triton Inference Server教程2

本文介绍如何编写一个config文件,config.pbtxt文件中包含哪些可以配置的参数,这些参数又会对triton server产生什么影响。 必须指定的模型参数 platform/backend:模型要在什么backend上面运行,可以用两种参数指定,一…

变分推断(variational inference)/variational EM

诸神缄默不语-个人CSDN博文目录 由于我真的,啥都不会,所以本文基本上就是,从0开始。 我看不懂的博客就是写得不行的博客。所以我只写我看得懂的部分。 持续更新。 文章目录 1. 琴生不等式2. 香农信息量/自信息I3. 信息熵4. 相对熵/KL散度/信…

Hugging Face - 推理(Inference)解决方案

每天,开发人员和组织都在使用 Hugging Face 平台上托管的模型,将想法变成概念验证(proof-of-concept)的 demo,再将 demo 变成生产级的应用。 Transformer 模型已成为广泛的机器学习(ML)应用的流…

变分推断(Variational Inference)解析

一、什么是变分推断 假设在一个贝叶斯模型中, x x x为一组观测变量, z z z为一组隐变量(参数也看做随机变量,包含在 z z z中),则推断问题为计算后验概率密度 P ( z ∣ x ) P(z|x) P(z∣x)。根据贝叶斯公式…

深度学习-在线推断(Inference)技术

深度学习一般分为训练和在线推断两个部分,大家平时经常关注的多为训练阶段,也就是搜索和求解模型最优参数的阶段。而当模型参数已经求解出来,如何使用模型,以及在在线环境中部署模型,也是非常重要的。 一般会比较关注其…

推理(Inference)与预测(Prediction)

在机器学习的背景下,很多人似乎混淆了这两个术语。这篇文章将试图澄清我们所说的这两个词是什么意思,每一个词在哪里有用,以及它们是如何应用的。在这里,我将举几个例子来直观地理解两者之间的区别。 推理和预测这两个术语都描述…

嵌入式C语言自我修养:从芯片、编译器到操作系统(附送书籍)

关注星标公众号,不错过精彩内容 来源 | 宅学部落 最近,阅读了王工(王利涛)赠送的一本由他编著的书籍《嵌入式C语言自我修养》,感觉写的挺不错。今天分享一下这本书籍《嵌入式C语言自我修养》:从芯片、编译器…

进行嵌入式C语言编程调试的通用办法

总结了一下调试我们嵌入式C程序的一些基本的办法和思想,供大家学习参考: 打印日志:在代码中添加打印语句,输出变量值、函数调用等信息,以便在程序运行时观察程序执行情况。 断点调试:在代码中添加断点&…

linux c与c语言的区别吗,嵌入式c语言与c语言的区别

原标题:嵌入式c语言与c语言的区别 最广泛使用的系统编程语言是C语言,它是使用自由格式源代码的简单编程语言;它曾用于以前用汇编语言构建的应用程序中。嵌入式C是C语言的扩展,它在嵌入式系统中应用于编写嵌入式软件,那么二者之间究竟有什么差异呢? 一、启动过程 1. 通用c…

嵌入式C语言——常见面试题

1、描述一下gcc编译过程? gcc编译过程分为4步骤:预处理、编译、汇编、链接。 预处理:头文件包含、宏替换、条件编译、删除注释。编译:主要进行词法、语法、语义分析等等,检查无误后把预处理好的文件编译成汇编文件。…

c语言对嵌入式的作用是什么,关于嵌入式C语言它有些什么意义

描述 首先,在当前产业结构升级的大背景下,机械行业未来的自动化、智能化程度会越来越高,所以机械类相关专业的知识结构必然会不断得到丰富和发展,而学习编程语言对于机械类专业来说具有较为实际的意义,尤其是C语言。 机…