当前位置: 首页 > news >正文

多重分形去趋势交叉相关性分析

多重分形去趋势交叉相关性分析(Multifractal Detrended Cross-Correlation Analysis, MF-DCCA)

1. 核心概念与理解

要理解MF-DCCA,我们最好将其拆解为几个部分:

  • 交叉相关性分析 (Cross-Correlation Analysis): 研究两个不同时间序列 \(x(i)\)\(y(i)\) 之间在不同时间滞后下的相关性。传统的皮尔逊相关系数只能衡量线性相关性,且对非平稳序列效果很差。
  • 去趋势波动分析 (Detrended Fluctuation Analysis, DFA): 一种用于分析单个非平稳时间序列长程相关性和自相似性(分形特征)的强大方法。其核心是通过“去趋势”来消除序列中的局部趋势(如线性、多项式趋势),从而揭示其内在的标度特性。
  • 去趋势交叉相关性分析 (DCCA): DFA方法的扩展,用于研究两个非平稳时间序列之间的长程交叉相关性。它计算两个序列去趋势后的协方差波动函数。
  • 多重分形 (Multifractal): 标准DFA/DCCA假设序列是单分形的,即其标度行为在所有幅度波动下是均匀的。而多重分形意味着不同幅度的波动(大的波动 vs 小的波动)具有不同的标度行为。现实世界中的许多时间序列(如股票价格、心率、湍流)都表现出多重分形特性。

MF-DCCA的本质: 因此,MF-DCCA是DCCA多重分形分析的结合。它旨在量化两个非平稳时间序列之间交叉相关性的多重分形特征,即分析它们之间不同波动幅度下的长程相关行为。

2. MF-DCCA算法步骤(详细版)

假设有两个长度相等的时间序列:\(x(i)\)\(y(i)\), \(i = 1, 2, ..., N\)

第1步:构造轮廓函数 (Profile)
计算两个序列的累积离差,将其转换为随机游走过程。

\[X(i) = \sum_{k=1}^{i}[x(k) - \bar{x}], \quad Y(i) = \sum_{k=1}^{i}[y(k) - \bar{y}] \]

其中 \(\bar{x}\)\(\bar{y}\) 是序列 \(x\)\(y\) 的平均值。这一步将原序列转化为新的序列 \(X(i)\)\(Y(i)\)

第2步:分割与重叠(可选)
将两个轮廓序列 \(X\)\(Y\) 分成 \(N_s\) 个不重叠的等长子段(窗),每段长度为 \(s\)\(N_s = \text{int}(N/s)\)
为了充分利用数据,通常也会从序列尾部重复此操作,从而得到 \(2N_s\) 个片段。

第3步:局部去趋势 (Local Detrending)
在每个长度为 \(s\) 的片段 \(\nu\) (\(\nu = 1, 2, ..., 2N_s\)) 上,对 \(X\)\(Y\) 分别拟合一个多项式(通常为线性或二次)\(P_X^\nu(m)\)\(P_Y^\nu(m)\) (\(m=1,2,...,s\))。然后计算该片段内的去趋势协方差

\[F_{XY}^2(\nu, s) = \frac{1}{s} \sum_{m=1}^{s} |X((\nu-1)s + m) - P_X^\nu(m)| \cdot |Y((\nu-1)s + m) - P_Y^\nu(m)| \]

第4步:计算波动函数 (Fluctuation Function)
对所有片段 \(\nu\)\(F_{XY}^2(\nu, s)\) 进行 \(q\) 阶平均,得到 \(q\) 阶波动函数 \(F_{XYq}(s)\)

\[F_{XYq}(s) = \left\{ \frac{1}{2N_s} \sum_{\nu=1}^{2N_s} [F_{XY}^2(\nu, s)]^{q/2} \right\}^{1/q}, \quad \text{for } q \ne 0 \]

\(q=0\) 时,采用几何平均:

\[F_{XY0}(s) = \exp\left\{ \frac{1}{4N_s} \sum_{\nu=1}^{2N_s} \ln[F_{XY}^2(\nu, s)] \right\} \]

这里的 \(q\) 是一个实数参数,其作用像一个“显微镜”:

  • \(q >> 0\): 波动函数 \(F_{XYq}(s)\)大的波动\(F^2(\nu, s)\) 大的片段)主导。它放大并揭示了大幅波动的标度行为。
  • \(q << 0\): 波动函数 \(F_{XYq}(s)\)小的波动\(F^2(\nu, s)\) 小的片段)主导。它放大并揭示了小幅波动的标度行为。

