• R语言GJRGARCH和GARCH波动率预测普尔指数时间序列和Mincer Zarnowitz回归、DM检验、JB检验


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

    原文出处:拓端数据部落公众号

    在投资组合管理、风险管理和衍生品定价中,波动性起着重要作用。事实上如此重要,以至于您可以找到比您可以处理的更多的波动率模型。接下来是检查每个模型在样本内外的表现如何。以下是您可以做的三件事:

    1. 基于回归的检验——Mincer Zarnowitz 回归
    这个想法很简单,回归预测的实际(实现)值:

      \[\sigma_{t+1} = \beta_0+ \beta_1 \widehat{\sigma}_{t+1}\]

    现在我们共同检验假设:

      \[\beta_0 = 0 ,  \beta_1 = 1\]

    截距为零意味着你的预测是无偏的。矛盾的是,如果截距是0.02,这意味着为了使两边相等,我们在预测中平均增加0.02,所以它一直在低估观察值。斜率应该是1,也就是说,你的预测完全 "解释 "了观察值。

    2. 配对比较——Diebold Mariano 检验。
    假设您有两个模型,它们产生两组预测。因此,您有两组误差。调用这些误差

      \[e_j = \widehat{\sigma}_{model_j} - \sigma_observed , \qquad  j = {model_1, model_2}\]

    在两种方法相同的情况下,这两个向量的差 \{e_1 -  e_2\} 平均为零(或这些向量的函数,例如 e1^2 – e2^2)。在仅使用相同方法复制预测的极端情况下,差正好为零。更重要的是,我们知道这种差是如何分布的(渐近地..),因此我们可以测试它是否确实偏离零。

    难以理解这一点。如果不知道 2 的结果的可能性有多大,就不可能测量 0 和 2 之间的距离。在 {-3,3} 之间均匀分布的 2 的结果并不像具有标准正态分布的 2 的结果那样不可能。

    产生明显更小的误差(通常是平方误差或绝对误差)的方法是首选。您可以轻松地将其扩展到多个比较。

    3. Jarque-Bera 检验
    在这种情况下,我们有一个准确的波动率预测。我们可以将序列中心化并使用我们对标准差的预测对其进行标准化。准确地说:

      \[\frac{original.series_t - mean(original.series)}{\widehat{\sigma_t}}\]

    应该有均值零和标准差一。新的标准化序列通常不会呈正态分布,但您可以使用此检验来衡量模型获取原始序列的偏度和峰度的程度。

    实证研究中,前两个方案对一般的预测评估是有效的,然而,波动率是不可观察的,所以我们用什么作为观察值并不清楚。我们所做的是用一个替代物来代替 "观察到的",通常是收益率的平方。在这里你可以找到更准确的替代方法,但是,它们是基于日内信息的,所以你需要获得日内数据源。

    我们看看在 R 中是如何工作的。

    我从谷歌提取数据,采集5年的标准普尔指数收益序列,并估计标准 garch(1,1) 和另一个更准确的 GJR-garch(不对称 garch)。

    1.  
       
    2.  
      dat0= as.matrix(getSymbol
    3.  
       
    4.  
      n = NROW
    5.  
       
    6.  
       
    7.  
      plot
    8.  
       
    9.  
       
    10.  
      gjrc <- ugarchspec
    11.  
      gjrmodel = fit
    12.  
       
    13.  
      gjrfit = sigma
    14.  
       
    15.  
      Nit = as.dsigma
    16.  
       
    17.  
      resq = ret^2
    18.  
       
    19.  
      Nsq = Nfit^2
    20.  
       
    21.  
      Tsq = Tfit^2
    22.  
       
    23.  
      plot

    具有两种 Garch 模型的 SPY 波动率

    1.  
      #########################
    2.  
       
    3.  
      # mincer-zarnowitz回归
    4.  
      #########################
    5.  
       
    6.  
       
    7.  
       
    8.  
      Nmz = lm
    9.  
      Tmz = lm
    10.  
       
    11.  
       
    12.  
       
    13.  
      linsis
    14.  
       

    lineesis
    

    1.  
      #########################
    2.  
       
    3.  
      #DM检验
    4.  
       
    5.  
      #########################
    6.  
       
    7.  
       
    8.  
       
    9.  
      dmst

     对于平方损失函数,两组预测之间没有区别

    1.  
       
    2.  
      #########################
    3.  
       
    4.  
      # Jarque Bera 检验
    5.  
       
    6.  
      #########################
    7.  
       
    8.  
      stanN = scale
    9.  
       
    10.  
      stajr = scale
    11.  
       
    12.  
      scret = scale# 没有波动率模型,只有无条件波动率
    13.  
       
    14.  
      jbtest$stat

    rjbtestat
    

     

    rjteststat
    

     


    最受欢迎的见解

    1.R语言基于ARMA-GARCH-VaR模型拟合和预测实证研究

    2.R语言时变参数VAR随机模型

    3.R语言估计时变VAR模型时间序列的实证研究

    4.R语言基于ARMA-GARCH过程的VAR拟合和预测

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

    6.R语言用向量自回归(VAR)进行经济数据脉冲响应

    7.R语言实现向量自动回归VAR模型

    8.R语言随机搜索变量选择SSVS估计贝叶斯向量自回归(BVAR)模型

    9.R语言VAR模型的不同类型的脉冲响应分析

  • 相关阅读:
    (转)simhash进行文本查重
    项目团队管理随记
    最常见到的runtime exception 异常
    javascript判断嵌套对象属性是否存在
    vim高清大图赏析(附常用快捷键)
    如何避免系统发送垃圾邮件
    使用javascript将数字转化为金额
    分享一个音乐电台(好看的 ui + html5)
    测试代码高亮显示
    Cadence 操作技巧总结1:测试点的生成2
  • 原文地址:https://www.cnblogs.com/tecdat/p/15971432.html
Copyright © 2020-2023  润新知