转移熵

研究动机

假设我们要研究的是一个耦合的物理系统:通过对系统变量\(\mathcal{X},\mathcal{Y},\mathcal{Z},\ldots\)在时间\(t\in 1\ldots T\)的观测,而产生观测时间序列数据:

\[ \{x_1,\ldots,x_T\},\ \ \{y_1,\ldots,y_T\},\ \ \{z_1,\ldots,z_T\}, \ldots, \]

这些时间序列可以看做随机过程

\[\mathbf{X}=\{X_t\}_{t=0}^{\infty},\ \ \mathbf{Y}=\{Y_t\}_{t=0}^{\infty},\ \ \mathbf{Z}=\{Y_t\}_{t=0}^{\infty},\ldots \]

中随机变量\(X_t,Y_t,Z_t,\ldots\)的实例化\(x_t,y_t,z_t,\ldots\),其中随机过程可以理解成一列以时间\(t\)为下角标的随机变量组成的集合。

通过观察记录复杂系统中各个变量的时间序列数据:

\[ \{x_t,y_t,z_t,\ldots\}_{t=0}^{\infty}, \]

我们的最终目标是解决如下问题:

  • 如何根据所观测到的时间序列\(\mathbf{\{x_t, y_{t}, z_{t}, \ldots\}_{t=0}^{\infty}}\),构建整个系统变量的因果依赖图,并可视化系统变量之间的信息流动,以及对系统衍化做出合理的推测?

转移熵

基于转移熵的物理参数因果关联挖掘:通过观测数据序列

\[\{x_t\}_{t=0}^{\infty}, \{y_t\}_{t=0}^{\infty}, \{z_t\}_{t=0}^{\infty}, ... \]

来推断系统变量\(X,Y,Z,...\)之间的关联关系,
并且分析其依赖关系是否为本质的,以及是否存在时间延迟,并确定具体时间延迟。

我们首先来考虑如何挖掘任意两个系统变量\(\mathcal{X}\)\(\mathcal{Y}\)之间的依赖关系?假设系统中现在只有两个变量\(\mathcal{X}\)\(\mathcal{Y}\),其中目标变量是\(\mathcal{X}\),我们要预测\(\mathcal{X}\)\(n+1\)时刻时的值或状态:\(X_{n+1}\)。 根据信息论的基本知识,我们知道\(X_{n+1}\)的不确定性由信息熵\(H(X_{n+1})\) 所衡量,那么推测\(X_{n+1}\)具体状态的过程就是通过获取足够多的信息来降低\(X_{n+1}\) 的不确定性。随机变量\(X_{n+1}\) 的信息来源有两个:一是系统变量\(\mathcal{X}\) 本身历史信息的贡献,二是系统中其他变量\(\mathcal{Y}\) 的贡献。

首先考虑\(\mathcal{X}\)本身的贡献,不妨设\(\mathbf{X_n^{(k)}}\triangleq\{X_{n-k+1},\ldots,X_{n-1},X_n\}\),那么\(\mathbf{X_n^{(k)}}\) 的贡献可以用

\[ A_X(k)=I(\mathbf{X_n^{(k)}};X_{n+1}) \]

\(\mathbf{X_n^{(k)}}\)\(X_{n+1}\)之间的互信息来衡量。

现在考虑系统变量\(\mathcal{Y}\)的贡献,一种方法是通过使用时间延迟的技巧,使得互相关系数和互信息具有方向性,从而可以用来分析不同时间序列之间的信息流动。延迟互相关系数的计算公式如下:\(\lambda_{X\rightarrow Y} = \lambda(X_n,Y_{n+1})\);延迟互信息的计算公式如下:\(I_{X\rightarrow Y} = I(Y_{n+1};X_n)\)。由于加了时间延迟,\(I_{X\rightarrow Y}\)一般不再等于\(I_{Y\rightarrow X}\),从而具有了方向性。然而这种技巧存在一种缺陷,因为在研究\(X\)\(Y\)之间关系的时候并没有将目标变量的历史信息考虑进去。

为更好地分析时间序列之间的信息流动情况,文献Schreiber2000Measuring提出了转移熵:

\[T_{Y\rightarrow X}(k)=I(Y_n;X_{n+1}|\mathbf{X_n^{(k)}}) \]

从上式可以看出,转移熵就是一种特殊的条件互信息,它以\(\mathbf{X_n^{(k)}}\)做为条件变量,然后计算\(n+1\)时刻,即\(X_{n+1}\)\(Y_n\) 之间的互信息。根据互信息和条件互信息的定义可知:

\[\begin{aligned} {H(X_{n+1})}&={I(\mathbf{X_n^{(k)}};X_{n+1}) + H(X_{n+1}|\mathbf{X_n^{(k)}})}\\ &=I(\mathbf{X_n^{(k)}};X_{n+1}) + {I(Y_n;X_{n+1}|\mathbf{X_n^{(k)}})} + {H(X_{n+1}|\mathbf{X_n^{(k)}},Y_n)} \end{aligned} \]

可以看到考虑\(\mathbf{X_n^{(k)}}\)\(Y_n\)的贡献之后,\(X_{n+1}\)的不确定性从\(H(X_{n+1})\)降低到了\(H(X_{n+1}|\mathbf{X_n^{(k)}},Y_n)\)

转移熵很好地刻画了系统中两个变量之间的信息流动,然而系统中往往不只有两个变量,那么仅仅使用转移熵就不够用了。
现在考虑包含三个变量地系统:\(\{\mathcal{X},\mathcal Y, \mathcal Z\}\),计算转移熵\(T_{Y\rightarrow X}(k)\)的时候,虽然考虑了\(\mathcal X\)的历史信息,
但是却没有考虑到\(\mathcal Z\)带来的影响,这样得到的信息流动有可能不是本质的,因为转移熵并没有考虑到冗余和协同作用。

这就需要转移熵的推广:多变量转移熵和条件转移熵。

posted @ 2020-06-16 08:16  林胜联府  阅读(1172)  评论(1编辑  收藏  举报