文章目录

  • 一、前言
    • 1. R/S分析法起源
    • 2. Hurst指数定义
    • 3. R/S 分析法 Hurst 指数的估计
  • 二、算法伪码
  • 三、Python代码
  • 四、代码测试
    • 1. 数据
    • 2. 结论
  • 五、总结

一、前言

代码附在文末了

1. R/S分析法起源

“Hurst 指数”或“Hurst 系数”由研究员 Harold Edwin Hurst 在研究罗河旱涝更替的情况时,为研究水利的实际问题发明,以衡量时间序列的长期记忆能力。Hurst 指数又被称为“指数依赖性”或“指数长期依赖性”,它能够量化时间序列的相对趋势。

现在有很多 Hurst 指数估计值的算法,最有名的就是 Mandelbrot 和 Wallis 基于 Hurst 的水利研究结果使用的重标极差 R/S 方法

2. Hurst指数定义

设有一个序列 X={X1,X2,…}X = \{X_1, X_2, … \}X={X1​,X2​,…} ,nnn 是观测到的时间跨度,R(n)R(n)R(n) 是前 nnn 个值的取值范围,S(n)S(n)S(n) 是它们的标准差,EEE 符号表示求期望值,CCC 是一个常数。则序列 XXX 的 Hurst指数(后面以 HHH 表示)的原始定义如下式所示:

E(R(n)S(n))=CnH,whilen→∞(1)E(\dfrac{R(n)}{S(n)})\ =\ Cn^H,\ \ \ \ while\ n \rightarrow \infty \tag{1} E(S(n)R(n)​) = CnH,    while n→∞(1)

3. R/S 分析法 Hurst 指数的估计

利用 R/S 分析法,把一个长度总共为 NNN 的时间序列分成长度分别为 n={N,N2,N4,…}n = \{N, \dfrac{N}{2}, \dfrac{N}{4}, … \}n={N,2N​,4N​,…} 的短序列。对于每一个 nnn,便可以计算其重标极差 R(n)S(n)\dfrac{R(n)}{S(n)}S(n)R(n)​。

又因为数据的 Hurst 指数满足幂定律(1)式 ,便可以画出 log[R(n)S(n)]log[\dfrac{R(n)}{S(n)}]log[S(n)R(n)​] 关于 lognlog\ nlog n 的图形,通过拟合直线的斜率得到 HHH 的值。


二、算法伪码

任意长度序列(n≥8n \ge 8n≥8) Hurst 指数计算流程:


三、Python代码

代码中使用到了 numpy 库:

pip install -i https://mirrors.aliyun.com/pypi/simple numpy

计算 Hurst 指数代码如下:

def Hurst(ts):'''Parameters----------ts : Iterable Object.A time series or a list.Raises------ValueErrorIf input ts is not iterable then raise error.Returns-------H : FloatThe Hurst-index of this series.'''if not isinstance(ts, Iterable):raise ValueError("This sequence is not iterable !")ts = np.array(ts)# N is use for storge the length sequenceN, RS, n = [], [], len(ts)while (True):N.append(n)# Calculate the average value of the seriesm = np.mean(ts)# Construct mean adjustment sequencemean_adj = ts - m# Construct cumulative deviation sequencecumulative_dvi = np.cumsum(mean_adj)# Calculate sequence rangesrange = max(cumulative_dvi) - min(cumulative_dvi)# Calculate the unbiased standard deviation of this sequenceunbiased_std_dvi = np.std(ts)# Calculate the rescaled range of this sequence under n lengthRS.append(srange / unbiased_std_dvi)# While n < 4 then breakif n < 4:break# Rebuild this sequence by half lengthts, n = HalfSeries(ts, n)# Get Hurst-index by fit log(RS)~log(n)H = np.polyfit(np.log10(N), np.log10(RS), 1)[0]return H

其中重新生成序列的代码如下:

def HalfSeries(s, n):'''if length(X) is odd:X <- {(X1 + X2) / 2, ..., (Xn-2 + Xn-1) / 2, Xn}n <- (n - 1) / 2else:X <- {(X1 + X2) / 2, ..., (Xn-1 + Xn) / 2}n <- n / 2return X, n'''X = []for i in range(0, len(s) - 1, 2):X.append((s[i] + s[i + 1]) / 2)# if length(s) is oddif len(s) % 2 != 0:X.append(s[-1])n = (n - 1) // 2else:n = n // 2return [np.array(X), n]

四、代码测试

1. 数据

选取一段比特币的价格数据,可以认定是一段有自相关性质的时间序列,其数据如下:


编写代码:

X, Y = [], []
for i in range(14, 501):    X.append(i)Y.append(Hurst([random() for i in range(k)]))

以连续14日(两周)的数据作为单个序列,计算每个序列的 Hurst 指数,绘制图像如下:

2. 结论

蓝色曲线为比特币的 Hurst 指数数据,其 Hurst 指数在 0.75 左右,说明 14 日内比特币的价格数据是具有一定自相关能力的时间序列。

黄色曲线为随机序列的 Hurst 指数,其值稳定在 0.5 左右,符合随机游走时间序列的 Hurst 指数接近于 0.5 的结论。


五、总结

不喜欢写总结。

