首页 > 其他分享 >R语言中的马尔可夫区制转移(Markov regime switching)模型|附代码数据

R语言中的马尔可夫区制转移(Markov regime switching)模型|附代码数据

时间:2024-01-05 18:11:53浏览次数:30  
标签:01 模型 probs switching 马尔可夫 100 Markov data 区制

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

原文出处:拓端数据部落公众号

最近我们被客户要求撰写关于马尔可夫区制转移模型的研究报告,包括一些图形和统计输出。

金融分析师通常关心检测市场何时“发生变化”:几个月或至几年内市场的典型行为可以立即转变为非常不同的行为。投资者希望及时发现这些变化,以便可以相应地调整其策略,但是这样做可能很困难。

RHmmCRAN不再可用,因此我想使用其他软件包复制功能实现马尔可夫区制转移(Markov regime switching)模型从而对典型的市场行为进行预测,并且增加模型中对参数的线性约束功能。

 

  r

load.packages('quantmod')
y=returns
ResFit = HMM(y, nStates=2)
DimObs = 1
  r
matplot(fb$Gamma, type='l', main='Smoothed Probabilities', ylab='Probability')
		legend(x='topright', c('State1','State2'),  fill=1:2, bty='n')

 

 

  r

	fm2 = fit(mod, verbose = FALSE)

使用logLik在迭代69处收敛:125.6168

 

  r
	probs = posterior(fm2)

	layout(1:2)
	plot(probs$state, type='s', main='Implied States', xlab='', ylab='State')
	
	matplot(probs[,-1], type='l', main='Probabilities', ylab='Probability')
		legend(x='topright', c('State1','State2'),  fill=1:2, bty='n')

 

  r
	#*****************************************************************
	# #添加一些数据,看看模型是否能够识别状态	#****************************************************************** 
	bear2  = rnorm( 100, -0.01, 0.20 )
	bull3 = rnorm( 100, 0.10, 0.10 )
	bear3  = rnorm( 100, -0.01, 0.25 )
	true.states = c(true.states, rep(2,100),rep(1,100),rep(2,100))
	y = c( bull1, bear,  bull2, bear2, bull3, bear3 )

DimObs = 1

  r

	plot(data, type='h', x.highlight=T)
		plota.legend('Returns + Detected Regimes')

 

  r
#*****************************************************************
# 加载历史价格
#****************************************************************** 
data = env()
getSymbols('SPY', src = 'yahoo', from = '1970-01-01', env = data, auto.assign = T)

price = Cl(data$SPY)
	open = Op(data$SPY)
ret = diff(log(price))
	ret = log(price) - log(open)

atr = ATR(HLC(data$SPY))[,'atr']

fm2 = fit(mod, verbose = FALSE)

使用logLik在迭代30处收敛:18358.98

  r
print(summary(fm2))

 

   
Initial state probabilties model pr1 pr2 pr3 pr4 0 0 1 0

Transition matrix toS1 toS2 toS3 toS4 fromS1 9.821940e-01 1.629595e-02 1.510069e-03 8.514403e-45 fromS2 1.167011e-02 9.790209e-01 8.775478e-68 9.308946e-03 fromS3 3.266616e-03 8.586650e-47 9.967334e-01 1.350529e-69 fromS4 3.608394e-65 1.047516e-02 1.922545e-130 9.895248e-01

Response parameters Resp 1 : gaussian Resp 2 : gaussian Re1.(Intercept) Re1.sd Re2.(Intercept) Re2.sd St1 2.897594e-04 0.006285514 1.1647547 0.1181514 St2 -6.980187e-05 0.008186433 1.6554049 0.1871963 St3 2.134584e-04 0.005694483 0.4537498 0.1564576 St4 -4.459161e-04 0.015419207 2.7558362 0.7297283

 	Re1.(Intercept)	Re1.sd	Re2.(Intercept)	Re2.sd
St1	0.000289759401378951	0.00628551404616354	1.16475474419891	0.118151350440916
St2	-6.98018749098021e-05	0.00818643307634358	1.65540488736983	0.187196307284941
St3	0.000213458358141314	0.00569448330115608	0.453749781945066	0.156457606460757
St4	-0.00044591612667264	0.0154192070819596	2.75583620018895	0.72972830143278

 

  r
probs = posterior(fm2)

print(head(probs))
   
rownames(x)	state	S1	S2	S3	S4
1	3	0	0	1	0
2	3	0	0	1	0
3	3	0	0	1	0
4	3	0	0	1	0
5	3	0	0	1	0
6	3	0	0	1	0

 

 

  r
layout(1:3)
plota(temp, type='l', col='darkred')
	plota.legend('Market Regimes', 'darkred')

 

  r
layout(1:4)


最受欢迎的见解

1.用R语言模拟混合制排队随机服务排队系统

2.R语言中使用排队论预测等待时间

