首页 > 编程语言 >ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测|附代码数据

ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测|附代码数据

时间:2023-04-25 23:34:37浏览次数:57  
标签:SPX 01 EGARCH 模型 波动 2000 GARCH ARMA

全文下载链接:http://tecdat.cn/?p=12174

最近我们被客户要求撰写关于ARMA-EGARCH的研究报告,包括一些图形和统计输出。

本文比较了几个时间序列模型,以预测SP500指数的每日实际波动率。基准是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.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.50
           SPX2.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.74
                 DATE   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 Test

data:  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 test

data:  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 mean

Coefficients:
          ar1      ar2
      -0.0839  -0.0633
s.e.   0.0154   0.0154

sigma^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特性所致。

集成模型

随机森林

**

拓端

,赞16

现在已经建立了三个预测

  • 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模型和金融时间序列案例

标签:SPX,01,EGARCH,模型,波动,2000,GARCH,ARMA
From: https://www.cnblogs.com/tecdat/p/17354352.html

相关文章

  • Python使用GARCH,EGARCH,GJR-GARCH模型和蒙特卡洛模拟进行股价预测|附代码数据
    全文下载链接:http://tecdat.cn/?p=20678最近我们被客户要求撰写关于GARCH的研究报告,包括一些图形和统计输出。在本文中,预测股价已经受到了投资者,政府,企业和学者广泛的关注。然而,数据的非线性和非平稳性使得开发预测模型成为一项复杂而具有挑战性的任务在本文中,我将解释如何将 ......
  • npm install karma时报错的问题解决
    karma在js自动化测试方面很有名,但是安装的时候出的问题npminstall-gkarma 报错好像是socket.iosocket.io.client依赖时报出的错误 看到网上回复说先装下这个:有人说要先装下这个:npminstall-gnode-gyp 试了下问题没有解决。 又有回复说要装这个:npminstall-gws 装好之......
  • 关于CodeSys V3.5 SPX如何使用高版本打包低版本环境静态编译库说明
    之所以需要使用高版本对低版本库进行打包,是因为在实际的使用中发现CodeSysV3.5的低版本虽然支持导入*.compiled-library库,但打包并不方便。以SP5为例,在实际使用过程中发现SP5的文件保存类型不支持.library; 这里在另存时可将文件后缀手动改为.library 在保存为.library后使......
  • R语言GARCH族模型:正态分布、t、GED分布EGARCH、TGARCH的VaR分析股票指数|附代码数据
    全文链接:http://tecdat.cn/?p=31023最近我们被客户要求撰写关于GARCH的研究报告,包括一些图形和统计输出。如何构建合适的模型以恰当的方法对风险进行测量是当前金融研究领域的一个热门话题VaR方法作为当前业内比较流行的测量金融风险的方法,具有简洁,明了的特点,而且相对于方差......
  • Tapjoy创始人新推移动电商平台Karma
    圣诞将至,是否有意为你的亲朋好友送上一份别致的节日礼物,但又不需花费太多时间和精力?赶紧试试这款最新推出的iOS应用Karma吧。Karma是由科技创业公司Tapjoy创始人LeeLin......
  • ARMA-GARCH-COPULA模型和金融时间序列案例|附代码数据
    原文链接: http://tecdat.cn/?p=3385最近我们被客户要求撰写关于ARMA-GARCH-COPULA的研究报告,包括一些图形和统计输出。最近我被要求撰写关于金融时间序列的copulas的调......
  • vs 发布程序 报错 TS0053/.aspx.cs不存在/
    vs发布一些旧的系统时候,会报一些错误,阻止发布。1.分析器错误:XXX.aspx.cs文件不存在但检查的时候发现文件存在的好好的,对比发现是在aspx页面的第一行:<%@PageLanguage="C......
  • 通过MATLAB实现基于PSO优化的NARMAX模型参数辨识算法
    1.算法描述粒子群优化算法(PSO),粒子群中的每一个粒子都代表一个问题的可能解,通过粒子个体的简单行为,群体内的信息交互实现问题求解的智能性。最终算法伪代码如下:初始化:......
  • 通过MATLAB实现基于PSO优化的NARMAX模型参数辨识算法
    1.算法描述        粒子群优化算法(PSO),粒子群中的每一个粒子都代表一个问题的可能解,通过粒子个体的简单行为,群体内的信息交互实现问题求解的智能性。   ......
  • 【漏洞复现】Pharmacy Management System远程代码执行漏洞(CVE-2022-30887)
    PharmacyManagementSystem远程代码执行漏洞(CVE-2022-30887)0x01i春秋靶场介绍多语言药房管理系统(MPMS)是用PHP和MySQL开发的,该软件的主要目的是在药房和客户之......