采用R/S分析法的Hurst指数估计算法——Python实现相关推荐

  1. 修正r s分析法matlab程序,关于R/S分析程序用法

    看到有人用下面的源代码,但为何有时候求出的值是负数,请各位帮忙,我是新接触最好能稍微具体一点讲解,谢谢. function [logRS,logERS,V]=RSana(x,n,method,q) % ...

  2. 基于倒谱法、自相关法、短时幅度差法的基音频率估计算法(MATLAB及验证)

    基音频率检测 一.概念 何为基音周期?人在发音时,根据声带是否振动可以将语音信号分为清音和浊音两种.浊音携带大量的能量,因此又被称为有声语音,其在时域上有明显的周期性.而清音类似于白噪声,没有明显的周 ...

  3. 【数学建模】层次分析法

    层次分析法 引例 层次分析法介绍 成对比较阵和一致性检验 组合权向量 层次分析法步骤 代码实现 RI 一致性检验 层次单排序 计算组合权向量(层次总排序) 经典案例 代码实现 练习训练 参考文献 引例 ...

  4. 鱼骨图分析法实际案例_【管理工具详解】鱼骨图分析法

    第一部分 鱼骨头分析法 一.鱼骨图分析法的由来 鱼骨图是由日本管理大师石川馨先生所发明出来的,故又名石川图.鱼骨图是一种发现问题"根本原因"的方法,它也可以称之为"Ish ...

  5. 鱼骨图分析法实际案例_让你头脑更精明的十种思考法:鱼骨图

    鱼骨图又名特性因素图是由日本管理大师石川馨先生所发展出来的,故又名石川图.鱼骨图是一种发现问题"根本原因"的方法,它也可以称之为"因果图".鱼骨图原本用于质量管 ...

  6. 什么是鱼骨图分析法,详细解析

    一般来说,我们所了解的思维导图都是围绕一个中心发散开分支的,而鱼骨图是另外一种形式展开.它看上去有些像鱼骨,问题标在"鱼头"处,原因标在"鱼骨"上," ...

  7. 使用等价类划分法和边界值分析法设计出学生成绩的测试用例

    等价类划分法和边界值分析法的结合使用 1.等价类划分法简介 1.1基本思想 1.2划分基础 1.3等价划分类的规则 1.4测试用例的设计步骤与实例 1.5三角形问题的等价类划分法设计测试用例. 1.6 ...

  8. 信用5C分析法(转载)

    1 信用5C分析法 2 进行信用分析的五个方面 3 企业了解"5C"的三种途径 4 实例分析 5 信用5C分析的应用意义 信用5C分析法 西方商业银行在长期的经营时间中,总结归纳出 ...

  9. 灰色关联分析法——Excel实操

    把信息完全明确的系统称为白色系统,把信息完全不明确的系统称为黑色系统,信息部分明确.部分不明确的系统称为灰色系统.当事物之间.因素之间.相互关系比较复杂,样本个数n较少时,采用灰色关联分析法. 灰色关 ...

  10. 如何挖掘事实真相?向丰田学习 “五WHY分析法”

    所谓5why分析法,又称"5问法",也就是对一个问题点连续以5个"为什么"来发问,以追究其根本原因.虽然是"5why分析法",但使用时不限定 ...

最新文章

  1. Google Brain团队最新视频介绍
  2. 智能车竞赛线上比赛部分镜头
  3. U2L蔚然成风,曙光为什么能抢了VMware的风头?
  4. [python学习] 专题七.网络编程之套接字Socket、TCP和UDP通信实例
  5. mysql cannot connect_【IT专家】mysql远程访问cannot connect(10038) 问题解决的过程
  6. Java Character 方法
  7. Android入门之文件系统操作(一)简单的文件浏览器
  8. Adaptive Images : 为不同的屏幕尺寸提供不同的图片
  9. mysql innodb row_format_INNODB物理行结构(ROW_FORMAT=COMPACT) | 学步园
  10. sql server期中综合练习
  11. 微信语音内容怎么录制,电脑如何内录
  12. 删除ubuntu后修复win7系统的引导
  13. 备案指的是域名还是服务器?
  14. 织梦dedecms响应式抖音培训课程新闻资讯类网站模板(自适应手机移动端)
  15. 大数据背景下网络舆情监督机制的研究(非原创)
  16. 微信小程序生成paySign
  17. java的mergesort函数_归并排序 - Algorithms, Part I, week 3 MERGESORTS
  18. Web前端开发必备网站
  19. docker golang buid rstp2webrtc
  20. 深度学习系列-前言:深度学习的好教程

热门文章

  1. 推荐几个图标搜索网站
  2. 番薯网让我很不爽的几处设计
  3. 胡乱学Java_遇见类与对象
  4. 旧词新解:项目与产品,项目经理与产品经理
  5. git分支的拉取和获取master分支最新代码
  6. 互联网公益陷入信任危机,智慧公益能否力挽狂澜?
  7. 大数据—价值体现在AI、BI、CI和DI
  8. 设置计算机网络文件共享,局域网共享文件设置方法图文教程
  9. iPhone上塔罗牌测试软件,塔罗牌占卜:测Ta对你是用情至深还是一时兴起?准到没朋友!...
  10. 电阻式触摸屏的基本结构和驱动原理