导言

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

  • 功能性因果发现(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还能帮助我们估计出每个箭头(即因果关系)的强度。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