3.R语言中实现马尔可夫链蒙特卡罗MCMC模型

4.R语言中的马尔科夫机制转换(Markov regime switching)模型

5.matlab贝叶斯隐马尔可夫hmm模型

6.用R语言模拟混合制排队随机服务排队系统

7.Python基于粒子群优化的投资组合优化

8.R语言马尔可夫转换模型研究交通伤亡人数事故预测

9.用机器学习识别不断变化的股市状况——隐马尔可夫模型的应用

 

标签:01,模型,probs,switching,马尔可夫,100,Markov,data,区制
From: https://www.cnblogs.com/tecdat/p/17947794

相关文章

  • R语言离散时间马尔可夫链(Markov chain)模型分类案例可视化分析
    全文链接:https://tecdat.cn/?p=34576原文出处:拓端数据部落公众号有许多用于马尔可夫链的复杂应用。这些包括用于将多态模型拟合为面板数据的msm和SemiMarkov,用于生存分析应用的mstate,用于估计3状态进行性疾病模型的转移概率的TPmsm,用于将马尔科夫模型应用于健康护理经济应用的he......
  • Continuous-Time Markov Chain
    1.Definitions​ Definition1. Wesaytheprocess\(\{X(t),t\ge0\}\)isacontinuous-timeMarkovchainifforall\(s,t\ge0\)andnonnegativeintegers\(i,j,x(u),0\leu<s\)\[\begin{align}P\{X(t+s)&=j\|\X(s)=i,X(u)=x(u),0\leu&l......
  • 马尔可夫Markov区制转移模型分析基金利率|附代码数据
    全文下载链接:http://tecdat.cn/?p=19611最近我们被客户要求撰写关于马尔可夫Markov区制转移模型的研究报告,包括一些图形和统计输出。过程会随着时间的推移而发展,结果会发生变化考虑一下经济衰退和扩张。在衰退开始时,产出和就业率下降并保持较低水平,然后,产出和就业率增加。从统......
  • A Latent Hidden Markov Model for Process Data读文献笔记
    【个人笔记】:笔记(ALatentHiddenMarkovModelforProcessData)\SummaryResponseprocessdatafromcomputer-basedproblem-solvingitemsdescriberespondents'problem-solvingprocessesassequencesofactions.Suchdataprovideavaluablesourcefor......
  • Markov Decision Process Model Based on Value Iteration
    TheoriesMarkovDecisionProcessGenerally,wenotesaMDPmodelas\((S,A,T_a,R_a,\gamma)\).Itstransitionfunctionis\(T_a(s,s')=\Pr(s_{t+1}|s_t=s,a_t=a)\),rewardfunctionis\(R_a(s,s')\).Andactionschoosingsatisfiesaspec......
  • Layer 2 Switching Basic
    Layer2SwitchingBasicRepeater(中继器)BNS最早的拓扑网络方式,只能连接在两个终端。工作原理放大信号Hub(集线器)集线器与中继器的区别:中继器只能连接两个终端集线器可连接多个终端半双工(单向通信)就像对讲机一样,同一时间只允许单项通讯,一方通讯完毕另一方能讲话----......
  • 拓端tecdat|R语言代写使用马尔可夫链Markov Chain, MC来模拟抵押违约
    这篇文章的目的是将我在夜班学习的材料与我的日常工作和R相结合。如果我们有一些根据固定概率随时间在状态之间切换的对象,我们可以使用马尔可夫链 * 来模拟该对象的长期行为。一个很好的例子是抵押贷款。在任何给定的时间点,贷款都有违约概率,保持最新付款或全额偿还。总的来说,我们......
  • 磁盘分区制作LVM
    磁盘分区制作LVM查看磁盘空间可以看到sdb盘有5.5.个Tlsblk创建分区想要创建1T的分区,可以这么做先输入命令fdisk/dev/sdb然后顺序输入n和p和+1024G和w来创建出1T的分区截图参考创建PV,VG,LV接下里创建PV,VG,LV并挂载命令pvcreate/dev/sdb1vgcreatevg1/dev/sdb1l......
  • MIT 6.S081 Thread switching
    Multiplexingxv6通过将cpu从一个进程切换到另一个进程来实现multiplex(多路复用),进程的切换会在两种情形下发生:xv6的sleep与wakeup机制在进程等待IO完成或者等待子进程退出又或者在sleep系统调用中等待的时候切换进程。xv6会周期性地强制切换进程,从而应对那些长时......
  • Matlab马尔可夫区制转换动态回归模型估计GDP增长率|附代码数据
    原文链接:http://tecdat.cn/?p=19918最近我们被客户要求撰写关于马尔可夫区制转换动态回归的研究报告,包括一些图形和统计输出。本文估计实际GDP增长率的两状态Markov区制转换动态回归模型  ( 点击文末“阅读原文”获取完整代码数据******** )。创建模型进行估计通过指定转移......