今日更新DKM_1.3,版本更新内容:CCM收敛交叉映射、两阶段嵌套泰尔指数、三阶段嵌套泰尔指数。此前嵌套泰尔指数分解是单独的脚本,这次一并合并到DKM_1.3中。
目前因果检验常用的格兰杰因果检验,主要是依据时间序列的预测能力来识别序列之间的因果关系。如,我们有一个模型来预测时间序列Y,如果在模型中移除时间序列X,则模型对Y的预测能力大大降低,此时可以说X是Y的一个原因。
但是,格兰杰因果检验的前提是时间序列之间要满足可分离性,这就要求系统之间,各变量是纯随机的,或者线性的。但是,有些系统中,各个时间序列之间彼此依赖,并不能分离,又或者彼此之间是弱耦合的,这时格兰杰因果检验就不再适用。
针对这个问题,Sugihara等(2012)在Detecting Causality in Complex Ecosystems这篇文章中,提出了CCM收敛交叉映射算法。
具体做法如下:
假设有X和Y两个时间序列如下:
{X} = { X(1) ,X(2) ,X(3) ,…,X(L) }
{Y} = { Y(1) ,Y(2) ,Y(3) ,…,Y(L) }
分别构造X和Y的影子流形MX和MY。
MX= < X(t) ,X( t-τ) ,X( t-2τ) ,…,X( t-( E-1) τ) >
MY= < Y(t) ,Y( t-τ) ,Y( t-2τ) ,…,Y( t-( E-1) τ) >
其中τ为时间滞后,E为嵌入维度。t最小值为E+2,最大值为L。
对生成的影子流形MX和MY,用欧式距离计算MX和MY中每个点到其他点的距离,找到E+1个邻居节点,用这些点构造权重wi,然后利用公式:
分别估计Y和X的值。
计算估计值和实际值的相关系数,即CCM相关系数,在不同的时间序列长度中重复计算CCM相关系数,绘制CCM相关系数随长度L的变化情形,判断相关系数的收敛性。
权重wi的构造如下:
在DKM_1.3中,准备好数据,可以直接生成CCM相关系数随时间序列长度L变化的情形:
在这张图中,红色曲线表示,用时间序列B的影子流形预测时间序列A,在库长达到一定长度后,相关系数逐渐趋向于1;绿色曲线表示,用时间序列A的影子流形预测时间序列B,随着库长的增加,相关系数仍然很低,这说明A对B的驱动比B对A的驱动更强,也就是说,A是B的原因。
CCM收敛交叉映射,是对格兰杰因果检验的补充,当变量间是弱耦合关系,或者不可分离时,可以使用CCM收敛交叉映射来识别因果关系。
购买DKM,添加微信:canglang12002
更多代码或资料,请点击阅读全文,访问工具视界官网。
往期推荐: