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

介绍

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

视频时间序列分析:ARIMA 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.open
2000-01-03 0.000157240 -0.010103618 0.000099500      1554  34191.16
2000-01-04 0.000298147 -0.039292183 0.000254283      1564  34195.04
2000-01-05 0.000307226  0.001749195 0.000138133      1552  34196.70
2000-01-06 0.000136238  0.001062120 0.000062000      1561  34191.43
2000-01-07 0.000092700  0.026022074 0.000024100      1540  34186.14
2000-01-10 0.000117787  0.010537636 0.000033700      1573  34191.50SPX2.highlow SPX2.highopen SPX2.openprice SPX2.closeprice
2000-01-03   0.02718625   0.005937756        1469.25         1454.48
2000-01-04   0.04052226   0.000000000        1455.22         1399.15
2000-01-05  -0.02550524   0.009848303        1399.42         1401.87
2000-01-06  -0.01418039   0.006958070        1402.11         1403.60
2000-01-07  -0.02806616   0.026126203        1403.45         1440.45
2000-01-10  -0.01575486   0.015754861        1441.47         1456.74DATE   SPX2.rvol
2000-01-03 2000-01-03 0.012539537
2000-01-04 2000-01-04 0.017266934
2000-01-05 2000-01-05 0.017527864
2000-01-06 2000-01-06 0.011672103
2000-01-07 2000-01-07 0.009628084
2000-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.r
Dickey-Fuller = -15.869, Lag order = 16, p-value = 0.01
alternative hypothesis: stationary

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


点击标题查阅往期内容

ARMA-GARCH-COPULA模型和金融时间序列案例

左右滑动查看更多

01

02

03

04

acf(SPXdata$SPX2.r) ##自相关系数图

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

自相关图显示了每周相关性。Ljung-Box测试确认了序列存在相关性。

Series: SPXdata$SPX2.r
ARIMA(2,0,0) with zero meanCoefficients:ar1      ar2-0.0839  -0.0633
s.e.   0.0154   0.0154sigma^2 estimated as 0.0001412:  log likelihood=12624.97
AIC=-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  : FALSE Conditional Mean Dynamics
------------------------------------
Mean Model      : ARFIMA(2,0,0)
Include Mean        : TRUE
GARCH-in-Mean       : FALSE Conditional Distribution
------------------------------------
Distribution    :  std
Includes Skew   :  FALSE
Includes Shape  :  TRUE
Includes 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  : FALSE Conditional Mean Dynamics
------------------------------------
Mean Model      : ARFIMA(2,0,0)
Include Mean        : TRUE
GARCH-in-Mean       : FALSE Conditional Distribution
------------------------------------
Distribution    :  norm
Includes Skew   :  FALSE
Includes Shape  :  FALSE
Includes 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语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测,点击“阅读原文”获取全文完整资料。


点击标题查阅往期内容

R语言多变量广义正交GARCH(GO-GARCH)模型对股市高维波动率时间序列拟合预测

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

ARMA-GARCH-COPULA模型和金融时间序列案例

时间序列分析:ARIMA GARCH模型分析股票价格数据

GJR-GARCH和GARCH波动率预测普尔指数时间序列和Mincer Zarnowitz回归、DM检验、JB检验

【视频】时间序列分析:ARIMA-ARCH / GARCH模型分析股票价格

时间序列GARCH模型分析股市波动率

PYTHON用GARCH、离散随机波动率模型DSV模拟估计股票收益时间序列与蒙特卡洛可视化

极值理论 EVT、POT超阈值、GARCH 模型分析股票指数VaR、条件CVaR:多元化投资组合预测风险测度分析

Garch波动率预测的区制转移交易策略

金融时间序列模型ARIMA 和GARCH 在股票市场预测应用

时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

R语言风险价值:ARIMA,GARCH,Delta-normal法滚动估计VaR(Value at Risk)和回测分析股票数据

R语言GARCH建模常用软件包比较、拟合标准普尔SP 500指数波动率时间序列和预测可视化

Python金融时间序列模型ARIMA 和GARCH 在股票市场预测应用

MATLAB用GARCH模型对股票市场收益率时间序列波动的拟合与预测

R语言GARCH-DCC模型和DCC(MVT)建模估计

Python 用ARIMA、GARCH模型预测分析股票市场收益率时间序列

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

R语言ARIMA-GARCH波动率模型预测股票市场苹果公司日收益率时间序列

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

R语言时间序列GARCH模型分析股市波动率

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

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

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

使用R语言对S&P500股票指数进行ARIMA + GARCH交易策略

R语言用多元ARMA,GARCH ,EWMA, ETS,随机波动率SV模型对金融时间序列数据建模

R语言股票市场指数:ARMA-GARCH模型和对数收益率数据探索性分析

R语言多元Copula GARCH 模型时间序列预测

R语言使用多元AR-GARCH模型衡量市场风险

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

R语言用Garch模型和回归模型对股票价格分析

GARCH(1,1),MA以及历史模拟法的VaR比较

matlab估计arma garch 条件均值和方差模型

R语言POT超阈值模型和极值理论EVT分析

