R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证指数收益时间序列...

全文链接:http://tecdat.cn/?p=31162

最近我们被客户要求撰写关于SV模型的研究报告,包括一些图形和统计输出点击文末“阅读原文”获取完整代码数据)。

相关视频

本文做SV模型,选取马尔可夫蒙特卡罗法(MCMC)、正则化广义矩估计法和准最大似然估计法估计。

模拟SV模型的估计方法:

sim <- svsim(1000,mu=-9, phi = 0.97, sigma = 0.15)print(sim)summary(sim)

ef4b320fd170a150efac30e1913ebad8.png

plot(sim)

d6de3d1257932ac36c67b2c9a5f76b80.png

绘制上证指数收益时间序列图、散点图、自相关图与偏自相关图

我们选取上证指数5分钟高频数据:

data=read.csv("上证指数-5min.csv",header=TRUE)
#open:开盘价  close:收盘价 vol:成交量 amount:成交额
head(data,5)  #观察数据的头5行
tail(data,5)  #观察数据的最后5行
Close.ptd<-data$close
Close.rtd<-diff(log(Close.ptd))  #指标一:logReturn
rets=diff(data$close)/data$close[-length(data$close)]  #指标二:Daily Returns,我们选择Daily Returns
library(tseries)
adf.test(rets)## 绘制上证指数收益时间序列图、散点图、自相关图与偏自相关图
Close.ptd.ts<-ts(Close.ptd,start=c(2005,1,4),freq=242)  
plot(Close.ptd.ts, type="l",main="(a) 上证指数日收盘价序列图",acf(Close.rtd,main='',xlab='Lag',ylab='ACF',las=1)    
title(main='(b) 上证指数收益率自相关检验',cex.main=0.95)pacf(Close.rtd,main='',xlab='Lag',ylab='PACF',las=1)               
title(main='(c) 上证指数收益率偏自相关检验',cex.main=0.95)
def.off## Q-Q图、经验累积分布ecdf图、密度图、直方图 
qqnorm(Close.rtd,main="(a) 上证指数收益率Q-Q图",cex.main=0.95,xlab='理论分位数',ylab='样本分位数')            
qqline(Close.rtd)                                 
#经验累积分布ecdf图
plot(ECD,lwd = 2,main="(b) 上证指数收益率累积分布函数图",cex.main=0.95,las=1) 
xx <- unique(sort(c(seq(-3, 2, length=24), knots(ECD))))         
abline(v = knots(ECD), lty=2, col='gray70')                           
x1 <- c((-4):3)             # 设定区间范围
lines(x1,pnorm(x1,mean(Close.rtdC[1:10]),sd(Close.rtd[1:10])))  
#密度图
plot(D, main="(c) 上证指数核密度曲线图 ",xlab="收益", ylab='密度',xlim = c(-7,7), ylim=c(0,0.5),cex.main=0.95)       
polygon(D, col="gray", border="black")                 
curve(dnorm,lty = 2, add = TRUE)                        lines(x2,dnorm(x2,mean=0,sd=1))      
abline(v=0,lty = 3)                                     
legend("topright", legend=c("核密度","正态密度"),lty=c(1,2),cex=0.5)
#直方图
hist(Close.rtd[1:100],xaxt='n',main='(d) 上证指数收益率直方图',xlab='收益/100',ylab='密度', freq=F,cex.main=0.95,las=1)        
lines(x2,dnorm(x2,mean(Close.rtd[1:100]),sd(Close.rtd[1:100]))) 
axis(1,at=axTicks(1),labels = as.integer(axTicks(1))/100 )

736daffad7936c14765db0917ee3fef2.png

c0397bd076db103878d427d265198852.png

b4cb1efff6a5688f3c795e802f9453df.png


点击标题查阅往期内容

9964e26614fc7a8ed8a82030cc7f296f.jpeg

【视频】随机波动率SV模型原理和Python对标普SP500股票指数预测|数据分享

outside_default.png

左右滑动查看更多

outside_default.png

01

d2f58cdc97e0497cb1a8a072e55df57d.png

02

5744e95c151ee2af12130a37f1ab3eb6.png

03

e513a923d19da09ed976979f24fe441d.png

04

fc3035a60701d647b9ba541c88e0d66a.png

SV模型

{N <- length(logReturn)mu <- (1/N)*sum(logReturn)sqrt((1/N) * sum((logReturn - mu)^2))
}return=-1.5*log(h)-y^2/(2*h)-(log(h)-mu)^2/(2*sigma2)
}

