因果论(五)——Structural Causal Model(SCM 结构因果模型、函数模型和图模型)

2023-10-22 07:20

本文主要是介绍因果论(五)——Structural Causal Model(SCM 结构因果模型、函数模型和图模型),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、核心思想

SCM的核心思想是因果图,因果图之前已经介绍过,SCM和RCM是等价的。

SCM的关键在于图模型,来源于贝叶斯网络,将Bayes网络加上外部干预,用来定义外部干预的因果作用和描述多个变量之间的因果关系,利用因果网络不仅能定量评价因果作用,还能定性确定混杂因素,用于从数据挖掘因果关系

二、结构方程

结构因果模型中的一个重要概念是结构方程 (structural equations ),其假设每个节点xi都对应一个未观测到的外生变量ui(exogenous variable,或者叫做遗漏因子),节点的值由该遗漏因子ui及父代变量pai通过一个方程来唯一确定,遗漏因子会造成扰动(误差),它可能是未知 or/and 随机的,我们并不关心它们变化的原因。 这个方程为:
x_{i} = f(pa_{i},u_{i})
结构方程和因果图的对应关系如下图所示。

 与代数方程不同,结构方程其代表 变量的生成机制,只能由等式右边对左边赋值,而不能随意变换方向。外生变量描述的是对应节点变量的所有随机因素,其自身具有确定性的概率分布,通常 未被观测也无法进行控制,而且 SCM 中假设所有外生变量之间相互独立。

三、SCM基本概念

SCM就是加入do算子,前文已经介绍过。

根据do操作,变可以定义因果效应,比如二值得Z对于Y的平均因果效应定义为:

ACE(Z\rightarrow Y) = E(Y|do(Z)=1)-E(X|do(Z)=0)

上面do操作下的期望,分别对应do操作下的分布。

四、d分离

前文已经介绍过

五、前门法则和后门法则

六、因果模型中的概率预测

已知一个函数因果模型(如下式),如果我们从pai的每个成员画一个指向Xi的箭头,那么得到的图G称为因果图。如果因果图是无欢的,那么对应的模型称为半马尔科夫模型,变量X的值由变量U的值唯一决定。在这样的条件下,联合分布P(x1,x2,...,xn)由误差变量的分布P(u)唯一决定。如果除了无环以外,误差项是联合独立的,那么该模型称为马尔科夫模型。

x_{1}=f_{i}(pa_{i},u_{i}), i=1,2,...,n

七、函数模型中的反事实

反事实语句不能在随机因果网络的框架下定义。

这篇关于因果论(五)——Structural Causal Model(SCM 结构因果模型、函数模型和图模型)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/259947

相关文章

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

MySQL中FIND_IN_SET函数与INSTR函数用法解析

《MySQL中FIND_IN_SET函数与INSTR函数用法解析》:本文主要介绍MySQL中FIND_IN_SET函数与INSTR函数用法解析,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一... 目录一、功能定义与语法1、FIND_IN_SET函数2、INSTR函数二、本质区别对比三、实际场景案例分

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

Pydantic中model_validator的实现

《Pydantic中model_validator的实现》本文主要介绍了Pydantic中model_validator的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录引言基础知识创建 Pydantic 模型使用 model_validator 装饰器高级用法mo

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

C/C++错误信息处理的常见方法及函数

《C/C++错误信息处理的常见方法及函数》C/C++是两种广泛使用的编程语言,特别是在系统编程、嵌入式开发以及高性能计算领域,:本文主要介绍C/C++错误信息处理的常见方法及函数,文中通过代码介绍... 目录前言1. errno 和 perror()示例:2. strerror()示例:3. perror(

Kotlin 作用域函数apply、let、run、with、also使用指南

《Kotlin作用域函数apply、let、run、with、also使用指南》在Kotlin开发中,作用域函数(ScopeFunctions)是一组能让代码更简洁、更函数式的高阶函数,本文将... 目录一、引言:为什么需要作用域函数?二、作用域函China编程数详解1. apply:对象配置的 “流式构建器”最

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI