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

介绍

本文比较了几个时间序列模型,以预测SP 500指数的每日实际波动率。基准是SPX日收益系列的ARMA-EGARCH模型。将其与GARCH模型进行比较  。最后,提出了集合预测算法。

假设条件

实际波动率是看不见的,因此我们只能对其进行估算。这也是波动率建模的难点。如果真实值未知,则很难判断预测质量。尽管如此,研究人员为实际波动率开发了估算器。Andersen,Bollerslev Diebold(2008)  和  Barndorff-Nielsen and Shephard(2007)  以及  Shephard and Sheppard(2009)  提出了一类基于高频的波动率(HEAVY)模型,作者认为HEAVY模型给出了  很好的  估计。

假设:HEAVY实现的波动率估算器无偏且有效。

在下文中,将HEAVY估计量作为  观察到的已实现波动率  来确定预测性能。

数据来源SPX每日数据(平仓收益)

SPX盘中高频数据(HEAVY模型估计)

VIX

VIX衍生品(VIX期货)

在本文中,我主要关注前两个。

数据采集

实际波动率估计和每日收益

我实现了Shephard和Sheppard的模型,并估计了SPX的实现量。head(SPXdata)SPX2.rv SPX2.r SPX2.rs SPX2.nobs SPX2.open2000-01-03 0.000157240 -0.010103618 0.000099500 1554 34191.162000-01-04 0.000298147 -0.039292183 0.000254283 1564 34195.042000-01-05 0.000307226 0.001749195 0.000138133 1552 34196.702000-01-06 0.000136238 0.001062120 0.000062000 1561 34191.432000-01-07 0.000092700 0.026022074 0.000024100 1540 34186.142000-01-10 0.000117787 0.010537636 0.000033700 1573 34191.50SPX2.highlow SPX2.highopen SPX2.openprice SPX2.closeprice2000-01-03 0.02718625 0.005937756 1469.25 1454.482000-01-04 0.04052226 0.000000000 1455.22 1399.152000-01-05 -0.02550524 0.009848303 1399.42 1401.872000-01-06 -0.01418039 0.006958070 1402.11 1403.602000-01-07 -0.02806616 0.026126203 1403.45 1440.452000-01-10 -0.01575486 0.015754861 1441.47 1456.74DATE SPX2.rvol2000-01-03 2000-01-03 0.0125395372000-01-04 2000-01-04 0.0172669342000-01-05 2000-01-05 0.0175278642000-01-06 2000-01-06 0.0116721032000-01-07 2000-01-07 0.0096280842000-01-10 2000-01-10 0.010852972

SPXdata$SPX2.rv 是估计的实际方差。 SPXdata$SPX2.r 是每日收益(平仓/平仓)。 SPXdata$SPX2.rvol 是估计的实际波动率

 SPXdata$SPX2.rvol

基准模型:SPX每日收益率建模

ARMA-EGARCH

考虑到在条件方差中具有异方差性的每日收益,GARCH模型可以作为拟合和预测的基准。

首先,收益序列是平稳的。Augmented Dickey-Fuller Testdata: SPXdata$SPX2.rDickey-Fuller = -15.869, Lag order = 16, p-value = 0.01alternative hypothesis: stationary

分布显示出尖峰和厚尾。可以通过缩放的t分布回归分布密度图来近似  。黑线是内核平滑的密度,绿线是缩放的t分布密度。

acf(SPXdata$SPX2.r) ## acf plot

Box-Ljung testdata: SPXdata$SPX2.rX-squared = 26.096, df = 1, p-value = 3.249e-07

自相关图显示了一些星期相关性。Ljung-Box测试确认了序列存在相关性。Series: SPXdata$SPX2.rARIMA(2,0,0) with zero meanCoefficients:ar1 ar2-0.0839 -0.0633s.e. 0.0154 0.0154sigma^2 estimated as 0.0001412: log likelihood=12624.97AIC=-25243.94 AICc=-25243.93 BIC=-25224.92

auro.arima 表示ARIMA(2,0,0)可以对收益序列中的自相关进行建模,而eGARCH(1,1)在波动率建模中很受欢迎。因此,我选择具有t分布误差的ARMA(2,0)-eGARCH(1,1)作为基准模型。*---------------------------------** GARCH Model Spec **---------------------------------*Conditional Variance Dynamics------------------------------------GARCH Model : eGARCH(1,1)Variance Targeting : FALSEConditional Mean Dynamics------------------------------------Mean Model : ARFIMA(2,0,0)Include Mean : TRUEGARCH-in-Mean : FALSEConditional Distribution------------------------------------Distribution : stdIncludes Skew : FALSEIncludes Shape : TRUEIncludes Lambda : FALSE