马尔可夫链蒙特卡罗估计

该模型使用了Kastner和Fruhwirth-Schnatter所描述的算法。使用的R代码是:

###Markov Chain Monte Carlosummary(mcmc)

5e8f914dafd3bb3b6a323a592a1bb834.png

准最大似然估计

SV模型可以用QML方法在R中用许多不同的状态空间和Kalman滤波包来估计。

a0=c(parm[1])P0=matrix(parm[3]^2/(1-parm[2]^2))dt=matrix(parm[1]*(1-parm[2]))ct=matrix(-1.27)Tt=matrix(parm[2])Zt=matrix(1)HHt=matrix(parm[3]^2)GGt=matrix(pi^2/2)ans<-fkf(a0=sp$a0,P0=sp$P0,dt=sp$dt,ct=sp$ct,Tt=sp$Tt,Zt=sp$Zt,HHt=sp$HHt,GG

b3439ac0efbf00e45968a191990588ac.png

正则化广义矩阵

在R函数中定义矩条件,然后估计参数0。

moments <- c (m1 = sqrt(2/pi)*exp(mu/2 + sig2h/8),m2 = exp(mu +  sig2h/2 ) ,m3 = 2*sqrt ( 2/pi ) * exp( 3*mu/2 + 9*sig2h/8 ) ,gmm(g = sv.moments , x =rets , t0=c(mu=-10, phi=0.9,sigmaeta= 0.2),

2da2330ce70501db7554cdd0680049b0.png


c8838981c3e30ffa4f412f33c5692bc9.png

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证指数收益时间序列》。

点击标题查阅往期内容

HAR-RV-J与递归神经网络(RNN)混合模型预测和交易大型股票指数的高频波动率

Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型

R语言隐马尔可夫模型HMM连续序列重要性重抽样CSIR估计随机波动率模型SV分析股票收益率时间序列

马尔可夫Markov区制转移模型分析基金利率

马尔可夫区制转移模型Markov regime switching

时变马尔可夫区制转换MRS自回归模型分析经济时间序列

马尔可夫转换模型研究交通伤亡人数事故时间序列预测

如何实现马尔可夫链蒙特卡罗MCMC模型、Metropolis算法?

Matlab用BUGS马尔可夫区制转换Markov switching随机波动率模型、序列蒙特卡罗SMC、M H采样分析时间序列

R语言BUGS序列蒙特卡罗SMC、马尔可夫转换随机波动率SV模型、粒子滤波、Metropolis Hasting采样时间序列分析

matlab用马尔可夫链蒙特卡罗 (MCMC) 的Logistic逻辑回归模型分析汽车实验数据

stata马尔可夫Markov区制转移模型分析基金利率

PYTHON用时变马尔可夫区制转换(MRS)自回归模型分析经济时间序列

R语言使用马尔可夫链对营销中的渠道归因建模

matlab实现MCMC的马尔可夫转换ARMA - GARCH模型估计

R语言隐马尔可夫模型HMM识别不断变化的股票市场条件

R语言中的隐马尔可夫HMM模型实例

用机器学习识别不断变化的股市状况—隐马尔科夫模型(HMM)

Matlab马尔可夫链蒙特卡罗法(MCMC)估计随机波动率(SV,Stochastic Volatility) 模型

MATLAB中的马尔可夫区制转移(Markov regime switching)模型

Matlab马尔可夫区制转换动态回归模型估计GDP增长率

R语言马尔可夫区制转移模型Markov regime switching

stata马尔可夫Markov区制转移模型分析基金利率

R语言如何做马尔可夫转换模型markov switching model

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

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

384d655c4e75854c2ae3ec8afe1e1acf.png

a06b2ff1f5cb81a2df13dc151527557f.jpeg

8bd21994c71d4d2cdd7c564cb3c29370.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/95106.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

移除链表元素_每日一题

“路虽远&#xff0c;行则将至” ❤️主页&#xff1a;小赛毛 ☕今日份刷题&#xff1a;移除链表元素 题目描述&#xff1a; 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例1&…

Linux系统Ubuntu以非root用户身份操作Docker的方法

本文介绍在Linux操作系统Ubuntu版本中&#xff0c;通过配置&#xff0c;实现以非root用户身份&#xff0c;进行Docker各项操作的具体方法。 在文章Linux系统Ubuntu配置Docker详细流程&#xff08;https://blog.csdn.net/zhebushibiaoshifu/article/details/132612560&#xff0…

在VScode中使用sftp传输本地文件到服务器端

安装SFTP 在VScode的扩展中安装sftp 注意这里需要在你没连接服务器的状态下安装&#xff0c;即本机需要有sftp 配置传输端口 安装成功后&#xff0c;使用快捷键"ctrlshiftp",输入sftp&#xff0c;选择Config 根据自己的实际情况修改配置文件&#xff0c;主要改h…

【zookeeper】zookeeper介绍

分布式协调技术 在学习ZooKeeper之前需要先了解一种技术——分布式协调技术。那么什么是分布式协调技术&#xff1f;其实分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制&#xff0c;让他们有序的去访问某种临界资源&#xff0c;防止造成"脏数据"的…

leetcode 189. 轮转数组

2023.9.3 k的取值范围为0~100000&#xff0c;此时需要考虑到两种情况&#xff0c;当k为0时&#xff0c;此时数组不需要轮转&#xff0c;因此直接return返回&#xff1b;当k大于等于数组nums的大小时&#xff0c;数组将会转为原来的数组&#xff0c;然后再接着轮转&#xff0c;此…

vue3中axios的使用方法

在Vue 3中使用axios发送HTTP请求的方法与Vue 2中基本相同。首先&#xff0c;需要安装axios库&#xff1a; npm install axios然后&#xff0c;在Vue组件中引入axios&#xff1a; import axios from axios;接下来&#xff0c;可以在Vue组件的方法中使用axios发送HTTP请求。例如…

vue 从后端取图片返回发现是两张,但自己只要一张图片 怎么操作

1.用JavaScript里边常用的分隔符去操作 item.original_status.user.profile_image_url.split(,)[0] <van-imagewidth"100"height"100":src"item.original_status.user.photo_domain item.original_status.user.profile_image_url.split(,)[0]&quo…

2023年高教社杯 国赛数学建模思路 - 案例:最短时间生产计划安排

文章目录 0 赛题思路1 模型描述2 实例2.1 问题描述2.2 数学模型2.2.1 模型流程2.2.2 符号约定2.2.3 求解模型 2.3 相关代码2.4 模型求解结果 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 最短时…

阿里云效和阿里在线idea使用

阿里云效 https://flow.aliyun.com/all?page1 阿里在线idea&#xff1a;https://ide.aliyun.com/ 在云效中创建的项目可以在在线idea 打开 运行中的项目 设置ssh 设置以后可以使用云效率的代码构建来构建代码 设置 添加自有云或者体验5h

AR界安卓在中国,Rokid引爆空间计算狂潮

击关注 文丨刘雨琦 你可能很难想象&#xff0c;在一个没有显示屏也没有鼠标的空间&#xff0c;仅凭一副AR眼镜和一台口袋主机&#xff0c;就能完成一篇5000字的文章。 没错&#xff0c;8月26日&#xff0c;在2023 Rokid Jungle 新品发布会现场&#xff0c;这样的场景正在真实…

对分库分表进行批量操作

对ShardingJDBC基础了解&#xff1a;https://blog.csdn.net/m0_63297646/article/details/131894472 对批量操作案例&#xff1a;https://blog.csdn.net/m0_63297646/article/details/131843517 分为db0和db1两个库&#xff0c;每个库都有三张订单表&#xff0c;分表键根据年份…

JavaScript 生成 16: 9 宽高比

这篇文章只是对 for 循环一个简单应用&#xff0c;没有什么知识含量。 可以跳过这篇文章。 只是我用来保存一下我的代码&#xff0c;保存在本地我嫌碍眼&#xff0c;总想把他删了。 正文部分 公式&#xff1a;其中 width 表示宽度&#xff0c;height 表示高度 16 9 w i d t…