MATLAB代码收敛交叉映射算法实现

2024-09-15

MATLAB代码:收敛交叉映射算法实现

简介

本仓库提供了一个MATLAB代码实现,用于执行收敛交叉映射(Convergent Cross Mapping, CCM)算法。该算法用于从嘈杂的时间序列数据中推断因果关系,特别是在存在噪声和外部影响的情况下。本实现基于Mønster等人在2017年发表的论文《来自嘈杂的时间序列数据的因果推论-在存在噪声和外部影响的情况下测试收敛交叉映射算法》。

资源文件描述

本仓库包含的资源文件为MATLAB代码,主要功能是实现收敛交叉映射算法。通过该算法,用户可以分析两个时间序列X和Y之间的因果关系。具体来说,该算法通过时间延迟坐标方法将时间序列嵌入相空间,然后使用xmap()函数进行收敛交叉映射分析。

如何使用

  1. 相空间嵌入:首先,使用psembed()函数将时间序列X和Y嵌入相空间。该函数使用时间延迟tau返回m个维度的时间序列X的相空间嵌入MX

  2. 收敛交叉映射:使用xmap()函数对嵌入相空间后的时间序列进行收敛交叉映射分析。

  3. 示例代码:在example.m文件中,您可以看到如何使用这些功能的示例。运行该文件将生成一个图表,展示CCM在具有单向耦合的耦合逻辑地图上的结果。

结果解释

  • X对Y的因果影响:观察到的X和X的横映射估计(蓝色)之间的相关系数随着库大小L的增大而收敛到高值,这表明X对Y存在因果影响。
  • Y对X的因果影响:观察到的Y和Y的横映射估计之间的相关系数一直较低,并且不显示任何收敛,表明Y对X不存在因果影响。

参考文献

Mønster, D., Fusaroli, R., Tylén, K., Roepstorff, A., & Sherson, J. F. (2017). 来自嘈杂的时间序列数据的因果推论-在存在噪声和外部影响的情况下测试收敛交叉映射算法。下一代计算机系统, 73, 52-62. DOI: 10.1016/j.nahs.2017.03.002

注意事项

  • 本代码适用于MATLAB环境,请确保您的MATLAB版本支持所提供的函数。
  • 在使用前,请仔细阅读example.m文件中的示例代码,以了解如何正确使用本代码。

希望本仓库的代码能帮助您在时间序列数据分析中更好地理解和应用收敛交叉映射算法。

下载链接

MATLAB代码收敛交叉映射算法实现