因果推断读书笔记:功能性因果发现、LiNGAM、加性噪声模型

导言

本文主要介绍了以下几个概念:

  • 功能性因果发现(Functional Causal Discovery)
    用最简单的语言来解释就是,这是一种数据分析技术,它尝试通过分析数据集中变量之间的关系来确定哪些变量是原因,哪些是结果。这不仅仅是看变量之间是否有关联,而是更深入地分析它们之间的数学关系,比如是否一个变量的值可以通过另一个变量的某种函数变换来预测。

  • 加性噪声模型(Additive Noise Model, ANM)
    这个模型基于的是一个想法,即如果两个变量之间存在非线性关系,那么它们之间的因果关系会在数据中留下痕迹。就像如果你把一个变量的值看作是另一个变量值的某种变换再加上一些随机噪声,那么通过分析这些噪声,我们可以推断出哪个变量可能是原因。

  • LiNGAM(Linear Non-Gaussian Acyclic Model)
    LiNGAM是一种利用数据的非高斯性来识别因果关系的模型。简单来说,就是如果数据不是我们常见的正态分布(比如高斯分布),而是有其他分布特性,那么这些特性可以帮助我们确定变量之间的因果方向。

  • 对称性(Symmetry)
    在自然界和人类创造物中,对称性被认为是美的一种形式。但在因果关系中,完美的对称性可能意味着自然状态下的不自然。在数据分析中,对称性有时可以被用来识别或推断变量间的潜在关系。

  • 梯度因果发现(Gradient-based Causal Discovery)
    这是一种相对较新的因果发现方法,它使用连续优化技术来学习数据的因果结构。与传统的基于测试或启发式的方法不同,梯度方法通过不断调整模型参数来最小化误差,从而找到最佳的因果图。

  • Deep End-to-end Causal Inference (DECI)
    DECI是一个深度学习框架,它将因果发现和推断整合到一个端到端的过程中。这意味着它不仅试图找出变量之间的因果关系,而且还尝试预测这些关系在新数据上的表现。


1. 功能性因果发现(Functional Causal Discovery)

  • 方法名:
    功能因果发现(Functional Causal Discovery)

  • 方法主要思想:
    功能因果发现是一种统计方法,它利用变量之间关系的函数形式和分布特性来确定数据集中的因果方向。这种方法特别适用于当数据集的变量间存在非线性或非高斯分布时,能够打破传统线性模型中的对称性,帮助我们识别出潜在的因果关系。

  • 举例说明方法:
    假设我们研究吸烟(X)和肺癌(Y)之间的关系。通过收集数据,我们发现吸烟量与肺癌发病率之间存在一种非线性关系。使用功能因果发现,我们可以构建一个模型来分析这种非线性关系,从而推断出吸烟可能是肺癌发病率增加的原因。

  • 方法输入:

    • 变量数据集:包含多个变量的观测值。
    • 可能的函数形式:描述变量间关系的数学表达式。
    • 分布特性:变量数据的统计分布信息。
  • 方法输出:

    • 因果关系推断:确定哪些变量可能是原因,哪些是结果。
    • 模型参数:描述变量间关系的数学模型的参数。
  • 方法优点或适用场景:

    • 适用于非线性关系:当变量间存在复杂的非线性关系时,功能因果发现能够有效识别因果方向。
    • 适用于非高斯分布数据:对于不符合正态分布的数据,功能因果发现可以利用分布特性来推断因果关系。
    • 灵活性高:可以结合不同的数学模型和统计测试,适应不同的数据特性和研究需求。
  • 方法的缺点:

    • 对模型假设敏感:如果模型假设与实际数据特性不符,可能会导致错误的因果推断。
    • 计算复杂性:特别是当使用复杂的非线性模型时,计算成本可能会很高。
    • 可能需要领域知识:正确应用功能因果发现可能需要对数据和所研究的系统有深入的理解,以便选择合适的函数形式和分布特性。

2. 加性噪声模型(Additive Noise Model, ANM)

  • 方法名:
    加性噪声模型(Additive Noise Model, ANM)

  • 方法主要思想:
    ANM方法主要利用非线性关系来识别数据集中的因果方向。它基于这样的观点:如果两个变量之间存在非线性关系,那么在其中一个变量作为原因导致另一个变量变化的过程中,会留下可识别的痕迹。通过比较正向和反向模型的残差(即实际值与模型预测值之间的差异),我们可以判断哪个方向的模型更能体现数据的生成过程。

  • 举例说明方法:
    假设我们有两个变量X和Y,并且Y是由X的三次方加上一些随机噪声生成的。我们可以分别对X到Y和Y到X的方向进行非线性回归分析。如果在Y到X的方向上的残差显示出依赖性(即残差之间存在相关性),这表明Y到X的方向不是因果方向,因为真实的因果关系应该产生独立的残差。

  • 方法输入:
    ANM方法的输入通常是具有潜在因果关系的变量集合,以及这些变量的观测数据。

  • 方法输出:
    该方法输出的是关于变量之间因果关系的推断,包括确定哪些变量是原因,哪些是结果。

  • 方法优点或适用场景:
    ANM方法的优点在于它能够处理非线性关系,并且不需要对数据的分布做出严格的假设。它适用于数据集显示出明显的非线性模式,且因果关系不是简单的线性关系的情况。

  • 方法的缺点:
    ANM方法的一个主要限制是它要求数据中的噪声是独立同分布的,这意味着它可能不适用于存在隐藏混杂因素或测量误差的情况。此外,如果数据中的非线性关系不够明显或者模型选择不当,ANM可能无法准确识别因果方向。


方法主要思想:
ANM的核心思想是,如果变量 Y Y Y 是变量 X X X 的非线性函数再加上一些噪声,即:
Y = f ( X ) + ϵ Y=f(X)+\epsilon Y=f(X)+ϵ

其中, f ( X ) f(X) f(X) X X X 的非线性函数, ϵ \epsilon ϵ 是噪声项。如果 X X X 是因, Y Y Y 是果,那么 X X X Y Y Y 的映射应该能够通过非线性模型很好地捕捉,而噪声 ϵ \epsilon ϵ 应该与 X X X 是独立的。

举例说明方法:
假设我们有以下数据生成过程:
Y = X 3 + ϵ Y=X^3+\epsilon Y=X3+ϵ

这里, X X X 是原因变量, Y Y Y 是结果变量。我们生成了一些数据点,并观察到 Y Y Y X X X 的三次方成正比,但每个Y的值都带有一定的随机噪声。

现在,我们尝试两个方向的模型来拟合这些数据:

  1. 正向模型(假设 X X X 导致 Y Y Y ):
    Y ^ = g ( X ) \hat{Y}=g(X) Y^=g(X)

其中, g ( X ) g(X) g(X) 是我们选择的非线性模型,比如多项式或样条回归。

  1. 反向模型(假设 Y Y Y 导致 X X X ):
    X ^ = h ( Y ) \hat{X}=h(Y) X^=h(Y)

同样, h ( Y ) h(Y) h(Y) 是我们选择的非线性模型。
我们分别用这两个模型拟合数据,并计算残差:

  • 正向残差: residuals X Y = Y − g ( X ) { }_{X Y}=Y-g(X) XY=Yg(X)
  • 反向残差: residuals Y X = X − h ( Y ) { }_{Y X}=X-h(Y) YX=Xh(Y)

判断因果方向:

  • 如果 X X X 是真正的原因,那么residuals X Y { }_{X Y} XY 中的噪声应该与 X X X 相互独立。
  • 如果 Y Y Y 试图作为 X X X 的原因 (即使这在现实中不正确),那么residuals Y X _{YX} YX 中的噪声应该与 Y Y Y 显示出依赖性。

理解:
好的,让我们用LaTeX形式来表示你描述的数学关系和推理过程:
假设 ϵ 1 \epsilon_1 ϵ1,然后拿到了 Y 1 Y_1 Y1,反向预测的时候,其实是
( Y − ϵ ) 1 / 3 = X (Y - \epsilon)^{1/3} = X (Yϵ)1/3=X
这是精确的。
问题在于,我们建立的模型是
Y 1 / 3 − v = X Y^{1/3} - v = X Y1/3v=X
于是错误来自于这两种形式的差异。
我们考虑当 ϵ \epsilon ϵ 很大的时候,也就是, Y Y Y 相比于 X 3 X^3 X3 很大的时候,这种差异其实就会被放大,导致 v v v 很大。
那么,这种相关性应该是 Y − X 3 Y - X^3 YX3 v v v 的相关性,而不是 v v v Y Y Y 的相关性才对。

无论如何,我们可以使用统计测试 (如Hilbert-Schmidt Independence Criterion, HSIC) 来评估残差之间的独立性。如果HSIC测试表明residuals X Y X Y XY 是独立的,而residuals Y X { }_{Y X} YX 不是,那么我们可以推断 X X X 是导致 Y Y Y 的原因。

数学公式解释:
假设我们有两个模型:

  • 正向模型: g ( X ) = β 0 + β 1 X + β 2 X 2 + β 3 X 3 + … g(X)=\beta_0+\beta_1 X+\beta_2 X^2+\beta_3 X^3+\ldots g(X)=β0+β1X+β2X2+β3X3+
  • 反向模型: h ( Y ) = α 0 + α 1 Y + α 2 Y 2 + … h(Y)=\alpha_0+\alpha_1 Y+\alpha_2 Y^2+\ldots h(Y)=α0+α1Y+α2Y2+

