• 拓端tecdat|R语言向量自回归VAR的迭代多元预测估计 GDP 增长率时间序列


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

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

    VARs的结构也允许联合检验多个方程的限制。例如,检验滞后p的所有回归变量的系数是否为零,可能是有意义的。这相当于检验滞后阶数p-1是正确的原假设。系数估计值的大样本联合正态性很方便,因为它意味着我们可以简单地使用F检验来解决这个检验问题。这种检验统计量的明确公式相当复杂,但我们使用R函数可以轻松完成这种计算。另一种确定最佳滞后长度的方法是像BIC这样的信息标准,我们对单变量时间序列回归进行了介绍。就像单方程的情况一样,对于多方程模型,我们选择具有最小的BIC(p)的模型,其中

    其中 ^Σu表示对 VAR 误差的 k×k协方差矩阵的估计,det(·)表示行列式。

    对于单变量分布式滞后模型,应该仔细考虑要包含在 VAR 中的变量,因为添加不相关的变量会通过增加估计误差来降低预测准确性。这一点特别重要,因为要估计的参数数量与 VAR 建模的变量数量成二次增长。

    GDP增长率和期限利差的VAR模型

    我们现在展示如何估计 GDP 增长率 GDPGR 和期限价差 TSpread 的 VAR 模型。关于 GDP 增长非平稳性的讨论,我们使用 1981:Q1 到 2012:Q4 的数据。两个模型方程是

    数据集包含从 1947 年到 2004 年实际(即通胀调整后)GDP 的季度数据。我们首先导入数据集并进行一些格式化。

    1.  
       
    2.  
      #加载宏观经济数据集
    3.  
      UWQ <- read_xlsx
    4.  
       
    5.  
      #格式化日期列
    6.  
      UWQ$Date <- as.yearqtr(USMte, format = "%Y:0%q")
    7.  
       
    8.  
      # 将GDP定义为ts对象
    9.  
      GDP <- ts
    10.  
      # 将GDP增长定义为一个ts对象
    11.  
      GDPoth <- ts
    12.  
       
    13.  
      # 3个月的国库券利率是一个'ts'对象
    14.  
      MS <- ts
    15.  
       
    16.  
      # 10年期国债的利率是一个'ts'对象
    17.  
      TS <- ts
    18.  
       
    19.  
       

    我们通过 OLS 分别估计这两个方程,并使用test 来获得稳健的标准误差。

    1.  
      # 估计两个方程
    2.  
       
    3.  
      # 稳健的系数总结
    4.  
      coeftest(VAR1, vcov.)

    我们最终得到以下结果:

    VAR可用于获得与上述相同的系数估计,因为它也适用于每个方程的 OLS。

    1.  
      #使用`VAR()`设置数据进行估计
    2.  
      VARta <- window
    3.  
      # 使用`VAR()`估计模型系数
    4.  
      VARest <- VAR
    5.  
       

    VAR返回可以传递给常用函数的 lm 对象列表,例如 summary() ,因此可以直接获取各个方程的模型统计信息。

    1.  
      #从'VAR()'的输出中获得 adj.R^2
    2.  
      summaryadj.r.squared

    我们可以使用单个模型对象来进行格兰杰因果检验。

    1.  
      # 格兰杰因果关系测试。
    2.  
       
    3.  
      # 检验期限差在解释GDP增长方面是否无用
    4.  
      linearHypothesis
    5.  
       
    6.  
      # 检验GDP增长是否没有解释期差的能力
    7.  
      linearHypothesis

    两个格兰杰因果关系检验都拒绝了 5%的水平。

    使用迭代 VAR 的迭代多元预测

    迭代预测的理念,在一个时期内  T + 2 迭代预测的想法,是基于:到目前为止T时期的观察结果 是使用提前一个时期的预测作为中间步骤。即,在预测 T+2 期间的水平序列时,将 T+1 期间的预测用作观察值。这可以推广到提前 h 期预测,其中 T 和 T+h之间的所有中间期都必须被预测,因为它们被用作过程中的观察。

    关键概念

    迭代多期预测

    迭代多期 AR 预测的步骤  是:

    1. 使用 OLS 估计 AR(p) 模型并计算提前一期的预测。

    2. 使用提前一期预测获得提前两期预测。

    3. 继续迭代以获得更远的未来的预测。

    迭代的多期 VAR 预测 按如下方式进行:

    1. 使用每个方程的 OLS 估计 VAR(p) 模型,并计算 VAR 中所有 变量的提前一期预测 。

    2. 使用提前一期的预测来获得提前两期的预测。

    3. 继续迭代以获得对未来 VAR 中所有变量的预测。

    由于 VAR 使用各个其他变量的滞后对所有变量进行建模,因此我们需要计算 所有 变量的预测。当 VAR 很大时,这样做可能很麻烦,但幸运的是,有 R 函数可以促进这一点。例如,函数 predict() 可用于获得由函数 VAR() 估计的 VAR 模型的迭代多元预测。

    下面的代码块显示了如何使用模型对象VAR_est计算到2015:Q1期间的GDP增长和期限利差的迭代预测,也就是h=10。

    1.  
      # 计算未来10个季度的GDP增长和期限差的迭代预测。
    2.  
      forecasts <- predict
    3.  
       

    这表明使用截至 2012:Q4 的数据对 2013:Q2 的 GDP 增长的前两个季度预测为 1.69。同期,期限利差的迭代 VAR 预测为 1.88。

    返回的矩阵 predict(VAR_est) 还包括 95% 的预测区间。

    我们还可以在 的输出上调用 plot() 来绘制两个变量的迭代预测。

    1.  
      # 将迭代后的预测结果可视化
    2.  
      plot

    直接多期预测

    直接多期预测使用一个模型,其中预测因子被适当地滞后,这样就可以直接使用现有的观测值来进行预测。

    例如,为了获得对 GDP 增长和期限利差的提前两个季度的预测,我们首先估计方程

    然后将 GDPGR2012:Q4、GDPGR2012:Q3、TSpread2012:Q4 和 TSpread2012:Q3 的值代入两个方程。

    1.  
       
    2.  
      # 直接计算两个季度前的预测结果
    3.  
      coef(VARQ1) %*%
    4.  
       
    5.  
       
    6.  
      coef(VARQ2) %*%
    7.  
       

    应用经济学家经常使用迭代法,因为就MSFE而言,这种预测更可靠,前提是一周期前模型是正确指定的。如果情况不是这样,例如因为VAR中的一个方程被认为是错误的,那么使用直接预测可能是有益的,因为这时迭代法会有偏差,因此MSFE比直接法高。


    最受欢迎的见解

    1.在python中使用lstm和pytorch进行时间序列预测

    2.python中利用长短期记忆模型lstm进行时间序列预测分析

    3.使用r语言进行时间序列(arima,指数平滑)分析

    4.r语言多元copula-garch-模型时间序列预测

    5.r语言copulas和金融时间序列案例

    6.使用r语言随机波动模型sv处理时间序列中的随机波动

    7.r语言时间序列tar阈值自回归模型

    8.r语言k-shape时间序列聚类方法对股票价格时间序列聚类

    9.python3用arima模型进行时间序列预测

  • 相关阅读:
    【实用代码】圆弧边框、阴影
    2015.7.30 第十五课 sql(新建数据库、创建表、注释、查询语句、新增、更新、删除、联合查询)
    【转】WEB前端开发工程师成长之路(计划)
    2015.7.29 第十三、十四课 jq实例(磁力图片、轮播图、腾讯课堂菜单、可弹出红色菜单、砸蛋游戏)
    【周末作业】2015.7.15 第二周 css作业及答案
    【课堂实例】轮播图
    2015.7.23 第十二课 课程重点(jq元素:获取、添加、删除、设置、绑定、显示隐藏、回调、动画)
    2015.7.22 第十一课 课程重点(jq:元素获取、添加、删除、过滤、判断、遍历、取值,样式设置、改变对象、切换、判断)
    【其它】喜欢的歌汇总
    2015.7.21 第十课 课程重点(jq选择器:id、类、标签、奇偶、eq、nth-child、子元素、属性、包含、位置、过滤)
  • 原文地址:https://www.cnblogs.com/tecdat/p/16030117.html
Copyright © 2020-2023  润新知