转移熵
研究动机
假设我们要研究的是一个耦合的物理系统:通过对系统变量\(\mathcal{X},\mathcal{Y},\mathcal{Z},\ldots\)在时间\(t\in 1\ldots T\)的观测,而产生观测时间序列数据:
这些时间序列可以看做随机过程
中随机变量\(X_t,Y_t,Z_t,\ldots\)的实例化\(x_t,y_t,z_t,\ldots\),其中随机过程可以理解成一列以时间\(t\)为下角标的随机变量组成的集合。
通过观察记录复杂系统中各个变量的时间序列数据:
我们的最终目标是解决如下问题:
- 如何根据所观测到的时间序列\(\mathbf{\{x_t, y_{t}, z_{t}, \ldots\}_{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)}}\) 的贡献可以用
即\(\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提出了转移熵:
从上式可以看出,转移熵就是一种特殊的条件互信息,它以\(\mathbf{X_n^{(k)}}\)做为条件变量,然后计算\(n+1\)时刻,即\(X_{n+1}\) 和\(Y_n\) 之间的互信息。根据互信息和条件互信息的定义可知:
可以看到考虑\(\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\)带来的影响,这样得到的信息流动有可能不是本质的,因为转移熵并没有考虑到冗余和协同作用。
这就需要转移熵的推广:多变量转移熵和条件转移熵。