我们的目标是找到哪个模型的残差显示出独立性。我们可以通过以下步㵵来评估:

  1. 拟合模型并计算残差。
  2. 使用HSIC测试来评估残差对的独立性: HSIC ⁡ ( X \operatorname{HSIC}\left(X\right. HSIC(X, residuals X Y ) HSIC ⁡ ( Y \left.{ }_{X Y}\right) \operatorname{HSIC}\left(Y\right. XY)HSIC(Y, residuals Y X ) \left.{ }_{Y X}\right) YX)如果 HSIC ⁡ ( X \operatorname{HSIC}\left(X\right. HSIC(X, residuals X Y ) \left.{ }_{X Y}\right) XY) 接近0,表明残差与 X X X 独立,支持 X X X 是原因的假设。相反,如果 HSIC ⁡ ( Y \operatorname{HSIC}(Y HSIC(Y, residualsYX ) ) ) 显著不为 0 ,表明残差与 Y Y Y 不独立,反对 Y Y Y 是原因的假设。这样,我们可以通过统计测试的结果来推断因果关系的方向。

3. LiNGAM(线性非高斯有向无环图模型)

  • 方法主要思想:
    LiNGAM方法的核心是找出变量之间的因果关系。它假设每个变量都是由其他几个变量的直接影响和一些随机的、非高斯分布的噪声组成的。如果噪声不是常见的正态分布,那么这些噪声可以帮助我们判断哪个变量是原因,哪个是结果。

  • 方法输入:
    LiNGAM需要的输入是一组观测数据,这些数据看起来是由多个相互关联的变量组成的。

  • 方法输出:
    LiNGAM提供给我们的是一张有向无环图,这张图展示了变量之间的因果关系。同时,它还能够告诉我们每个因果关系有多强,即影响的大小。

  • 方法优点或适用场景:
    LiNGAM的优点在于它适用于那些变量间的噪声不是正态分布的情况。它特别适合于那些我们认为变量之间有直接的线性关系,但又存在一些我们无法直接观察到的随机因素的场景。

  • 方法的缺点:
    LiNGAM的一个限制是它依赖于噪声的非高斯分布特性。如果实际的噪声是正态分布的,那么LiNGAM可能就无法正确地找出因果关系。此外,如果变量之间的关系非常复杂,或者数据中存在未被观察到的隐藏变量,LiNGAM也可能无法准确地识别出因果关系。

  • 举例说明方法:
    假设我们有三个变量:A、B和C,我们观察到B似乎受到A的影响,而C又受到A和B的影响。如果我们的数据是由以下的关系生成的:
    A = ϵ A B = A + ϵ B C = A + B + ϵ C A = \epsilon_A \\ B = A + \epsilon_B \\ C = A + B + \epsilon_C A=ϵAB=A+ϵBC=A+B+ϵC
    其中,( \epsilon_A, \epsilon_B, ) 和 ( \epsilon_C ) 是一些我们观察不到的随机噪声,并且它们不是正态分布的。使用LiNGAM方法,我们可以推断出A是B和C的原因,B是C的原因,并且得到一个类似于下面这样的因果图:
    A → B → C A \rightarrow B \rightarrow C ABC
    这个因果图告诉我们A影响了B,然后B又影响了C。同时,LiNGAM还能帮助我们估计出每个箭头(即因果关系)的强度。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/27406.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android视频播放暂停动效的按钮

