原文链接:http://tecdat.cn/?p=9686

 


在本文中,将对“牛市”和“熊市”两个独立机制下的市场收益进行模拟。隐马尔可夫模型识别处于特定状态的概率。

在概述了模拟数据的过程之后,将隐马尔可夫模型应用于股票数据,以确定基本机制。

市场体制

将隐马尔可夫模型应用于状态检测是棘手的,因为该问题实际上是无监督学习的一种形式。也就是说,没有“基础事实”或标记数据用来“训练”模型。是否有两个,三个,四个或更多个“真正的”隐藏市场机制?

这些问题的答案在很大程度上取决于要建模的资产类别,时间范围的选择以及所使用数据的性质。

模拟数据

在本节中,从独立的高斯分布中生成模拟的收益率数据,每个分布都代表“看涨”或“看涨”的市场机制。看涨收益来自均值正且方差低的高斯分布,而看跌收益来自均值略为负但方差较高的高斯分布。

第一个任务是安装depmixS4和quantmod库,然后将它们导入R。

install.packages('depmixS4')
install.packages('quantmod')
library('depmixS4')
library('quantmod')
set.seed(1)

牛市分布N(0.1,0.1)而空头市场分布为N(−0.05,0.2)。通过以下代码设置参数:

#创建牛市和熊市收益分布
Nk_lower <- 50
Nk_upper <- 150
bull_mean <- 0.1
bull_var <- 0.1
bear_mean <- -0.05
bear_var <- 0.2
所述Nk值是随机选择的:
# 为每个方案创建时间列表(以天为单位)
days <- replicate(5, sample(Nk_lower:Nk_upper, 1))

第k个周期的收益是随机抽取的:

# 创建各种牛市和熊市收益
market_bull_1 <- rnorm( days[1], bull_mean, bull_var )
market_bear_2 <- rnorm( days[2], bear_mean, bear_var )
market_bull_3 <- rnorm( days[3], bull_mean, bull_var )
market_bear_4 <- rnorm( days[4], bear_mean, bear_var )
market_bull_5 <- rnorm( days[5], bull_mean, bull_var )

创建真实状态

# 创建真实的机制状态列表和完整的收益列表
true_regimes <- c( rep(1,days[1]), rep(2,days[2]), rep(1,days[3]), rep(2,days[4]), rep(1,days[5]))
returns <- c( market_bull_1, market_bear_2, market_bull_3, market_bear_4, market_bull_5)

绘制收益图显示机制切换之间均值和方差的明显变化:

