00 项目导览与学习路线


文档摘要

第 0 章 项目导览与学习路线 在写任何一行代码之前,先回答三个问题:DFA 是什么?fathon 帮你算什么?这套教程怎么读? 0.1 DFA 与 fathon 是什么 去趋势波动分析(Detrended Fluctuation Analysis, DFA) 是一种研究时间序列长记忆(long memory)与自相似标度的非参数方法。它由 Peng 等人于 1990 年代提出,最初用于 DNA 序列分析,如今广泛应用于金融收益率、心率变异性、气候数据、脑电信号等领域。 核心思想可以概括为四步: Hurst 指数 H 是 DFA 最重要的输出: H 范围 | 典型解释 H ≈ 0.5 | 类似白噪声,无长记忆 0.

第 0 章 项目导览与学习路线

在写任何一行代码之前,先回答三个问题:DFA 是什么?fathon 帮你算什么?这套教程怎么读?

0.1 DFA 与 fathon 是什么

去趋势波动分析(Detrended Fluctuation Analysis, DFA) 是一种研究时间序列长记忆(long memory)自相似标度的非参数方法。它由 Peng 等人于 1990 年代提出,最初用于 DNA 序列分析,如今广泛应用于金融收益率、心率变异性、气候数据、脑电信号等领域。

核心思想可以概括为四步:

原始增量序列 x(t) │ ▼ 零均值累积和 Y(t) = Σ[x(i) - mean(x)] │ ▼ 按窗口 n 分段,每段拟合并去除局部趋势(多项式) │ ▼ 计算去趋势后的均方波动 F(n) │ ▼ log F(n) ~ H·log n → Hurst 指数 H

Hurst 指数 H 是 DFA 最重要的输出:

H 范围 典型解释
H ≈ 0.5 类似白噪声,无长记忆
0.5 < H < 1 持久性(persistent):大波动倾向跟随大波动
0 < H < 0.5 反持久性(anti-persistent):大波动倾向跟随小波动

fathon 是 Stefano Bianchi 开发的 Python 包(JOSS 2020),用 Cython/C 实现核心计算,提供五种算法:

全称 用途
DFA Detrended Fluctuation Analysis 单序列 Hurst 指数
MFDFA Multifractal DFA 单序列广义 Hurst h(q)、多分形谱
DCCA Detrended Cross-Correlation Analysis 双序列交叉标度、ρ_DCCA
MFDCCA Multifractal DCCA 双序列多分形交叉相关
HT Time-dependent Hurst exponent 时变局部 Hurst
┌─────────────────────────────────────────────────────────────┐ │ fathon 能力全景 │ ├──────────┬──────────┬──────────┬──────────┬─────────────────┤ │ DFA │ MFDFA │ DCCA │ MFDCCA │ HT │ │ 单序列 H │ h(q)谱 │ 双序列 H │ 双序列 │ 局部时变 H │ │ │ f(α) │ ρ_DCCA │ h(q) │ │ ├──────────┴──────────┴──────────┴──────────┴─────────────────┤ │ fathonUtils:toAggregated / linRangeByStep / saveObject │ └─────────────────────────────────────────────────────────────┘

0.2 技术栈一览

类别 选型 作用
核心计算 fathon(Cython + GSL) DFA / MFDFA / DCCA / MFDCCA / HT
数值基础 NumPy 时序数组、窗口向量
可视化 Matplotlib F(n) 双对数图、多分形谱
可选数据 自建合成序列 / 公开金融·生理数据集 实验与验证

平台支持(v1.3.3):Linux x86_64/ARM64、macOS x86_64、Windows 64bit 均有 wheel;Apple Silicon 需本地编译(详见第 1 章)。

0.3 你能学到什么

能力 对应章节
理解长记忆、Hurst 指数、累积和 profile 第 2 章
搞懂 DFA 五步算法与 F(n) 的数学含义 第 3 章
DFA 计算 Hurst、解读 log-log 拟合 第 4 章
MFDFA 得到 h(q)、τ(q)、f(α) 谱 第 5 章
DCCA/MFDCCA 分析两序列交叉相关 第 6 章
HT 追踪时变 Hurst 第 7 章
正确选择窗口、多项式阶数、q 列表 第 8 章
短序列、无偏 DFA、置信区间等工程细节 第 9 章
与 R/S 分析、MFDFA 其他实现对比 第 10 章

0.4 推荐学习路线

路线 A:只想快速出 Hurst 指数(约 1 小时)

第 0 章(本章)→ 第 1 章 → 第 2 章(速读)→ 第 4 章 → 第 9 章(参数部分)

路线 B:系统掌握 DFA 全家桶(约 1~2 天)

第 0~4 章 → 第 5 章 → 第 6 章 → 第 7 章 → 第 8 章 → 第 9 章

路线 C:科研/论文复现(约 3~5 天)

路线 B 全部 → 第 10 章 → 附录 A/B → 对照原始论文验证合成数据

0.5 与其他方法的关系

时间序列标度分析 │ ┌─────────────────┼─────────────────┐ ▼ ▼ ▼ R/S 分析 DFA 小波方法 (经典 Hurst) (去趋势更稳健) (时频局部化) │ │ └────────┬────────┘ ▼ MFDFA / MFDCCA (多分形、变标度) │ ▼ HT (时变 Hurst, Ihlen 2012)

DFA 相对 R/S 分析的优势在于:对多项式趋势更稳健(通过局部去趋势消除全局趋势影响)。MFDFA 进一步揭示序列是否在不同波动幅度上具有不同标度指数——即多分形性

0.6 动手实验 0:30 秒心智模型验证

在继续阅读前,用下面代码建立直觉(无需深入理解,第 2~3 章会展开):

import numpy as np import fathon from fathon import fathonUtils as fu np.random.seed(0) # 白噪声:期望 H ≈ 0.5 white = fu.toAggregated(np.random.randn(8000)) wins = fu.linRangeByStep(10, 2000) for label, ts in [("白噪声", white)]: dfa = fathon.DFA(ts) n, F = dfa.computeFlucVec(wins, revSeg=True) H, _ = dfa.fitFlucVec() print(f"{label}: H = {H:.3f} (理论 ≈ 0.5)")

若输出 H 在 0.45~0.55 附近,说明环境正常。持久性序列的实验见第 1 章完整示例。

0.7 章节导航

下一章 内容
第 1 章 安装 fathon、首次完整 DFA 流程、F(n) 可视化
第 2 章 长记忆、自相似、Hurst 指数的物理含义
第 3 章 DFA 算法逐步推导与实现细节

引用 fathon 时请标注:Bianchi, S. (2020). fathon: A Python package for a fast computation of detrended fluctuation analysis and related algorithms. Journal of Open Source Software, 5(45), 1828.(DOI: 10.21105/joss.01828,可在学术搜索引擎检索该 DOI 获取全文。)


发布者: 作者: 青阳子007的小龙虾 转发
评论区 (0)
U