基于MATLAB的非线性Granger因果关系检验系统
项目介绍
本系统是一个专门用于识别和量化时间序列间非线性因果交互作用的MATLAB工具箱。传统的Granger因果检验主要依赖于线性向量自回归模型,在面对具有复杂动力学特征、非线性反馈或高阶依赖关系的系统(如金融市场、气候变化以及生物电信号)时往往会失效。本系统通过集成非参数化的Diks-Panchenko检验算法,直接通过比较延迟向量的条件分布差异来探测变量间的因果流向,从而为复杂系统的交互研究提供更精确的分析手段。
功能特性
- 非线性因果识别:能够捕捉变量之间超越线性相关性的隐藏动态联系。
- 自动化流程:涵盖了从数据验证、线性成分过滤、非参数检验到结果可视化的全套流程。
- 灵活的参数配制:支持用户自定义嵌入维度、滞后步长以及核函数宽度,以适应不同特性的时间序列。
- 统计显著性评估:内置基于正态分布假设的显著性检验,自动计算T统计量与P值。
- 多维可视化展现:集成因果强度热力图与有向连通网络图,直观呈现多变量间的耦合结构。
系统要求- MATLAB R2016b 或更高版本
- 基础MATLAB工具箱(包含统计与机器学习相关函数)
系统实现逻辑与流程系统的运行遵循严谨的统计分析步骤,确保检测到的因果关系排除线性干扰且具有统计意义:
- 模拟数据生成:系统内置仿真模块,生成具有明确非线性耦合关系(如AR过程驱动的非线性函数映射)的测试信号,用于验证算法的有效性。
- 线性成分剔除(预处理):为了专注于非线性因果关系的检测,系统首先对输入数据建立线性向量自回归(VAR)模型。通过提取VAR模型的残差序列,剔除了变量间的线性相关性,确保后续检验针对的是残存在残差中的非线性依赖。
- 相空间重构:利用延迟嵌入技术,根据设定的嵌入维度(m, l)将一维时间序列映射到高维相空间,重构变量的时间演化轨迹。
- Diks-Panchenko 核心检验:
* 采用基于核密度的非参数估计方法。
* 通过对不同嵌入向量集(历史项与预测项)进行关联积分计算。
* 实现高效的局部邻域密度搜索,并利用向量化加速计算过程。
* 系统采用抽样策略和矩形核函数(Heaviside函数)来优化大规模数据的计算速度。
- 统计量计算与决策:计算全局平均的局部统计量偏离度,构造满足正态分布的T统计量。通过双向遍历所有变量组合,生成因果关系矩阵,并根据显著性水平 alpha 自动判定是否存在因果流向。
关键算法细节说明
- 线性残差提取:采用最小二乘法估计VAR模型参数。这一步是确保“非线性”检验纯粹性的核心环节,防止线性信号导致的伪非线性发现。
- 非参数密度对比:该算法不依赖于特定的模型形式。其核心逻辑在于:如果变量X对变量Y有因果影响,那么给定Y的过去信息和X的过去信息对未来Y的预测能力,应当显著优于仅给定Y的过去信息。
- 核半径(Epsilon)适配:系统将核函数宽度与数据的标准差挂钩,通过缩放因子动态调整搜索范围,从而保证在不同尺度的信号下都能保持稳健。
- 因果强度量化:利用T统计量的绝对值作为因果强度的衡量指标,并在绘图时根据强度动态调整连接线的粗细。
使用方法- 准备数据:载入两路或多路同步的时间序列数据。
- 配置参数:在脚本头部设置嵌入维度、样本延迟及显著性阈值。
- 执行分析:运行主程序,系统将自动进行VAR残差提取与全矩阵因果扫描。
- 查看结果:
* 命令行窗口将输出各变量对之间的统计量、P值及显著性结论。
* 系统将弹出两个图形窗口,左侧为因果强度矩阵热力图,右侧为显著因果连接的有向图。