第5步:标度行为分析 (Scaling Behavior)
如果两个序列之间的交叉相关性具有多重分形特征,那么波动函数 \(F_{XYq}(s)\) 与尺度 \(s\) 会存在幂律关系:

\[F_{XYq}(s) \sim s^{h_{XY}(q)} \]

对两边取对数:

\[\log(F_{XYq}(s)) = h_{XY}(q) \cdot \log(s) + C \]

其中 \(h_{XY}(q)\) 称为 广义Hurst指数。通过双对数图上 \(\log(F_{XYq}(s))\)\(\log(s)\) 的线性回归,可以估计出对应于每个 \(q\)\(h_{XY}(q)\)

  • \(h_{XY}(q) = 0.5\): 序列间交叉相关性类似于随机游走(无长程相关性)。
  • \(h_{XY}(q) > 0.5\): 序列间存在持久的长程交叉相关性(一个序列的增加倾向于与另一个序列的增加相关,且这种影响是长期的)。
  • \(h_{XY}(q) < 0.5\): 序列间存在反持久的长程交叉相关性(一个序列的增加倾向于与另一个序列的减少相关,行为类似于均值回复)。

第6步:多重分形强度评估
如果 \(h_{XY}(q)\)依赖于 \(q\) 的函数,则表明两个序列之间的交叉相关性具有多重分形特性。\(q\) 的变化越大,\(h_{XY}(q)\) 的变化也越大,则多重分形强度越强。

