原文链接:http://tecdat.cn/?p=9368
最近咱们被客户要求撰写对于向量自回归VAR的钻研报告,包含一些图形和统计输入。
向量自回归 (VAR) 是一种用于多变量工夫序列剖析的统计模型,尤其是在变量具备相互影响关系的工夫序列中,本视频中咱们介绍了向量自回归并在R软件中进行实现
为什么用向量自回归
为了可能了解几个变量之间的关系。容许动态变化。
为了可能失去更好的预测。
一组工夫序列由多个繁多序列组成。
咱们在建设工夫序列模型时说,简略的单变量ARMA 模型能够很好地进行预测。那么,为什么咱们须要多个序列?
例子如:CPI反映的是通胀,CPI高了,通胀危险大,而克制通胀最重要的伎俩就是加息,反之,当CPI很低,就阐明经济不景气,那么就须要降息。降息之后刺激经济增长。因而,可能须要一个联结的动静模型来理解动静的互相关系 并可能做一个更好的预测工作。
在察看 ARMA 和 GARCH 模型时,您会立刻留神到预计和预测是针对一个变量进行的。在现实生活中,这并不成立。实际上,还有许多其余变量可能会影响其余变量。市场参与者和经济学家总是对宏观经济变量与他们有趣味购买的资产之间的动静关系感兴趣。此操作能够帮忙他们预测市场上可能产生的潜在状况。
应用 VAR 模型的根本要求是:
具备至多两个变量的工夫序列。
变量之间存在动静关系。
它被认为是一个自回归模型,因为模型所做的预测取决于过来的值,这意味着每个观测值都被建模为其滞后值的函数。
ARIMA 和 向量自回归 模型之间的根本区别在于,所有 ARIMA 模型都用于单变量工夫序列,其中 向量自回归 模型实用于多变量工夫序列。此外,ARIMA 模型是单向模型,这意味着因变量受其过来值或滞后值自身的影响,其中 向量自回归 是双向模型,这意味着因变量受其过来值或另一个变量值的影响或受这两件事的影响。
什么是向量自回归
向量自回归模型是统计分析中常常应用的模型,它摸索了几个变量之间的互相关系。
在开始建模局部之前,让咱们先理解一下模型背地的数学。
单变量工夫序列的典型自回归模型 (AR(p)) 能够示意为
其中
y t -i 示意较早期间的变量值。
A是一个时不变的 ( k × k ) 矩阵。
e t是一个误差项。
c是模型的截距。
这里的阶数 p 的意思是,最多应用 y 的 p滞后。
家喻户晓,向量自回归模型解决的是多元工夫序列,这意味着会有两个或多个变量相互影响。因而,向量自回归 模型方程随着工夫序列中变量数量的减少而减少。
假如有两个工夫序列变量 y1 和 y2,因而要计算 y1(t),向量自回归 模型将应用两个工夫序列变量的滞后。
例如,具备两个工夫序列变量(y1 和 y2)的 VAR(1) 模型的方程如下所示:
其中,Y{1,t-1} 是 y1 的第一个滞后值,Y{2,t-1} 是 y2 的第一个滞后值。
咱们能够分明地理解模型的方程将如何随着变量和滞后值的减少而减少。例如,具备 3 个工夫序列变量的 VAR(3) 模型方程如下所示。
所以这就是 p 值将如何减少模型方程的长度,而变量的数量将减少方程的高度。
抉择模型的滞后数
有两种次要办法能够抉择模型的滞后数:
教训办法,咱们应用信息规范
推理方法包含应用假设检验
咱们只思考信息规范。有 3 个风行的信息规范,即:
赤池信息准则 (AIC)
施瓦茨-贝叶斯 (BIC)
汉南-奎恩 (HQ)
实际上,最佳滞后数是信息规范最小的滞后数。而后,咱们预计 p=0,...,pmax 的 VAR(p) 并抉择最小化 AIC、BIC 或 HIQ 的值 p。
向量自回归模型的预计包含以下步骤:
抉择最佳滞后长度
信息规范 (IC) 用于确定最佳滞后长度。最罕用的是 Akaike IC、Hannah-Quinn 准则和 Schwarz 准则。
平稳性测验
下一步是预计变量的平稳性。一种宽泛应用的预计平稳性的办法是增广迪基-富勒测验和菲利普斯-佩隆测验。如果变量是非安稳的,则应采纳一阶差分并以雷同的形式测试平稳性。
协整测验
变量可能是非安稳的,但具备雷同阶数的积分。在这种状况下,能够应用矢量纠错模型 (VECM) 而不是 向量自回归 来剖析它们。如果变量是协整的,则在以下剖析中利用 VECM 而不是 向量自回归 模型。VECM 利用于非变换的非安稳序列,而 向量自回归 应用变换的或安稳的输出。
模型预计
应用抉择的滞后数和具备标准误差的系数运行 向量自回归 模型,并计算相应的 t 统计量以评估统计显着性。
诊断测试
接下来,应用 Breusch-Godfrey 测验对模型进行序列相关性测验,应用 Breusch-Pagan 测验测验异方差性和稳定性。
脉冲响应函数 (IRF)
IRF 用于以图形形式示意 向量自回归 模型的后果,并预测变量对彼此的影响。
格兰杰因果测验
这些变量可能是相干的,但它们之间可能不存在因果关系,或者影响可能是双向的。Granger 测验表明变量之间的因果关系,并依据 向量自回归 零碎中一对变量的以后值和过来值的交互作用显示因果关系的方向。
向量自回归 在以下几种状况下很有用
向量自回归 面临的一个批评是它们是非实践的。也就是说,它们不是建设在某些将实践构造强加于方程的经济实践之上。假如每个变量都会影响零碎中的所有其余变量,这使得对预计系数的间接解释变得艰难。尽管如此,向量自回归 在以下几种状况下很有用:
- 在不须要明确解释的状况下预测相干变量的汇合;
- 测试一个变量是否对预测另一个变量有用(格兰杰因果测验的根底);
- 脉冲响应剖析,剖析一个变量对另一个变量忽然但临时变动的响应;
- 预测误差方差合成,其中每个变量的预测方差比例归因于其余变量的影响。
R语言用向量自回归(VAR)进行经济数据脉冲响应钻研剖析
自从Sims(1980)发表开创性的论文以来,向量自回归模型曾经成为宏观经济钻研中的要害工具。这篇文章介绍了VAR剖析的基本概念,并领导了简略模型的估算过程。
单变量自回归
VAR代表_向量自回归_。为了了解这意味着什么,让咱们首先来看一个简略的单变量(即仅一个因变量或内生变量)自回归(AR)模型,其模式为yt=a1yt−1+et。
平稳性
在估算此类模型之前,应始终查看所剖析的工夫序列是否稳固,即它们的均值和方差随工夫变动是恒定的,并且不显示任何趋势行为。
有一系列统计测验,例如Dickey-Fuller,KPSS或Phillips-Perron测验,以测验序列是否稳固。另一种十分常见的做法是绘制序列并查看其是否围绕恒定的平均值(即水平线)挪动。如果是这种状况,它很可能是稳固的。
自回归滞后模型
像AR(p)模型一样,仅凭其本身的滞后对宏观经济变量进行回归可能是一种限制性很大的办法。通常,更适合的假如是还有其余因素。通过蕴含因变量的滞后值以及其余(即,外生)变量的同期和滞后值的模型来实现这种想法。同样,这些外生变量应该是稳固的。对于内生变量yt和外生变量xt例如_自回归散布滞后_或ADL,模型能够写成
yt=a1yt−1+b0xt+b1xt−1+et.
这种ADL模型的预测性能可能会比简略的AR模型更好。然而,如果外生变量也依赖于内生变量的滞后值怎么办?这意味着xt也是内生的,还有进一步的空间能够改善咱们的预测。
向量自回归模型
因而,如上所述,VAR模型能够重写为一系列独自的ADL模型。实际上,能够通过别离预计每个方程来预计VAR模型。
规范VAR模型的协方差矩阵是_对称的_,即,对角线右上角的元素(“上三角”)将对角线左下角的元素(“下三角”)镜像。这反映了这样一种想法,即内生变量之间的关系仅反映相关性,并且不容许做出因果关系的陈说,因为在每个方向上的影响都是雷同的。
在所谓的_结构化_ VAR(SVAR)模型的背景下剖析了同时因果关系,或更确切地说,是变量之间的构造关系,该模型对协方差矩阵施加了限度 。
在本文中,我思考VAR(2)过程。
此示例的人工样本是在R中生成的
set.seed(123) # 因为可复制性的思考,重置随机数发生器# 生成样本t <- 200 # 工夫序列察看数k <- 2 # 内生变量数p <- 2 # 滞后阶数# 生成系数矩阵A.1 <- matrix(c(-.3, .6, -.4, .5), k) # 滞后系数矩阵1A.2 <- matrix(c(-.1, -.2, .1, .05), k) # 滞后系数2A <- cbind(A.1, A.2) # 系数矩阵# 生成序列series <- matrix(0, k, t + 2*p) # 带有0的原始序列for (i in (p + 1):(t + 2*p)){ # 生成e ~ N(0,0.5)的序列 series[, i] <- A.1%*%series[, i-1] + A.2%*%series[, i-2] + rnorm(k, 0, .5)}series <- ts(t(series[, -(1:p)])) # 转换为工夫序列格局names <- c("V1", "V2") # 重命名变量plot.ts(series) # 绘制序列
估算值
简略VAR模型的参数和协方差矩阵的预计很简略。
为了预计VAR模型,加载并指定数据(y
)和 模型。
比拟
VAR剖析中的一个核心问题是找到滞后的阶数,以产生最佳后果。模型比拟通常基于信息规范,例如AIC,BIC或HQ。通常,因为是小样本预测,AIC优于其余规范。然而,BIC和HQ在大型样本中成果很好 。
能够计算规范信息规范以找到最佳模型。在此示例中,咱们应用AIC:
通过查看,summary
咱们能够看到AIC倡议应用2的阶数。
summary(var.aic)
## VAR Estimation Results:## ========================= ## Endogenous variables: Series.1, Series.2 ## Deterministic variables: none ## Sample size: 200 ## Log Likelihood: -266.065 ## Roots of the characteristic polynomial:## 0.6611 0.6611 0.4473 0.03778## Call:## VAR(y = series, type = "none", lag.max = 5, ic = "AIC")## ## ## Estimation results for equation Series.1: ## ========================================= ## Series.1 = Series.1.l1 + Series.2.l1 + Series.1.l2 + Series.2.l2 ## ## Estimate Std. Error t value Pr(>|t|) ## Series.1.l1 -0.19750 0.06894 -2.865 0.00463 ** ## Series.2.l1 -0.32015 0.06601 -4.850 2.51e-06 ***## Series.1.l2 -0.23210 0.07586 -3.060 0.00252 ** ## Series.2.l2 0.04687 0.06478 0.724 0.47018 ## ---## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1## ## ## Residual standard error: 0.4638 on 196 degrees of freedom## Multiple R-Squared: 0.2791, Adjusted R-squared: 0.2644 ## F-statistic: 18.97 on 4 and 196 DF, p-value: 3.351e-13 ## ## ## Estimation results for equation Series.2: ## ========================================= ## Series.2 = Series.1.l1 + Series.2.l1 + Series.1.l2 + Series.2.l2 ## ## Estimate Std. Error t value Pr(>|t|) ## Series.1.l1 0.67381 0.07314 9.213 < 2e-16 ***## Series.2.l1 0.34136 0.07004 4.874 2.25e-06 ***## Series.1.l2 -0.18430 0.08048 -2.290 0.0231 * ## Series.2.l2 0.06903 0.06873 1.004 0.3164 ## ---## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1## ## ## Residual standard error: 0.4921 on 196 degrees of freedom## Multiple R-Squared: 0.3574, Adjusted R-squared: 0.3443 ## F-statistic: 27.26 on 4 and 196 DF, p-value: < 2.2e-16 ## ## ## ## Covariance matrix of residuals:## Series.1 Series.2## Series.1 0.21417 -0.03116## Series.2 -0.03116 0.24154## ## Correlation matrix of residuals:## Series.1 Series.2## Series.1 1.000 -0.137## Series.2 -0.137 1.000`仔细观察后果,咱们能够将实在值 与模型的参数估计值进行比拟:
实在值``
A## [,1] [,2] [,3] [,4]## [1,] -0.3 -0.4 -0.1 0.10## [2,] 0.6 0.5 -0.2 0.05# Extract coefficients, standard errors etc. from the object# produced by the VAR functionest_coefs <- coef(var.aic)# 仅提取两个因变量的系数,并将它们组合为一个矩阵# 输入四舍五入的估计值round(est_coefs, 2)## Series.1.l1 Series.2.l1 Series.1.l2 Series.2.l2## [1,] -0.20 -0.32 -0.23 0.05## [2,] 0.67 0.34 -0.18 0.07
所有估计值都有正确的符号,并且绝对靠近其实在值。
点击题目查阅往期内容
R语言VAR模型的不同类型的脉冲响应剖析
左右滑动查看更多
01
02
03
04
脉冲响应
一旦咱们确定了最终的VAR模型,就必须解释其预计的参数值。因为VAR模型中的所有变量都相互依赖,因而单个参数值仅提供 无限信息。为了更好地理解模型的动静行为,应用了脉冲响应(IR)。能够绘制因变量的轨迹,产生在许多宏观论文中都能够找到的那些波浪曲线。
在上面的示例中,咱们想晓得受到冲击后序列2的行为。指定了咱们想要脉冲响应的模型和变量后,咱们将工夫范畴设置n.ahead
为20。该图给出了序列2的响应。
# 计算脉冲响应# 绘制脉冲响应plot(ir.1)
请留神,_正交_选项很重要,因为它阐明了变量之间的关系。在咱们的示例中,咱们曾经晓得不存在这样的关系,因为真正的方差-协方差矩阵(或简称协方差矩阵)在非对角元素中是对角为零的对角线。然而,因为具备200个观测值的无限工夫序列数据限度了参数估计的精度,因而协方差矩阵的非对角元素具备正值,这意味着 非零同时效应。为了在IR中排除这种状况,咱们设置了ortho = FALSE
。后果是,脉冲响应在周期0中从零开始。也能够尝试另一种办法并进行设置ortho = TRUE
,那么绘图从零开始。
要理解这一点,还能够计算并绘制_累积_脉冲响应函数,以理解 总体长期影响:
# 计算脉冲响应# 绘图plot(ir.2)
咱们看到,只管序列2对序列1中的 反馈在某些期间是负面的,但总体成果却是显着侧面。
本文摘选 《 R语言用向量自回归(VAR)进行经济数据脉冲响应钻研剖析 》 ,点击“浏览原文”获取全文残缺材料。
点击题目查阅往期内容
R语言预计时变VAR模型工夫序列的实证钻研剖析案例
向量自回归VAR的迭代多元预测预计 GDP 增长率工夫序列|数据分享ARIMA、GARCH 和 VAR模型预计、预测ts 和 xts格局工夫序列
向量自回归(VAR)模型剖析消费者价格指数 (CPI) 和失业率工夫序列
Matlab创立向量自回归(VAR)模型剖析消费者价格指数 (CPI) 和失业率工夫序列
Stata狭义矩量法GMM面板向量自回归 VAR模型抉择、预计、Granger因果测验剖析投资、支出和生产数据R语言时变向量自回归(TV-VAR)模型剖析工夫序列和可视化
R语言用向量自回归(VAR)进行经济数据脉冲响应钻研剖析
R语言arima,向量自回归(VAR),周期自回归(PAR)模型剖析温度工夫序列
R语言VAR模型的不同类型的脉冲响应剖析
R语言随机搜寻变量抉择SSVS预计贝叶斯向量自回归(BVAR)模型
R语言时变参数VAR随机模型
R语言预计时变VAR模型工夫序列的实证钻研剖析案例
R语言向量自回归模型(VAR)及其实现
R语言实现向量自回归VAR模型
R语言预计时变VAR模型工夫序列的实证钻研剖析案例
Python和R用EWMA,ARIMA模型预测工夫序列
R语言用LASSO,adaptive LASSO预测通货膨胀工夫序列
Python中的ARIMA模型、SARIMA模型和SARIMAX模型对工夫序列预测
R语言arima,向量自回归(VAR),周期自回归(PAR)模型剖析温度工夫序列
【视频】Python和R语言应用指数加权均匀(EWMA),ARIMA自回归挪动均匀模型预测工夫序列