拓端tecdat|R语言随机波动率(SV)模型、MCMC的Metropolis-Hastings算法金融应用:预测标准普尔SP500指数
原文链接:http://tecdat.cn/?p=23991
原文出处:拓端数据部落公众号
在这个例子中,我们考虑随机波动率模型 SV0 的应用,例如在金融领域。
统计模型
随机波动率模型定义如下
并为
其中 yt 是因变量,xt 是 yt 的未观察到的对数波动率。N(m,σ2) 表示均值 m 和方差 σ2 的正态分布。
α、β 和 σ 是需要估计的未知参数。
BUGS语言统计模型
文件内容 'sv.bug'
:
moelfle = 'sv.bug' # BUGS模型文件名
cat(readLies(moelfle ), sep = "\n")
# 随机波动率模型SV_0
# 用于随机波动率模型
var y[t_max], x[t_max], prec_y[t_max]model
{alha ~ dnorm(0,10000)logteta ~ dnorm(0,.1)bea <- ilogit(loit_ta)lg_sima ~ dnorm(0, 1)sia <- exp(log_sigma)x[1] ~ dnorm(0, 1/sma^2)pr_y[1] <- exp(-x[1])y[1] ~ dnorm(0, prec_y[1])for (t in 2:t_max){x[t] ~ dnorm(aa + eta*(t-1]-alha, 1/ia^2)pr_y[t] <- exp(-x[t])y[t] ~ dnorm(0, prec_y[t])}
设置
设置随机数生成器种子以实现可重复性
set.seed(0)
加载模型并加载或模拟数据
sample_data = TRUE # 模拟数据或SP500数据
t_max = 100if (!sampe_ata) {
# 加载数据 tab = read.csv('SP500.csv')y = diff(log(rev(tab$ose)))SP5ate_str = revtab$te[-1])ind = 1:t_maxy = y[ind]SP500_dae_r = SP0dae_tr[ind]SP500_e_num = as.Date(SP500_dtetr)
模型参数
if (!smle_dta) {dat = list(t_ma=ax, y=y)
} else {sigrue = .4; alpa_rue = 0; bettrue=.99;dat = list(t_mx=_mx, sigm_tue=simarue,alpatrue=alhatrue, bet_tue=e_true)
}
如果模拟数据,编译BUGS模型和样本数据
data = mdl$da()
绘制数据
对数收益率
Biips粒子边际Metropolis-Hastings
我们现在运行Biips粒子边际Metropolis-Hastings (Particle Marginal Metropolis-Hastings),以获得参数 α、β 和 σ 以及变量 x 的后验 MCMC 样本。
PMMH的参数
n_brn = 5000 # 预烧/适应迭代的数量
n_ir = 10000 #预烧后的迭代次数
thn = 5 #对MCMC输出进行稀释
n_art = 50 # 用于SMC的nb个粒子
para_nmes = c('apha', 'loit_bta', 'logsgma') # 用MCMC更新的变量名称(其他变量用SMC更新)。
latetnams = c('x') # 用SMC更新的、需要监测的变量名称
初始化PMMH
运行 PMMH
update(b_pmh, n_bun, _rt) #预烧和拟合迭代
samples(oj_mh, ter, n_art, thin=hn) # 采样
汇总统计
summary(otmmh, prob=c(.025, .975))
计算核密度估计
density(out_mh)
参数的后验均值和置信区间
for (k in 1:length(pram_names)) {suparam = su_pmm[[pam_as[k]]]cat(param$q)
}
参数的MCMC样本的踪迹
if (amldata)para_tue = c(lp_tue, log(dt$bea_rue/(-dta$eatru)), log(smtue))
)for (k in 1:length(param_aes)) {smps_pm = tmmh[[paranesk]]plot(samlespram[1,]
PMMH:跟踪样本参数
参数后验的直方图和 KDE 估计
for (k in 1:length(paramns)) {samps_aram = out_mmh[[pramnaes[k]]]hist(sple_param)if (sample_data)points(parm_true)
}
PMMH:直方图后验参数
for (k in 1:length(parm) {kd_pram =kde_mm[[paramames[k]]]plot(kd_arm, col'blueif (smpldata)points(ar_true[k])
}
PMMH:KDE 估计后验参数
x 的后均值和分位数
x_m_mean = x$mean
x_p_quant =x$quant
plot(xx, yy)
polygon(xx, yy)
lines(1:t_max, x_p_man)
if (ame_at) {lines(1:t_ax, x_true)} elselegend(bt='n)
PMMH:后验均值和分位数
x 的 MCMC 样本的踪迹
par(mfrow=c(2,2))
for (k in 1:length) {tk = ie_inex[k]if (sample_data)points(0, dtax_t
}
if (sml_aa) {plot(0legend('center')
}
PMMH:跟踪样本 x
x 后验的直方图和核密度估计
par(mfow=c(2,2))
for (k in 1:length(tie_dex)) {tk = tmnex[k]hist(ot_m$x[tk,]main=aste(t=', t, se='')if (sample_data)points(ata$x_re[t],
}
if (saml_dta) {plot(0, type='n', bty='n', xlegend('centerbty='n')}
PMMH:后边际直方图
par(mfrow=c(2,2))
for (k in 1:length(idx)) {tk =m_dx[k]plot(kmmk]] if (alata)point(dat_r[k], 0)
}
if (aldt) {plot(0, type='n', bty='n', x, pt.bg=c(4,NA)')
}
最受欢迎的见解
1.R语言对S&P500股票指数进行ARIMA + GARCH交易策略
2.R语言改进的股票配对交易策略分析SPY—TLT组合和中国股市投资组合
3.R语言时间序列:ARIMA GARCH模型的交易策略在外汇市场预测应用
4.TMA三均线期指高频交易策略的R语言实现
5.r语言多均线量化策略回测比较
6.用R语言实现神经网络预测股票实例
7.r语言预测波动率的实现:ARCH模型与HAR-RV模型
8.R语言如何做马尔科夫转换模型markov switching model
9.matlab使用Copula仿真优化市场风险
拓端tecdat|R语言随机波动率(SV)模型、MCMC的Metropolis-Hastings算法金融应用:预测标准普尔SP500指数相关推荐
- R语言随机波动率(SV)模型、MCMC的Metropolis-Hastings算法金融应用:预测标准普尔SP500指数...
原文链接:http://tecdat.cn/?p=23991 在这个例子中,我们考虑随机波动率模型 SV0 的应用,例如在金融领域. 统计模型 随机波动率模型定义如下 并为 其中 yt 是因变量,xt ...
- 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险
最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...
- 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测
最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...
- 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系
最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...
- 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例
最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...
- WinBUGS对多元随机波动率SV模型:贝叶斯估计与模型比较
原文链接:http://tecdat.cn/?p=5312 在本文中,我们通过一个名为WinBUGS的免费贝叶斯软件,可以很容易地完成基于似然的多变量随机波动率(SV)模型的估计和比较(点击文末&qu ...
- R语言ARIMA-GARCH波动率模型预测股票市场苹果公司日收益率时间序列
原文链接:http://tecdat.cn/?p=23934 在本文中,我们将尝试为苹果公司的日收益率寻找一个合适的 GARCH 模型(点击文末"阅读原文"获取完整代码数据). 相 ...
- 使用R语言进行Metroplis-in-Gibbs采样和MCMC运行分析
全文链接:http://tecdat.cn/?p=12200 对于许多模型,例如逻辑模型,没有共轭先验分布.因此,吉布斯采样不适用(点击文末"阅读原文"获取完整代码数据). 这篇文 ...
- R语言随机森林模型:计算随机森林模型的特征重要度(feature importance)并可视化特征重要度、使用少数重要特征拟合随机森林模型(比较所有特征模型和重要特征模型在测试集上的表现差异)
R语言随机森林模型:计算随机森林模型的特征重要度(feature importance)并可视化特征重要度.使用少数重要特征拟合随机森林模型(比较所有特征模型和重要特征模型在测试集上的表现差异) 目录
- R语言随机森林回归(randomforest)模型构建
R语言随机森林回归(randomforest)模型构建 目录 R语言随机森林回归(randomforest)模型构建
最新文章
- 36氪研究 | 智慧零售行业研究报告
- mysql 基础篇(二) 账号、权限管理
- python【力扣LeetCode算法题库】220-存在重复元素 III
- 51nod1092(lcs简单运用/dp)
- Elasticsearch相关软件安装
- C#Winform将WebBowser控件替换为Chrome内核
- php转译html,使用php转义输出HTML到JavaScript
- 通过stream去重_stream去重
- 学生信息管理信息系统--添加用户
- 做.NET开发解决Extjs4智能感知
- 2月21日 CVST工具箱模块仿真与图像处理(一)
- Centos7系统安装riscv-spike
- Altium net has no driving source问题
- linux下如何给home目录分配空间,Linux 分配/home的磁盘空间给根目录
- 树莓派做旁路网关 及 无法上网解决
- Java教程:如何使用Jib插件容器化SpringBoot应用?
- 健身环1536级小结:相当适合码农的锻炼方式
- KG-开源项目:QASystemOnMedicalKG【以疾病为中心的一定规模医药领域知识图谱,并以该知识图谱完成自动问答与分析服务】
- LiteMes系统中对于文件系统的文件删除使用
- 实时监控linux的日志命令
热门文章
- Spring学习篇01-Spring容器相关基本概念
- linux命令4--rmrmdir
- 6.gloox 之 MessageHandler
- Explaining and Harnessing Adversarial Examples论文解读
- PySpark任务在YARN集群上运行python 算法
- vue.js 父子组件间 props 数据同步处理
- java B2B2C 源码 多级分销Springcloud多租户电子商城系统-SpringCloud配置中心内容加密...
- GraphQL到底怎么用?看看这个例子就知道了
- 如何用PEP 8编写优雅的Python代码
- 撩课-Web大前端每天5道面试题-Day4