通常用奇异谱 \(f(\alpha)\) 来描述多重分形特性:

  1. Hölder指数 \(\alpha = h_{XY}(q) + qh_{XY}'(q)\) (即 \(h(q)\) 的Legendre变换)
  2. 奇异谱 \(f(\alpha) = q[\alpha - h_{XY}(q)] + 1\)

多重分形谱的宽度 \(\Delta \alpha = \alpha_{max} - \alpha_{min}\) 直接衡量了多重分形效应的强度\(\Delta \alpha\) 越宽,多重分形性越强。

3. 代码

MF-DCCA算法的简化MATLAB实现框架。

function [hq, Fq, scales] = MF_DCCA(x, y, sc_min, sc_max, num_scales, q_arr, order)% MF_DCCA 计算两个时间序列的多重分形去趋势交叉相关性分析% 输入:%   x, y      - 输入时间序列 (列向量)%   sc_min    - 最小尺度%   sc_max    - 最大尺度%   num_scales- 尺度数量%   q_arr     - q值的数组,例如 -5:0.2:5%   order     - 去趋势多项式的阶数 (1:线性, 2:二次, ...)% 输出:%   hq        - 广义Hurst指数 h(q)%   Fq        - 波动函数 Fq(s)%   scales    - 使用的尺度sN = length(x);scales = round(logspace(log10(sc_min), log10(sc_max), num_scales)); % 对数间隔的尺度num_q = length(q_arr);% 1. 计算轮廓序列X = cumsum(x - mean(x));Y = cumsum(y - mean(y));Fq = zeros(num_scales, num_q);for s_idx = 1:num_scaless = scales(s_idx);Ns = floor(N / s);% 确保有足够的分段if Ns < 20continue;endF2_XY = []; % 存储每个片段去趋势后的协方差% 2. 分割与去趋势 (非重叠分段)for v = 1:NssegX = X((v-1)*s + 1 : v*s);segY = Y((v-1)*s + 1 : v*s);% 创建自变量 (时间索引)t = (1:s)';% 拟合多项式并去趋势pX = polyfit(t, segX, order);pY = polyfit(t, segY, order);fitX = polyval(pX, t);fitY = polyval(pY, t);detrendX = segX - fitX;detrendY = segY - fitY;% 计算该片段的去趋势协方差F2_XY(v) = mean(detrendX .* detrendY);end% 3. 计算q阶波动函数for q_idx = 1:num_qq = q_arr(q_idx);if q == 0% 处理q=0的情况Fq(s_idx, q_idx) = exp(0.5 * mean(log(abs(F2_XY))));elseFq(s_idx, q_idx) = (mean(F2_XY .^ (q/2))) ^ (1/q);endendend% 4. 标度分析: 对每个q,拟合log(Fq(s)) ~ log(s)hq = zeros(1, num_q);log_scales = log(scales);for q_idx = 1:num_qlog_Fq = log(Fq(:, q_idx));% 使用线性回归拟合斜率,即h(q)p = polyfit(log_scales(:), log_Fq(:), 1);hq(q_idx) = p(1);end% 绘图: 波动函数figure;for q_idx = [1, floor(num_q/2), num_q] % 绘制几个代表性的qloglog(scales, Fq(:, q_idx), 'o-', 'DisplayName', ['q=', num2str(q_arr(q_idx))]);hold on;endxlabel('Scale s');ylabel('F_q(s)');title('MF-DCCA Fluctuation Function');legend show;grid on;% 绘图: 广义Hurst指数figure;plot(q_arr, hq, 'b-', 'LineWidth', 2);xlabel('q');ylabel('h(q)');title('Generalized Hurst Exponent');grid on;
end

使用示例:

% 生成两个具有长程交叉相关性的模拟序列
N = 3000;
x = cumsum(randn(N, 1)); % 标准随机游走
y = 0.6 * x + 0.4 * cumsum(randn(N, 1)); % y与x相关,但也包含自身噪声sc_min = 10;
sc_max = 200;
num_scales = 20;
q_arr = -5:0.5:5;
order = 1; % 线性去趋势[hq, Fq, scales] = MF_DCCA(x, y, sc_min, sc_max, num_scales, q_arr, order);

参考代码 多重分形去趋势交叉相关性分析DCCA www.youwenfan.com/contentcnh/55188.html

4. 应用场景

MF-DCCA被广泛应用于需要分析两个复杂系统之间相互作用的领域:

  1. 金融经济学: 分析不同股票市场、股票与大宗商品、加密货币之间的非线性动态相关性。
  2. 生理学: 研究不同生理信号(如心率与呼吸、脑电图(EEG)信号从不同脑区)之间的交互作用。
  3. 地球科学: 分析气候变化变量之间的关系,如温度与降水量、风速与波浪高度。
  4. 物理学: 研究湍流、颗粒物质等复杂系统中的交叉相关行为。

总之,MF-DCCA是分析两个非平稳时间序列之间复杂的、多尺度的非线性相关性的强大工具,它提供了远超传统相关系数的深刻见解。

http://www.wxhsa.cn/company.asp?id=6402

相关文章:

  • 智启燃气新未来丨众智鸿图精彩亮相2025燃气运营与安全研讨会 - 教程
  • 燕千云ITR平台引领服务流管理革命,构建企业客户服务智慧生态
  • WPF 容器尺寸行为总结
  • 在adobe illustrator中如何插入大于、小于号
  • 三分钟了解流量卡的选择
  • SARIMA算法
  • 【IEEE出版|EI检索稳定】第四届云计算、大数据应用与软件工程国际学术会议(CBASE 2025)
  • Gitee推出革命性MCP Server:AI深度参与开发全流程 开启智能协作新时代
  • 用机器语言实现循环
  • 取证 - voasem
  • django对接drf-spectacular替代swagger
  • 可画
  • Symbol VBRK: Invalid data type u SAP 事务成功新号码获取到 但是提交后提示失败如何处理
  • Oracle 19c asm单机OPatch补丁报错checkSystemCommandAvailable failed.
  • three.js中怎么加载 .gltf/glb格式 文件
  • ollama如何安装使用
  • 【SPIE独立出版|连续多年EI稳定检索】第七届地球科学与遥感测绘国际学术会议(GRSM 2025)
  • 手把手教你实现C++高性能内存池,相比 malloc 性能提升7倍!
  • LDPC 码 BP 算法性能研究
  • 内外网文件传输方式有哪些:从传统方案到专业系统的全面解析!
  • 实用指南:DeerFlow 实践:华为IPD流程的评审智能体设计
  • py之补环境代理脚本
  • Python psutil模块
  • 跨网文件传输工具选择要点是什么?
  • 下半年业绩冲刺,12个效率工具帮你提速!
  • AUTOSAR的MPU内存保护
  • AI赋能CRM:纷享销客智能图像提升终端运营效率
  • 【linux命令】网卡命令 ①
  • 一款基于 .NET 开源美观、功能丰富的串口调试工具
  • 麒麟系统中docker常用命令