R语言时间序列GARCH模型分析股市波动率

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

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

Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测

使用R语言对S&P500股票指数进行ARIMA + GARCH交易策略

R语言用多元ARMA,GARCH ,EWMA, ETS,随机波动率SV模型对金融时间序列数据建模

R语言股票市场指数:ARMA-GARCH模型和对数收益率数据探索性分析

R语言多元Copula GARCH 模型时间序列预测

R语言使用多元AR-GARCH模型衡量市场风险

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

R语言GARCH-DCC模型和DCC(MVT)建模估计

R语言用Garch模型和回归模型对股票价格分析

GARCH(1,1),MA以及历史模拟法的VaR比较

matlab估计arma garch 条件均值和方差模型

R语言ARMA-GARCH-COPULA模型和金融时间序列案例

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

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

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

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

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

  3. 预测算法-线性回归(鲍鱼年龄预测)

    预测算法-线性回归 面对可逆矩阵 线性回归(模型,策略,算法) 模型: h(x)=WTx+b h ( x ) = W T x + b h(x) = W^T x + b 损失函数: J(θ)=∑i=1N ...

  4. 顶会论文:基于神经网络StarNet的行人轨迹交互预测算法

    1.背景 民以食为天,如何提升超大规模配送网络的整体配送效率,改善数亿消费者在"吃"方面的体验,是一项极具挑战的技术难题.面向未来,美团正在积极研发无人配送机器人,建立无人配送开放 ...

  5. 基于时空相关属性模型的公交到站时间预测算法

    基于时空相关属性模型的公交到站时间预测算法 人工智能技术与咨询 来源:<软件学报> ,作者赖永炫等 摘 要:公交车辆到站时间的预测是公交调度辅助决策系统的重要依据,可帮助调度员及时发现晚点 ...

  6. 【算法】决策树模型 集成算法模型GBDT

    一.决策树模型 决策树算法是一种归纳分类算法,它通过对训练集的学习,挖掘有用的规则,对新数据集进行预测.它属于有监督.非参数学习算法,对每个输入使用该分类区域的训练数据得到对应的局部模型.决策树模型的 ...

  7. ML之回归预测:利用Lasso、ElasticNet、GBDT等算法构建集成学习算法AvgModelsR对国内某平台上海2020年6月份房价数据集【12+1】进行回归预测(模型评估、模型推理)

    ML之回归预测:利用Lasso.ElasticNet.GBDT等算法构建集成学习算法AvgModelsR对国内某平台上海2020年6月份房价数据集[12+1]进行回归预测(模型评估.模型推理) 目录 ...

  8. ML之SVM:利用SVM算法对手写数字图片识别数据集(PCA降维处理)进行预测并评估模型(两种算法)性能

    ML之SVM:利用SVM算法对手写数字图片识别数据集(PCA降维处理)进行预测并评估模型(两种算法)性能 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 estimator = PC ...

  9. 统计学习方法第十章作业:HMM模型—概率计算问题、Baum-Welch学习算法、维特比预测算法 代码实现

    HMM模型 import numpy as npclass HMM:def __init__(self,A=None,B=None,Pi=None,O = None):if A:self.A = np ...

最新文章

  1. XML publisher 填充空白行数
  2. SAP实施方法论之探讨-现状调研与需求分析
  3. matlab微分的语句格式,偏微分差分四种格式的matlab程序.doc
  4. 强化学习之基础入门_强化学习基础
  5. c语言iso校验算法,模式识别c语言ISODATA算法.doc
  6. 计算机语言wifi,Windows7WIFI热点设置器
  7. Spring Validation校验
  8. 安装cuda时 提示toolkit installation failed using unsupported compiler解决方法
  9. 学生电脑哪个牌子好_香米哪个牌子好
  10. SpringData JPA整理
  11. 极客大学架构师训练营 秒杀 搜索引擎 爬虫 Lucene Elastic Search 第18课 听课总结
  12. 微信群机器人管理系统源码+支持同登陆多号
  13. pythonopencv人脸相似度_OpenCV3与深度学习实例:Dlib+VGG Face实现两张脸部图像相似度比较...
  14. STM32驱动步进电机测试
  15. 苹果6S怎么录屏_苹果6s来电没声音怎么回事
  16. matlab残差分析取离散点,matlab残差分析图
  17. zoj3551 Bloodsucker//概率dp
  18. 差分隐私的定义、直观理解与基本性质
  19. 北邮智能车仿真培训(一)—— 安装仿真环境
  20. 多空持仓比为2.74

热门文章

  1. 面试了一个32岁的程序员,一个细节就看出来是培训班的····
  2. Pyton接口自动化相关【易报错问题及解决方法】
  3. 机械臂控制器IO电压测试
  4. 秋招攻略—如何成为一名图像算法攻城狮(上篇)—知识学习篇
  5. Lattics ——一款简单易用、好看强大的知识管理工具
  6. 三八节与芊芊一起赏雪
  7. Python安装遇到2502,2503等问题处理方法。
  8. 邮件服务器 POP3协议 详解
  9. 【计算机网络】网络安全知识要点
  10. Multisim中扬声器与麦克风的使用方式