分形特征:度量时间序列的自相似性与复杂度

FreeGuideOnline 最新 2026-06-27

python import numpy as np

def hurst_rs(ts): """简化版 R/S 分析估算 Hurst 指数""" N = len(ts) max_k = int(np.floor(N / 2)) R_S = [] for k in range(2, max_k): # 将序列划分为 M 个长度为 k 的子片段 M = int(np.floor(N / k)) R, S = np.zeros(M), np.zeros(M) for i in range(M): segment = ts[i*k : (i+1)*k] mean_seg = np.mean(segment) cum_dev = np.cumsum(segment - mean_seg) R[i] = np.max(cum_dev) - np.min(cum_dev) S[i] = np.std(segment) R_S.append(np.mean(R / S)) k_values = np.arange(2, max_k) # 对数空间线性拟合 coeffs = np.polyfit(np.log(k_values), np.log(R_S), 1) return coeffs[0] # 斜率即为 Hurst 指数估计