Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

te.md 7.9 KB

You have to be logged in to leave a comment. Sign In

转移熵及其应用

有很多工具可以刻画随机变量之间的关系,例如互相关系数可以用来刻画两个随机变量之间的线性关系,互信息可以用来刻画非线性关系。 而实际应用时,我们所观测到其实都是关于某些变量的时间序列数据,现在的目标就是如果从得到的时间序列数据当中挖掘出隐藏在其中的依赖关系。

Schreiber2000Measuring提出的转移熵主要作用就是从时间序列数据出发刻画变量之间的信息流动,把系统变量看成随机变量,通过观测数据重构变量 的概率分布,然后计算信息熵来表征各个物理变量的不确定性,当系统随着时间衍化时,信息在各个变量之间不断流动,每个变量的信息熵也随着改变, 转移熵就是用来量化这种信息流动的一种计算方法。

基于转移熵的关联分析

基于转移熵的物理参数因果关联挖掘:通过观测数据序列${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} \textcolor{purple}{H(X_{n+1})}&\textcolor{purple}{=}\textcolor{purple}{I(\mathbf{X_n^{(k)}};X_{n+1}) + H(X_{n+1}|\mathbf{X_n^{(k)}})}\ &=I(\mathbf{X_n^{(k)}};X_{n+1}) + \textcolor{red}{I(Y_n;X_{n+1}|\mathbf{X_n^{(k)}})} + \textcolor{blue}{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$带来的影响,这样得到的信息流动有可能不是本质的,因为转移熵并没有考虑到冗余和协同作用。

基于条件转移熵的参数挖掘

基于多变量转移熵的参数挖掘:假设我们有一个要预测的目标变量$X$,挖掘系统中其他变量$Y,Z,...$对预测目标变量$X$的重要性, 从中筛选出对$X$有关键贡献的变量集合$V_X$, 并进行排序以及考虑变量协同、冗余及延迟。

转移熵并没有考虑到变量之间的冗余效应和协同作用,所以并不能很好地解决上述问题,文献Lizier2012Multivariate中提出了条件转移熵和多变量转移熵: $$ T_{Y\rightarrow X|Z}(k) = I(Y_n;X_{n+1}|\mathbf{X_n^{(k)}},Z_n) $$ 有了条件转移熵,我们就可以在分析两个系统变量之间地本质依赖关系时考虑系统中其他变量的影响,比如冗余效应和协同作用。

回到我们的目标:从所有系统变量中筛选出对目标变量$X$有本质影响的变量集合$V_X$。基本工具就是上面所介绍的转移熵和条件转移熵,关键在于如何 筛选条件变量。我们首先来对这个问题进行数学建模:

随机变量$X_{n+1}$的不确定性可以用信息熵$H(X_{n+1})$来表示,根据前面的讨论可知 可以消除$X_{n+1}$不确定的信息来源有两个:一是系统变量$X$在历史中所包含的信息,二是其他系统变量$Y,Z$中所包含的关于$X$的信息。 假设 $\mathbf{X_n^{(k)}}={X_{n-k+1}, \ldots,X_{n-1},X_n}$,我们可以用$\mathbf{X_n^{(k)}}$和$X_{n+1}$之间的互信息来表示 系统变量历史信息中所包含的关于$X_{n+1}$的信息。利用互信息的定义可知 $$ H(X_{n+1})=I(\mathbf{X_n^{(k)}};X_{n+1}) + H(X_{n+1}|\mathbf{X_n^{(k)}}) $$ 那么在知道$\mathbf{X_n^{(k)}}$的信息后,目标的不确定性降低为$H(X_{n+1}|\mathbf{X_n^{(k)}})$。 现在我们可以继续考虑其他变量的贡献,不妨假设变量$Y$是一个比较关键的因素,考虑$Y_n$的贡献,利用条件互信息的定义可知 $$ H(X_{n+1}|\mathbf{X_n^{(k)}}) = I(Y_n;X_{n+1}|\mathbf{X_n^{(k)}}) + H(X_{n+1}|\mathbf{X_n^{(k)}},Y_n) $$ 于是现在目标的不确定性降低为$H(X_{n+1}|\mathbf{X_n^{(k)}},Y_n)$。类似地,可以继续考虑变量$Z$地影响,即 $$ H(X_{n+1}|\mathbf{X_n^{(k)}},Y_n)= I(Z_n;X_{n+1}|\mathbf{X_n^{(k)}},Y_n) + H(X_{n+1}|\mathbf{X_n^{(k)}},Y_n,Z_n) $$ 上述过程可以不断地进行下去,直至目标$X_{n+1}$的不确定性达到最小。那么我们的目标就是 筛选出变量集合$V_X={Y_n,Z_n,\ldots,\ldots}$,使得 $$ H(X_{n+1}|\mathbf{X_n^{(k)}},V_X) $$可以达到最小,并对集合$V_X$中变量的重要性做一个简单地排序。

下面这个公式对这个过程可能更为清楚: $$ \begin{aligned} \textcolor{purple}{H(X_{n+1})}&\textcolor{purple}{=} \textcolor{purple}{I(\mathbf{X_n^{(k)}};X_{n+1}) + H(X_{n+1}|\mathbf{X_n^{(k)}})}\ &= I(\mathbf{X_n^{(k)}};X_{n+1}) + \textcolor{red}{I(Y_n;X_{n+1}|\mathbf{X_n^{(k)}})} + \textcolor{blue}{H(X_{n+1}|\mathbf{X_n^{(k)}},Y_n)}\ &= I(\mathbf{X_n^{(k)}};X_{n+1}) + \textcolor{red}{I(Y_n;X_{n+1}|\mathbf{X_n^{(k)}})} + \textcolor{red}{I(Z_n;X_{n+1}|X_n^{(k)},Y_n)}+\textcolor{blue}{H(X_{n+1}|X_n^{(k)},Y_n,Z_n)}\ &= \cdots\cdots \end{aligned} $$

估计方法

可解释性

转移熵和因果之间的关系等等

Question: How much information about the next observation $X_{n+1}$ of process $X$ can be found in observation $Y_n$ of process $Y$, in the context of the past state $\mathbf{X_n^{(k)}}$?

Key formula: $$T_{Y\rightarrow X}(k) = I(Y_n;X_{n+1}|\mathbf{X_n^{(k)}})$$

参考文献

Michael Wibral, Raul Vicente, Joseph T. Lizier. Directed Information Measures in Neuroscience[M]. Springer Berlin Heidelberg, 2014.

Bossomaier, Terry, et al. An Introduction to Transfer Entropy: Information Flow In Complex Systems. 1st ed. 2016. .

Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...