赫斯特指数(Hurst Exponent):时间序列的可预测性

本文介绍了赫斯特指数的起源、计算方法以及在不同时间序列类型中的应用,如随机游走、均值回归和持久性序列。它强调了赫斯特指数在理解趋势持续性和预测金融市场中的价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.赫斯特指数来源

2.估计Hurst指数

3.解释赫斯特指数

4.结论   

5.参考文献


1.赫斯特指数来源

        1951 年,著名的英国水文学家 H.E. 赫斯特发表了一篇题为“水库的长期存储能力”的论文。 该论文专门讨论了水库建模,但事实证明,结果也适用于许多其他自然系统。 赫斯特正在寻找一种方法来模拟尼罗河的水位,以便建筑师能够建造适当大小的水库系统。 虽然他的建议没有得到实施(1952 年埃及革命证明了这一点),但他赋予了一种统计方法以区分随机系统和非随机系统并确定趋势的持续性,这种方法被称为重新调整范围分析或 R/S 分析。

        许多年后,著名数学家伯努瓦·曼德尔布罗特 (Benoit Mandelbrot) 在研究金融市场的分形性质时,特别是时间序列强烈回归均值或向某个方向聚集的趋势时,偶然发现了赫斯特的工作,并认识到其中的潜力 ,引入分形几何,以纪念赫斯特,术语广义赫斯特指数。 简而言之,赫斯特指数被用来衡量时间序列的长期记忆。

        除了赫斯特指数之外,曼德尔布罗特还创造了另外两个可用于描述时间序列的长期记忆的术语。 他将第一个效应称为约瑟夫效应,第二个效应称为诺亚效应。 约瑟夫效应告诉我们时间序列的变动是否是长期趋势的一部分,并指的是旧约中埃及将经历七年丰收和七年饥荒。 诺亚效应是指时间序列发生突然变化的趋势,其名称源自圣经中的大洪水故事。 时间序列中的这两种效应都可以从赫斯特指数中推断出来。

2.估计Hurst指数

        赫斯特指数与其说是计算出来的,不如说是估计的。 存在多种用于估计赫斯特指数 (H) 的技术,这里详细介绍的过程既简单又高度数据密集。 为了估计赫斯特指数,必须对观测时间跨度的重新调整范围进行回归。 为此,将完整长度的时间序列分为多个较短的时间序列,并为每个较小的时间序列计算重新调整的范围。 通常选择最小长度 8 作为最小时间序列的长度。 因此,举例来说,如果一个时间序列有 128 个观测值,则它将分为:

  • 两块,每块 64 个观察值
  • 四块,每块 32 个观察值
  • 八块,每块 16 个观察值
  • 16 组,每组 8 个观察值

        将时间序列分解为块后估计 Hurst 指数的步骤:
        对于每个观察块,计算:

  • 时间序列的平均值,
  • 通过从序列中减去平均值来得到以平均值为中心的序列,
  • 通过对以平均值为中心的值求和来得出该系列与平均值的累积偏差,
  • 范围(R),即累积偏差的最大值与累积偏差的最小值之间的差,
  • 平均中心值的标准差 (S),以及
  • 通过将范围除以标准差来重新调整范围。

        最后,对所有块的重新缩放范围进行平均。
        重新缩放的范围和块大小遵循幂律,并且赫斯特指数由该幂律的指数给出。 当事件的频率随着与该事件相关的某个量的幂而变化时,就称其遵循幂律。 各种各样的自然和人造现象都遵循幂律。 例如,80/20法则(20%的人口拥有80%的财富)、赢家通吃现象、社交网络中的朋友关系以及森林火灾都遵循幂律。

3.解释赫斯特指数

        使用赫斯特指数,我们可以将时间序列分类并深入了解它们的动态。 以下是一些类型的时间序列以及与每种类型相关的赫斯特指数。

        布朗模型时间序列:在布朗模型时间序列(也称为随机游走或醉汉游走)中,观测值与未来观测值之间没有相关性; 高于或低于当前观察值的可能性是相同的。 这类系列很难预测。 图 1 提供了布朗时间序列及其估计的赫斯特指数的示例。 上面绘制的数据的 Hurst 指数估计为 0.53 – 接近 0.5 的 Hurst 指数表明布朗时间序列。

 图 1 布朗时间序列 (H = 0.53)

        反持续时间序列:在反持续时间序列(也称为均值回归序列)中,增加很可能会随之减少,反之亦然(即,值往往会恢复到均值) 。 这意味着未来价值有回归长期均值的趋势。 图 2 提供了反持续时间序列及其估计的 Hurst 指数的示例。

 图 2 反持久时间序列 (H = 0.043)

        上面绘制的数据的 Hurst 指数估计为 0.043。0 到 0.5 之间的 Hurst 指数值表示反持久行为,该值越接近 0,时间序列恢复到的趋势越强 它的长期意味着价值。

        持久时间序列:在持久时间序列中,值的增加很可能会在短期内增加,而值的减少很可能会在短期内再次减少,图 3 提供了持久时间序列及其估计的 Hurst 指数的示例。