上来直接给大家搂代码 class PlayButton JvmOverloads constructor(context: Context, attrs: AttributeSet? null, defStyleAttr: Int 0) :View(context, attrs, defStyleAttr) {companion object {/** 播放状态 */const val STATE_PLAY: Int 0/** 暂停状态 */const val S…

【数据结构初阶】 --- 单链表

关于链表你应该先了解这些 下图描述了物理模型和逻辑模型,大多数常见的其实是逻辑模型,但这对初学者或者掌握不扎实的同学不太友好,所以这里我重点讲解物理模型,当了解了这些细节,以后做题或是什么就直接画逻辑模型就…

Java优雅统计耗时【工具类】

任务耗时如何优雅的打印,看完本文你就明白了!~ import cn.hutool.core.date.StopWatch; import cn.hutool.core.lang.Console;/*** 优雅打印出任务耗时*/ public class Main {public static void main(String[] args) throws Exception{StopWatch stopW…

macOS Sequoia 开发者测试版下载和安装教程

macOS Sequoia 于 2024年6月10日在WWDC 2024 上发布,里面添加了AI、窗口排列、操控iPhone等功能,目前发布的为测试版本,可能很多人不知道怎么去下载安装,现在小编教一下大家怎么安装最新的 macOS Sequoia 开发者测试版。 下载 mac…

2024 年最新使用 Node 搭建QQ开放平台官方 QQ 频道机器人详细教程(更新中)

注册 QQ 开放平台账号 QQ 开放平台是腾讯应用综合开放类平台,包含 QQ 机器人、QQ 小程序、QQ 小游戏 等集成化管理,也就是说你注册了QQ 开放平台,你开发 QQ 机器人还是 QQ 小程序都是在这个平台进行部署上线和管理。 如何注册 QQ 开放平台账…

JAVAEE值之网络原理(1)_用户数据报协议(UDP)、概念、特点、结构、代码实例

前言 在前两节中我们介绍了UDP数据报套接字编程,但是并没有对UDP进行详细介绍,本节中我们将会详细介绍传输层中的UDP协议。 一、什么是UDP? UDP工作在传输层,用于程序之间传输数据的。数据一般包含:文件类型&#xff0…

算法刷题笔记 区间和(离散化二分查找难题,带超详细注释的C++实现)详细解析

文章目录 题目描述详细思路C实现代码 题目描述 假定有一个无限长的数轴,数轴上每个坐标上的数都是0。现在,我们首先进行n次操作,每次操作将某一位置x上的数加c。接下来,进行m次询问,每个询问包含两个整数l和r&#xf…

超图制作栅格数据集专题图示例

之前写过一两篇专题图的博文,是制作的矢量数据集的专题图; 有一个栅格数据集如下,不知是干嘛的,可能是一个地形,或水系; 看一下对栅格数据集制作专题图;能制作的专题图类型少些, 先…

R 文件优化插件:Binary XML file in layout Error inflating class

场景一:构造函数缺失 问题 自定义布局(FlagmentLayout)加载自定义属性失败,导致广告显示异常,甚至是闪退~ InflateException 在 Android 中我们遇到的通常发生在自定义 View 创建中,动态加载…

设置服务器禁止和ip通信

要禁止服务器与特定 IP 地址的通信,可以使用防火墙来设置规则。在 Ubuntu 上,iptables 是一个常用的防火墙工具。以下是使用 iptables 设置禁止与特定 IP 通信的步骤: 阻止所有进出的通信 如果你想阻止服务器与特定 IP 地址的所有通信&…

探索交互设计:五大关键维度全面剖析

交互式设计是用户体验(UX)设计的重要组成部分。在本文中,我将向大家解释什么是交互设计并简要描述交互设计师通常每天都做什么。 一、什么是交互设计 交互式设计用简单的术语来理解就是用户和产品之间的交互。在大多数情况下,当…

[linux] Qwen2Tokenizer报错 transformers版本问题

上午没问题,下午pull了新代码,就有了报错。。 发现是transformers版本问题。但。。其实我都默认安的是最新版本。。 也许这就是人生吧。。 报错: File "/Pai-Megatron-Patch/megatron_patch/tokenizer/__init__.py", line 213…

大白菜PE系统进入时一直 ACPI_BIOS_ERROR

安装系统PE不支持,主板不兼容,换个WIN10的PE就解决了,跟之前部分电脑需要WIN8的PE同理 WIN10PE教程 WIN8PE教程

CLIPSeg

作者回答问题敷衍,不建议复现

谷歌Google广告开户要提供什么材料?

谷歌Google广告是企业出海,触及全球潜在客户的必备渠道,无论您是初创公司还是成熟企业,想要在激烈的市场竞争中脱颖而出,有效利用谷歌广告的力量至关重要。云衔科技,作为数字化营销解决方案与SaaS软件服务商&#xff0…

区分前端HTML标签中的href和src

在前端HTML中,href和src是用于指定外部资源文件的属性。 href属性用于指定链接的目标地址,比如用于链接到外部CSS文件或者超链接到其他页面。src属性用于指定要嵌入到HTML中的外部资源文件,比如用于引入图片、脚本或者媒体文件。 尽管它们的…

const char * 和char *const ptr的区别

const char *ptr 此代码常量化的是*ptr,即 ptr 的内容值无法修改,但是ptr的值(指针指向)可以修改 char const *ptr 等效 const char *ptr char *const ptr 此代码常量化的是ptr,即 ptr 的值(指针指向&…

【Tkinter界面】Canvas 图形绘制(02/5)

文章目录 一、说明二、几何时使用 Canvas 组件2.1 用法2.2 简单范例2.3 对象移动2.4 对象删除2.5 文字对象显示 三、画布和画布对象3.1 画布生成函数原型3.2 使用create_xxx()方法3.3 对参数**options的解释 一、说明 Canvas(画布)组件为 Tkinter 的图形…

【打工日常】docker部署一款开源的笔记管理和协作工具

一、项目介绍1.项目简述Logseq 是一个隐私优先的开源知识库。2.项目功能插件系统:允许用户根据自己的需求扩展功能,社区开发的插件可以添加新特性或改进现有功能。主题和定制:支持主题定制,用户可以根据自己的喜好更改应用程序的外观。多语言支持:包括中文、英文、土耳其语…