我用4189个观测值进行了回测(从2000-01-03到2016-10-06),使用前1000个观测值训练模型,然后每次向前滚动预测一个,然后每5个观测值重新估计模型一次 。下图显示  了样本外  预测和相应的实际波动率。

预测显示与实现波动率高度相关,超过72%。cor(egarch_model$roll.pred$realized_vol, egarch_model$roll.pred$egarch.predicted_vol,method = "spearman")[1] 0.7228007

误差摘要和绘图Min. 1st Qu. Median Mean 3rd Qu. Max.-0.0223800 -0.0027880 -0.0013160 -0.0009501 0.0003131 0.0477600

平均误差平方(MSE):[1] 1.351901e-05

改进:实现的GARCH模型和LRD建模

GARCH

realGARCH 该模型由  Hansen,Huang和Shek(2012)  (HHS2012)提出,该模型 使用非对称动力学表示将实现的波动率测度与潜在  真实波动率联系起来。与标准GARCH模型不同,它是收益和已实现波动率度量的联合建模(本文中的HEAVY估计器)。

模型:*---------------------------------** GARCH Model Spec **---------------------------------*Conditional Variance Dynamics------------------------------------GARCH Model : realGARCH(2,1)Variance Targeting : FALSEConditional Mean Dynamics------------------------------------Mean Model : ARFIMA(2,0,0)Include Mean : TRUEGARCH-in-Mean : FALSEConditional Distribution------------------------------------Distribution : normIncludes Skew : FALSEIncludes Shape : FALSEIncludes Lambda : FALSE

滚动预测过程与上述ARMA-EGARCH模型相同。下图显示  了样本外  预测和相应的实现。

预测与实现的相关性超过77%cor(arfima_egarch_model$roll.pred$realized_vol, arfima_egarch_model$roll.pred$arfima_egarch.predicted_vol,method = "spearman")[1] 0.7707991

误差摘要和图:Min. 1st Qu. Median Mean 3rd Qu. Max.-1.851e-02 -1.665e-03 -4.912e-04 -1.828e-05 9.482e-04 5.462e-02

均方误差(MSE):[1] 1.18308e-05

备注:用于每日收益序列的ARMA-eGARCH模型和用于实现波动率的ARFIMA-eGARCH模型利用不同的信息源。ARMA-eGARCH模型仅涉及每日收益,而ARFIMA-eGARCH模型基于HEAVY估算器,该估算器是根据日内数据计算得出的。RealGARCH模型将它们结合在一起。

以均方误差衡量,ARFIMA-eGARCH模型的性能略优于realGARCH模型。这可能是由于ARFIMA-eGARCH模型的LRD特性所致。

集成模型

随机森林

现在已经建立了三个预测ARMA egarch_model

realGARCH rgarch model

ARFIMA-eGARCH arfima_egarch_model

尽管这三个预测显示出很高的相关性,但预计模型平均值会减少预测方差,从而提高准确性。使用了随机森林集成。varImpPlot(rf$model)

随机森林由500棵树组成,每棵树随机选择2个预测以适合实际值。下图是拟合和实现。

预测与实现的相关性:[1] 0.840792

均方误差:[1] 1.197388e-05

MSE与已实现波动率方差的比率[1] 0.2983654

备注

涉及已实现量度信息的realGARCH模型和ARFIMA-eGARCH模型优于标准的收益系列ARMA-eGARCH模型。与基准相比,随机森林集成的MSE减少了17%以上。

从信息源的角度来看,realGARCH模型和ARFIMA-eGARCH模型捕获了日内高频数据中的增量信息(通过模型,HEAVY实现的波动率估算器)

进一步研究:隐含波动率

以上方法不包含隐含波动率数据。隐含波动率是根据SPX欧洲期权计算得出的。自然的看法是将隐含波动率作为预测已实现波动率的预测因子。但是,大量研究表明,无模型的隐含波动率VIX是有偏估计量,不如基于过去实现的波动率的预测有效。Torben G. Andersen,Per Frederiksen和Arne D. Staal(2007)  同意这种观点。他们的工作表明,将隐含波动率引入时间序列分析框架不会带来任何明显的好处。但是,作者指出了隐含波动率中增量信息的可能性,并提出了组合模型。

因此,进一步的发展可能是将时间序列预测和隐含波动率(如果存在)的预测信息相结合的集成模型。

