基本概念
- 赫斯特 (Hurst)指数:介于0到1之间的标量,度量时间序列的趋势持续性(惯性)
- 判读规则:
H > 0.5:序列有持续性(长程正相关)
H = 0.5:序列为无记忆随机游走
H < 0.5:序列有反持续性(长程负相关)
- 核心特性:仅度量趋势的"惯性",不度量趋势方向或波动大小
-
重标极差法 (R/S法)
核心思想:检验序列在不同时间尺度上的统计自相似性
流程概括:多尺度切割 -> 归一化比较 -> 对数线性拟合
-
关键要点总结
| 符号 | 含义 | 作用 |
|------|------|------|
| X(k) | 累积离差序列 | 衡量趋势的累积效应 |
| R | 极差(max(X)-min(X)) | 度量累积波动幅度 |
| S | 标准差 | 度量单步波动强度 |
| R/S | 重标极差 | 标准化波动比,可跨序列比较 |
| H | 拟合直线斜率 | 赫斯特指数(长期记忆强度) |
-
简要流程
原始序列 → 多尺度分割 → 各尺度计算R/S均值 → 取对数 → 线性拟合斜率 → 得到H值
-
注意事项
- 数据量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