图 3:持续时间序列 (H = 0.95)

        该图显示了纽约证券交易所交易基金的日内价格变动水平数据。 Hurst 指数估计为 0.95,这表明时间序列是持续的。 Hurst 指数值在 0.5 到 1.0 之间表示持续行为; H值越大,趋势越强。

4.结论   

        赫斯特指数是一种有用的统计方法,可用于推断时间序列的属性,而无需对平稳性做出假设。 它在与其他技术结合使用时最有用,并且已应用于广泛的行业。 例如,赫斯特指数与技术指标配对,以做出有关金融市场中的证券交易的决策; 它广泛应用于医疗保健行业,与机器学习技术相结合来监测脑电图信号。 赫斯特指数甚至可以应用于生态学,用于对种群进行建模。

5.参考文献

  1. H.E. Hurst, 1951, “Long-term storage of reservoirs: an experimental study,” Transactions of the American Society of Civil Engineers, Vol. 116, pp. 770-799.
  2. Bo Qian, Khaled Rasheed, 2004, “Hurst Exponent and financial market predictability,” IASTED conference on “Financial Engineering and Applications”(FEA 2004), pp. 203-209,
  3. Mandelbrot, Benoit B., 2004, “The (Mis)Behavior of Markets, A Fractal View of Risk, Ruin and Reward,” Basic Books, 2004.
### 赫斯特指数概念 赫斯特指数Hurst Exponent),记作 \( H \),用于衡量时间序列的长期依赖性和自相似性。当 \( H=0.5 \) 时,表示该时间序列为随机游走;\( H>0.5 \) 表明存在持久性,即未来趋势可能延续当前趋势;而 \( H<0.5 \) 则意味着反持续性,表明未来的变动倾向于逆转现有模式[^2]。 ### MATLAB 中赫斯特指数计算方法 为了估计赫斯特指数,在MATLAB中可以通过对数-对数图拟合来实现: 1. **准备数据** 假设有一个时间序列 `data` 需要分析其赫斯特指数特性。 ```matlab % 假设 data 是给定的时间序列数组 ``` 2. **构建重标极差(R/S)分析函数** R/S 分析是一种常用的方法之一,通过此过程可以得到不同子区间长度下的 R/S 统计量并绘制相应的对数坐标图形。 ```matlab function [hurstExp] = compute_hurst(data) n = length(data); tau = floor(n ./ (2 .^(0:floor(log2(n))))); % 初始化变量存储每种tau对应的RS值 rs_values = zeros(size(tau)); for i = 1:length(tau) m = tau(i); segments = ceil(double(n)/m); mean_series = nanmean(reshape([data; NaN(mod(-n,m),1)], m, [])); detrended_data = reshape(data', m, []) - repmat(mean_series',[ones(m,1)]); cumulative_deviation = cumsum(detrended_data(:)); range_value = max(cumulative_deviation,[],'all') - min(cumulative_deviation,[],'all'); std_value = std(data); if ~isempty(range_value)&&~isempty(std_value)&&(std_value~=0) rs_values(i)=range_value/std_value; end end p=polyfit(log(tau'),log(rs_values),1); hurstExp = p(1); end ``` 上述代码定义了一个名为 `compute_hurst` 的函数,它接收一个一维数值型向量作为输入参数,并返回估算出来的赫斯特指数。这里采用的是基于重标极差法(Rescaled Range Analysis)的一种简化版本来进行赫斯特指数的评估[^1]。 3. **调用函数获取结果** 最后只需要简单地调用这个函数即可获得所需的结果。 ```matlab hurstExponentValue = compute_hurst(data); disp(['The estimated Hurst exponent is ', num2str(hurstExponentValue)]); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值