R语言安装ccgarch_R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测相关推荐

  1. ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测

    原文链接:http://tecdat.cn/?p=12174 介绍 本文比较了几个时间序列模型,以预测SP500指数的每日实际波动率.基准是SPX日收益序列的ARMA-EGARCH模型.将其与GARC ...

  2. R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测

    介绍 本文比较了几个时间序列模型,以预测SP500指数的每日实际波动率.基准是SPX日收益序列的ARMA-EGARCH模型.将其与GARCH模型进行比较  .最后,提出了集合预测算法. 最近我们被客户 ...

  3. R语言安装ccgarch_R语言基于ARMA-GARCH过程的VaR拟合和预测

    原标题:R语言基于ARMA-GARCH过程的VaR拟合和预测 本文展示了如何基于基础ARMA-GARCH过程(当然这也涉及广义上的QRM)来拟合和预测风险价值(Value-at-Risk,VaR). ...

  4. nasa电池数据集_文章分享—模型与滤波算法结合的锂电池剩余寿命预测方法

    论文标题: Remaining useful life prediction of lithium-ion batteries with adaptive unscented kalman filte ...

  5. r语言安装ipsolve_R语言讲义(包各种回归).ppt

    R语言讲义(包各种回归) R 语言讲义 吴喜之 免费(没有权力和铜臭) 资源公开, 可改变代码(不是黑盒子,也不是吝啬鬼, 透明是防止"腐败"的最好方式) 容易学习.可编程以实行复 ...

  6. r语言安装ipsolve_R语言矩阵操作之矩阵运算

    1.转置运算 对于矩阵A,函数t(A)表示矩阵A的转置,如: > A=matrix(1:6,nrow=2); > A; [,1] [,2] [,3] [1,]    1    3    5 ...

  7. python语言安装-Python语言脚本的安装和配置

    Python语言脚本有很广泛的应用,在这一过程中,我们会看到种种的问题.其实只要仔细学习就能解决.下面我们就来详细的学习下相关的技术信息.希望大家有所收获. 目前有许多第三方脚本语言可供直接使用,例如 ...

  8. R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型、分类预测器(分类变量)被自动替换为一组虚拟编码变量、summary函数查看检查模型、使用table函数计算混淆矩阵评估分类模型性能

    R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型(Logistic regression).分类预测器(分类变量)被自动替换为一组虚拟编码变量.summary函数查看检查模型.使用t ...

  9. R语言用CPV模型的房地产信贷信用风险的度量和预测

    全文链接:http://tecdat.cn/?p=30401 本文基于 CPV 模型, 对房地产信贷风险进行了度量与预测.我们被客户要求撰写关于CPV模型的研究报告(点击文末"阅读原文&qu ...

  10. R语言使用rpart包构建决策树模型、使用prune函数进行树的剪枝、交叉验证预防过拟合、plotcp可视化复杂度、rpart.plot包可视化决策树、使用table函数计算混淆矩阵评估分类模型性能

    R语言使用rpart包构建决策树模型.使用prune函数进行树的剪枝.使用10折交叉验证选择预测误差最低的树来预防过拟合.plotcp可视化决策树复杂度.rpart.plot包可视化最终决策树.使用t ...

最新文章

  1. Android架构篇-5 CI/CD(持续集成、持续交付、持续部署)
  2. 大佬来告诉你在遇到B站崩了,如何防止类似事故的出现?
  3. oracle临时表性能,oracle临时表-优化查询速度
  4. Vsphere 6.0
  5. AngularJs应用页面切换优化方案
  6. Pangolin在cmake时报“Could NOT find GLEW”错误
  7. IDEA 重复代码快速重构
  8. .net获取当前网址url
  9. FeedingBottle 3.2另一个无线破解GUI
  10. C语言文件单字符读写,c语言文件读写操作
  11. 台式电脑主板插线步骤图_图解台式电脑电源与主板对接安装详细过程。
  12. Linux DMA驱动构架分析
  13. LPC1768 IAP
  14. 交互组件滚动条,搜索框,上传组件,翻页的微创新
  15. Linux SDIO WIFI Marvell8801/Marvell88w8801(六) --- Marvell Linux Wi-Fi driver介绍-WIFI插入卡槽内发生的事情
  16. EM算法 估计混合高斯模型参数 Python实现
  17. 暴力枚举题:平面上的点与外心
  18. Android App开发超实用实例 | ​Broadcast
  19. unfortunately ***has stopped---奇葩问题原来是有原因的【事出必有因】
  20. dz discuz附件下载权限漏洞

热门文章

  1. as常用固定搭配_as固定短语搭配
  2. Hibernate——缓存
  3. 根据录入的计算公式计算_增值税含税怎么计算?
  4. 微信测试点(八大点)
  5. 揭秘 | Akuna工作体验大揭秘
  6. AV1代码学习:av1_encode_strategy、denoise_and_encode、av1_encode函数
  7. 修改网页中的内容与打印网页
  8. 腾讯视频qlv格式转换成mp4格式的的简单方法!
  9. Cityscape数据集脚本readme翻译
  10. oracle主键函数,oracle 主键+1 或 -1 的函数