VARs的结构也允许联合检验多个方程的限制。
例如,检验滞后p的所有回归变量的系数是否为零,可能是有意义的。
这相当于检验滞后阶数p-1是正确的原假设。系数估计值的大样本联合正态性很方便,因为它意味着我们可以简单地使用F检验来解决这个检验问题。
考虑以下简单的双变量系统(序列 的时间路径受到序列 的当期或过去的实际值的影响;序列 的时间路径受到序列 的当期或过去的实际值的影响)
其中,假设① 和 都是平稳的;② 和 是白噪声干扰项,标准差分别为 ;③ 和 是独立不相关的白噪声干扰项。
因为最长的滞后长度为1,因此,式(1)和式(2)构成了一个1阶向量自回归(vector autoregression,VAR)。
因为允许 和 相互影响,所以,系统结构中结合了反馈因素。例如, 是1单位 的变化对 的影响, 表示1单位 对 的影响。注意, 和 分别是 和 中的新息(或冲击)。当然,如果 不为0,则同时对 有一个间接地影响。如果 不为0,则同时对 有一个间接地影响。
我们可以进一步地将方程写成如下形式:
或
其中,
用 左乘以方程,得到向量自回归(VAR)模型的标准形式
式中, 。
为了便于标记,我们定义
那么,我们可以将式(3)表示为
式(1)、(2)所代表的系统和式(4)、(5)所代表的的系统的差异在于,第一组被称为结构性VAR或原始系统,第二组被称为标准型VAR。
值得注意的是,误差项(即 )是由两个冲击 的组合。因为
因此,我们很容易得到
接着,我们有
并且, 的自协方差为
因此, 是一个平稳的过程,均值为0,方差恒定,并且所有的自协方差为0。同理。
所要注意的是 和 是相关的,它们的互协方差为
所以,两个冲击 和 是相关的。在特殊情况下,令 (无同期影响),则冲击不相关。
把 和 冲击的方差-协方差矩阵写为
因为 的所有元素在时间上都是独立的,所以可使用更紧凑的形式
其中, 。
参考文献:
沃尔特·恩格斯.《应用计量经济学:时间序列分析》.机械工业出版社.2012
这种检验统计量的明确公式相当复杂,但我们使用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 的季度数据。我们首先导入数据集并进行一些格式化。
#加载宏观经济数据集 UWQ <- read_xlsx #格式化日期列 UWQ$Date <- as.yearqtr(USMte, format = "%Y:0%q") # 将GDP定义为ts对象 GDP <- ts # 将GDP增长定义为一个ts对象 GDPoth <- ts # 3个月的国库券利率是一个'ts'对象 MS <- ts # 10年期国债的利率是一个'ts'对象 TS <- ts
我们通过 OLS 分别估计这两个方程,并使用test 来获得稳健的标准误差。
# 估计两个方程 # 稳健的系数总结 coeftest(VAR1, vcov.)
我们最终得到以下结果:
VAR可用于获得与上述相同的系数估计,因为它也适用于每个方程的 OLS。
#使用\`VAR()\`设置数据进行估计 VARta <- window # 使用\`VAR()\`估计模型系数 VARest <- VAR
随时关注您喜欢的主题
VAR返回可以传递给常用函数的 lm 对象列表,例如 summary() ,因此可以直接获取各个方程的模型统计信息。
#从'VAR()'的输出中获得 adj.R^2 summaryadj.r.squared
我们可以使用单个模型对象来进行格兰杰因果检验。
# 格兰杰因果关系测试。 # 检验期限差在解释GDP增长方面是否无用 linearHypothesis # 检验GDP增长是否没有解释期差的能力 linearHypothesis
两个格兰杰因果关系检验都拒绝了 5%的水平。
使用迭代 VAR 的迭代多元预测
迭代预测的理念,在一个时期内 T + 2 迭代预测的想法,是基于:到目前为止T时期的观察结果 是使用提前一个时期的预测作为中间步骤。即,在预测 T+2 期间的水平序列时,将 T+1 期间的预测用作观察值。这可以推广到提前 h 期预测,其中 T 和 T+h之间的所有中间期都必须被预测,因为它们被用作过程中的观察。
关键概念
迭代多期预测
_迭代多期 AR 预测_的步骤 是:
- 使用 OLS 估计 AR(p) 模型并计算提前一期的预测。
- 使用提前一期预测获得提前两期预测。
- 继续迭代以获得更远的未来的预测。
迭代的多期 VAR 预测 按如下方式进行:
- 使用每个方程的 OLS 估计 VAR(p) 模型,并计算 VAR 中所有 变量的提前一期预测 。
- 使用提前一期的预测来获得提前两期的预测。
- 继续迭代以获得对未来 VAR 中所有变量的预测。
由于 VAR 使用各个其他变量的滞后对所有变量进行建模,因此我们需要计算 所有 变量的预测。当 VAR 很大时,这样做可能很麻烦,但幸运的是,有 R 函数可以促进这一点。例如,函数 predict() 可用于获得由函数 VAR() 估计的 VAR 模型的迭代多元预测。
下面的代码块显示了如何使用模型对象VAR_est计算到2015:Q1期间的GDP增长和期限利差的迭代预测,也就是h=10。
# 计算未来10个季度的GDP增长和期限差的迭代预测。 forecasts <- predict
这表明使用截至 2012:Q4 的数据对 2013:Q2 的 GDP 增长的前两个季度预测为 1.69。同期,期限利差的迭代 VAR 预测为 1.88。
返回的矩阵 predict(VAR_est)
还包括 95% 的预测区间。
我们还可以在 的输出上调用 plot() 来绘制两个变量的迭代预测。
# 将迭代后的预测结果可视化 plot
直接多期预测
直接多期预测使用一个模型,其中预测因子被适当地滞后,这样就可以直接使用现有的观测值来进行预测。
例如,为了获得对 GDP 增长和期限利差的提前两个季度的预测,我们首先估计方程
然后将 GDPGR2012:Q4、GDPGR2012:Q3、TSpread2012:Q4 和 TSpread2012:Q3 的值代入两个方程。
# 直接计算两个季度前的预测结果 coef(VARQ1) %*% coef(VARQ2) %*%
应用经济学家经常使用迭代法,因为就MSFE而言,这种预测更可靠,前提是一周期前模型是正确指定的。如果情况不是这样,例如因为VAR中的一个方程被认为是错误的,那么使用直接预测可能是有益的,因为这时迭代法会有偏差,因此MSFE比直接法高。
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!