AnsChen's Home

Welcome to AnsChen's Home

0%

因果分析

非线性因果分析技术

在基础的统计学中,我们学过用协方差矩阵来表征两个高维随机变量\(X=(X_1,X_2,\cdots,X_n)^T, Y=(Y_1,Y_2,\cdots, Y_m)^T\)之间的相关性。但是,我们知道相关性并不意味着独立性,更加不能准确描述因果性。这篇Blog,我们将持续更新一些因果性分析工具。

Granger Causality(G-causality)

所谓的G-causality的想法其实非常的简单的,就是物理学中常说的控制变量法。

Definition 假设我们拥有三个随机过程\(X_t, Y_t, Z_t\), 并且我们将其各自的realization trajectory标记为\(X^t, Y^t, Z^t\), 对于给定的一个度量\(g\), 和拟合算子\(f_1, f_2\), 我们很容易定义对应的误差: \[ \mathcal{R}(Y^{t+1}| Y^t, Z^t) = g(Y_{t+1}, f_1(Y^t, Z^t)) \\ \mathcal{R}(Y^{t+1}| Y^t, X^t, Z^t) = g(Y_{t+1}, f_1(Y^t, X^t, Z^t)) \]

然后我们检验方法,检验两个残差有没有显著的差异,来表明\(X\)\(Y\)有没有显著的因果关系。

当然我们需要注意的是:

  • 整个流程不是完全准确的,因为选择的拟合算子\(f_1, f_2\)是非常关键。在最理想的情况下,其实我们还需要对整个\(f\)-space 去做一轮优化才是。
  • 如果\(f_1, f_2\)选成线性算子,整个流程和自回归非常相近。该检验可以和很多自回国技术结合起来。

Transer Entropy

除了拟合数据的角度,我们还可以从更加理论的角度去分析随机变量的因果性,即从两者对应的分布情况, 而不再依赖额外从分布到实数的映射构造的随机变量。在信息论领域,entropy作为一个非常重要的统计量来衡量分布的性质。那么我们很自然地,我们就可以想到条件熵来描述因果性的部分。

条件熵 给定两个随机变量\(X, Y\), \(Y\)之于\(X\)的条件熵可以定义为 \[ H(Y|X) = H(X,Y) - H(X) \]

对于之前没有接触过信息论的读者,这边简单地解释一下熵和条件熵的物理意义。所谓熵即代表该分布对应的不确定性。当人们讨论随机的时候,常常直觉会去感觉到有的随机事件没有那么"随机",大部分时候你能猜到,但是有的随机事件,感觉就很真的很“随机”,完全没有头绪。熵则是量化直觉上有多随机的数学量。那么条件熵又是怎么回事呢?其实就是在你们没啥信息的感觉\(Y\)这个变量大概有\(H(Y)\)这么多的不确定性。但是如果你知道了\(X\)的信息之后,有可能可以帮助你了解到\(Y\),那么你对\(Y\)的不确定性就会有可能降低,降低到多少呢,就是\(H(Y|X)\).

当然如果\(X\)\(Y\)是独立的,从上面的解释我们就会期望\(H(Y|X)=H(Y)\)。这点也是很好验证的。

转移熵 给定三个随机过程\(X_t,Y_t,Z_t\), 我们定义\(X\)\(Y\)的转移熵为 \[ T(X \to Y) = H(Y_{t+1}|Y^t, Z^t) - H(Y_{t+1}|Y^t, X^t, Z^t) \]

当然有人为了保证对称性,也会采用下面的定义来表示信息的净流出,

信息净流出 \[ \tilde{T}(X \to Y) = T(X \to Y) - T(Y \to X) \]

附录

G-causality和转移熵的等价性

有一个非常有意思的结果,就是在假设\(X_t,Y_t\)均服从多元高斯分布的条件下面。在2009年的一篇PRL证明了G-causality和转移熵的等价性。这就是建立数学拟合和信息论之间的一些桥梁,也建立了实操(G-causality更加好实现)和理论(转移熵实现更为麻烦,要从数据去得到分布不是那么得容易)的关系。

这边简要介绍一些证明的核心内容。 #### G-causality

给定两个随机变量\(X,Y\), 分别为\(n\)元,\(m\)元,线性回归的表达则是, \[ Y = A X + b + \epsilon \] 这边\(A\in R^{m\times n}, b \in R^{m}\) 为线形拟合的参数,\(\epsilon\)为残差项。如果\(X,Y\)均服从高斯分布的,那么使用\(tr(\Sigma(\epsilon))\) 作为损失函数去优化,则是符合MLE的一种算法。也就是我们要优化的是, \[ \mathcal{L} = \mathbb{E}[(Y - AX - b)^T (Y -AX -b)] \]\(\mathcal{L}\)求导,我们可以得到 \[ \frac{\partial \mathcal{L}}{\partial A} = -2\mathbb{E}[(Y-AX-b)X^T] \\ \frac{\partial \mathcal{L}}{\partial b} = -2\mathbb{E}[Y-AX-b] \] 令导数等于\(0\),我们可以得到\(A,b\)解分别为 \[ A = \Sigma(Y,X)\Sigma(X,X)^{-1} \\ b = \mathbb{E}[Y] - A\mathbb{E}[X] \] 那么我们容易得到, \[ \Sigma(\epsilon,\epsilon) = \mathbb{E}[(Y-AX-b)(Y-Ax-b)^T] \\ = \Sigma(Y,Y) - A \Sigma(X,Y) \\ = \Sigma(Y,Y) - \Sigma(Y,X)\Sigma(X,X)^{-1}\Sigma(X,Y) \] 为了方便,我们将最后一项简记成\(\Sigma(Y|X)\)

那么我们回到G-causality的讨论上面来,同时这边将\(f_1,f_2\)限制成线性的拟合算子。正如前面所说的,G-causality就是要比较加入\(X^t\)之后,对于\(Y^{t+1}\)的拟合带来了多少的增益。那么这边文章作者采用了对数ratio的方法来比较, \[ \mathcal{G}(X \to Y) := \ln \frac{\det(\Sigma(Y^{t+1}|Y^t \oplus Z^t))}{\det(\Sigma(Y^{t+1}|Y^t \oplus X^t \oplus Z^t))} \]

转移熵

这部分我们要证明的是\(X\)\(Y\)的转移熵\(T(X\to Y)\)等价于上面的\(\mathcal{G}(X \to Y)\)

给定一个服从\(n,m\)元高斯分布的随机变量\(X, Y\), 我们很容易证明其对应的熵的表达式如下: \[ H(X) = \frac{1}{2}\ln \det(\Sigma(X)) + \frac{n}{2}\ln(2\pi e),\\ H(X|Y) = H(X\oplus Y) - H(Y) = \frac{1}{2} \ln \frac{\det (\Sigma(X \oplus Y))}{\det \Sigma(Y)} + \frac{n}{2}\ln(2 \pi e) \] 同时, \[ \Sigma(X\oplus Y) = \left(\begin{matrix} \Sigma(X,X) & \Sigma(X,Y) \\ \Sigma(Y,X) & \Sigma(Y,Y)\\ \end{matrix}\right) \] 对于\(2\times 2\)的分块矩阵,我们很容易其特征值,得到 \[ \det\Sigma(X \oplus Y) = \det\Sigma(Y,Y)\det\Sigma(X|Y) \]

那么对于转移熵, \[ T(X \to Y) = H(Y^{t+1}|Y^t, Z^t) - H(Y^{t+1}|Y^t, X^t, Z^t) \\ = \frac{1}{2} \mathcal{G}(X \to Y) \]

Welcome to my other publishing channels