plot(returns, type="l", xlab='', ylab="Returns") 
[R

在此阶段,可以使用Expectation Maximization算法指定隐马尔可夫模型并进行拟合:

在模型拟合之后,可以绘制处于特定状态的后验概率。post_probs包含后验概率。

财务数据

在本节中,将执行两个单独的建模任务。第一种将使HMM具有两个机制状态以拟合S&P500收益率,而第二个将利用三个状态。比较两个模型之间的结果。

使用quantmod库下载:

绘制时间序列:
plot(gspcRets)
[

使用EM算法拟合隐马尔可夫模型。每种方案的收益率和后验概率作图:

请注意,在2004年和2007年期间,市场较为平稳,因此在此期间,隐马尔可夫模型第二种机制的可能性较高。然而,在2007年至2009年之间发生次贷危机。

市场在2010年变得较为平静,但在2011年又出现了更多动荡,这导致HMM再次给第一类机制带来了较高的后验概率。2011年之后,市场再次趋于平静,HMM始终给第二种机制以高概率。2015年,市场再次变得更加混乱,这反映在HMM机制之间的切换增加。

由于该模型考虑三个单独的机制,因此在2004-2007年的平静时期导致了机制2和机制3之间的转换。但是,在2008、2010和2011年的动荡时期,机制1主导着后验概率,表明高度波动状态。在2011年之后,模型恢复为在机制2和机制3之间切换。

拓端tecdat|使用R语言进行机制检测的隐马尔可夫模型HMM相关推荐

  1. R语言隐马尔可夫模型HMM识别股市变化分析报告

    了解不同的市场状况如何影响您的策略表现可能会对您的收益产生巨大的影响.最近我们被客户要求撰写关于HMM的研究报告,包括一些图形和统计输出. 某些策略在波动剧烈的市场中表现良好,而其他策略则需要强劲而平 ...

  2. 隐马尔科夫模型C#语言算法实现

    开发工具: Visual Studio v2010 .NET Framework 4 Client Profile 版本历史: V1.1 2011年06月09日 修正UMDHMM在Baum-Welch ...

  3. 隐马尔可夫(HMM)模型的各种语言实现

    来自 http://sjtutmz.blog.163.com/blog/static/988886602011863723740/

  4. 隐马尔科夫模型c#语言算法实现,HMM学习最佳范例四:隐马尔科夫模型

    四.隐马尔科夫模型(Hidden Markov Models) 1.定义(Definition of a hidden Markov model) 一个隐马尔科夫模型是一个三元组(pi, A, B). ...

  5. 数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用

    发表者:吴军,Google 研究员 前言:隐含马尔可夫模型是一个数学模型,到目前为之,它一直被认为是实现快速精确的语音识别系统的最成功的方法.复杂的语音识别问题通过隐含马尔可夫模型能非常简单地被表述. ...

  6. 隐含马尔可夫模型在语言处理中的应用(Z)

    Original address: http://www.google.com.hk/ggblog/googlechinablog/2006/04/blog-post_1583.html 数学之美 系 ...

  7. 拓端tecdat|bilibili视频流量数据潜望镜

    最近我们被客户要求撰写关于bilibili视频流量的研究报告,包括一些图形和统计输出. 最新研究表明,中国有超过7亿人在观看在线视频内容.Bilibili,被称为哔哩哔哩或简称为B站,是中国大陆第二个 ...

  8. 提升C语言程序运行效率 马尔可夫,计算机程序编程课程设计报告(马尔可夫链算法生成随机可读文本).doc...

    PAGE 1 计算机程序编程课程设计报告 (马尔可夫链算法生成随机可读文本) 引言: 马尔可夫链的数学背景: 马尔可夫链,因安德烈?马尔可夫(A.A.Markov,1856-1922)得名 ,是数学随 ...

  9. 拓端tecdat荣获掘金社区入驻新人奖

    2021年7月,由掘金发起了"入驻成长礼"颁奖活动.本次活动邀请到知名开发者.服务机构代表等业界人士. 据了解,掘金社区"新入驻创作者礼"主要对已经积累了一定历 ...

  10. 拓端tecdat荣获2022年度51CTO博主之星

    相信技术,传递价值,这是51CTO每一个技术创作者的动力与信念,2022 年度,拓端tecdat 作为新锐的数据分析咨询公司,在51CTO平台上,不断的输出优质的技术文章,分享前沿创新技术,输出最佳生 ...

最新文章

  1. 小型的ESP8266-01s WiFi串口模块是否可以下载MicroPython?
  2. bzoj 5092: [Lydsy1711月赛]分割序列
  3. POS 客显 设备 显示 总价 单价 找零 收款 C# SerialPort 法
  4. 【面试】JAVA六种运算符详解及优先级
  5. 被尘封的故事技能点bug_新月纪元稳定版下载-新月纪元bug修复版1.0 修复版
  6. 反序列化层遍历二叉树
  7. gunicorn 几种 worker class 性能测试比较
  8. 一阶电路暂态响应的结果分析。_【2020考研】南京邮电大学813《电路分析》考试大纲...
  9. totolink服务器未响应,TOTOLINK路由器设置后无法上网问题的解决方法
  10. ios pan手势滑动消失动画_IOS UIPanGestureRecognizer手势使用及识别状态UIGestureRecognizerState...
  11. 快速搭建博客:美化主题
  12. 4*4*4光立方制作分享
  13. mac 终极教程,最全,最实用的教程
  14. Synchronized原理(轻量级锁篇)
  15. mysql数据库无法插入中文
  16. 候补购票为旅客购票提供更加快捷的渠道
  17. 在Idea解决找不到sun.misc.BASE64Encoder及sun.misc.BASE64Decoder找不到包
  18. 12V铅酸电池充放电保护板
  19. dingding告警
  20. 联发科MT6582开发板模块/方案开发资料

热门文章

  1. Erlang进程堆垃圾回收机制
  2. redis整理の配置
  3. “相约重渡沟 情定鸡冠洞”消夏养生欢乐行活动
  4. 初始化和清理(垃圾回收器)
  5. 凸优化第三章凸函数 3.4 拟凸函数
  6. C语言之浅析网络包解析
  7. php7.1.1一键安装/配置文件简单优化
  8. 2016美国QCon思考:通过Quora和Spotify案例,直击数据处理背后的魅影
  9. 通过Git WebHooks+脚本实现自动更新发布代码之Shell脚本(二)
  10. Asp.net MVC3.0 入门指南 4 模型 Model