赫斯特 (Hurst)计算——重标极差法(R/S法)

  1. 基本概念
  • 赫斯特 (Hurst)指数:介于0到1之间的标量,度量时间序列的趋势持续性(惯性)
  • 判读规则
    • H > 0.5:序列有持续性(长程正相关)
    • H = 0.5:序列为无记忆随机游走
    • H < 0.5:序列有反持续性(长程负相关)
  • 核心特性:仅度量趋势的"惯性",不度量趋势方向或波动大小
  1. 重标极差法 (R/S法)
    核心思想:检验序列在不同时间尺度上的统计自相似性
    流程概括:多尺度切割 -> 归一化比较 -> 对数线性拟合

  2. 关键要点总结
    | 符号 | 含义 | 作用 |
    |------|------|------|
    | X(k) | 累积离差序列 | 衡量趋势的累积效应 |
    | R | 极差(max(X)-min(X)) | 度量累积波动幅度 |
    | S | 标准差 | 度量单步波动强度 |
    | R/S | 重标极差 | 标准化波动比,可跨序列比较 |
    | H | 拟合直线斜率 | 赫斯特指数(长期记忆强度) |

  3. 简要流程
    原始序列 → 多尺度分割 → 各尺度计算R/S均值 → 取对数 → 线性拟合斜率 → 得到H值

  4. 注意事项

  • 数据量N应足够大(建议N > 300)
  • 最后一个不完整子块必须舍去
  • 结果应结合显著性检验解读
  • R/S法对非平稳序列敏感,可考虑DFA等替代方法

计算步骤

 **步骤1:数据准备**
- 时间序列 `Y = [y₁, y₂, ..., yₙ]`,长度 `N`
- *示例*:某地2000年1月起360个月每月降雨量

 **步骤2:设置时间窗口序列**
- 最小窗口 ≥ 10(保证统计可靠性)
- 最大窗口 ≤ `N/2`(保证足够子块数)
- 中间窗口:在对数坐标上近似均匀分布  
  *示例*:`[10, 12, 18, 24, 36, 48, 60, 72, 90, 120, 180]`

 **步骤3:对每个窗口 `n` 计算平均R/S值**
for n in [10, 12, 18, ...]:
# 3.1 分割成子块(舍去末尾不足n的部分)
M = int(N / n) # 子块数量
RS_list = [] # 存储各子块R/S值
# 3.2 计算每个子块的R/S
  for t in range(M):
      block = Y[t*n : (t+1)*n]  # 第t个子块
      # 3.2.1 计算子块均值
      μ = mean(block)

      # 3.2.2 计算累积离差序列 X(k)
      X = [0]  # X(0)=0
      for i in range(1, n+1):
          X.append(X[i-1] + (block[i-1] - μ))
      X = X[1:-1]
    
      # 3.2.3 计算极差R
      R = max(X) - min(X)
    
      # 3.2.4 计算标准差S
      S = std(block)  # 子块原始序列标准差
    
      # 3.2.5 计算重标极差 R/S
      RS_list.append(R / S)

# 3.3 计算窗口n的平均R/S值
RS_n = mean(RS_list)
# 记录坐标点
coordinates.append( (log(n), log(RS_n)) )


**步骤4:线性拟合求H**
- 经验公式:(R/S)_n ≈ C × n^H
- 对数变换:`log(R/S)_n ≈ H × log(n) + log(C)`
- 拟合:对坐标点集 `(log(n), log(RS_n))` 进行最小二乘线性回归
- 结果:拟合直线的斜率即为赫斯特指数 H

posted @ 2025-12-19 20:52  MyEngine  阅读(0)  评论(0)    收藏  举报