时间序列分析(11)| 向量自回归模型(VAR模型)

本文深入介绍了向量自回归模型(VAR模型),这是一种用于研究多个内生变量之间相互影响的统计模型。文章首先定义了内生变量和外生变量的概念,接着详细阐述了VAR模型的数学形式,包括标准形式和结构性VAR模型,并通过R语言的vars包展示了如何估计和分析VAR模型。实例中,以加拿大经济数据为例,展示了如何使用VAR()和SVAR()函数进行模型估计和参数解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上篇介绍的传递函数模型的假设是,会影响到,而不会影响到,因此称为外生变量(exogenous variable)。如果和以及更多的变量之间能够相互影响,此时它们就是内生变量(endogenous variable)。向量自回归模型(vector autoregressive model,VAR模型)研究的就是内生变量之间的相互影响作用。

1 模型形式

以双变量为例:

402 Payment Required

式中,、、、是滞后算子多项式,且阶数相同,假设其阶数为,它也称作是VAR模型的阶数。

对于每个变量来说,预测变量包括本身的阶滞后值、其他变量的阶滞后值、其他变量的当期值(或)。

和为白噪声,且彼此互不相关。

将模型形式中的当期值移到等号左侧,变成如下形式:

402 Payment Required

以矩阵形式写出,

再变换得,

使用一些符号代替上式中的矩阵,得到下式:

式中,,其余依次类推。

上式中,等号右侧不再包含变量的当期值,称为「VAR模型的标准形式」,而包含当期值的形式称为「结构性VAR模型」

变量当期值之间的相关性被隐藏在模型残差之中。因为,

显然,若变量的当期值之间存在联系,即和至少有一个不为0,则和必然相关;反之,若变量的当期值不存在相互影响,则和也不相关。

此外,模型中还可加入其他项,如截距(即)、时间趋势项、外生变量等。

2 模型估计

在R语言中,可以使用vars工具包对VAR模型进行估计。

2.1 标准形式VAR

若VAR模型中有个内生变量,则有个模型表达式。标准形式的VAR模型可以直接使用OLS方法对每个表达式进行估计,使用的函数是VAR(),语法结构如下:

VAR(y, p = 1, type = c("const", "trend", "both", "none"),
    season = NULL, exogen = NULL, 
    lag.max = NULL,
    ic = c("AIC", "HQ", "SC", "FPE"))

该函数针对的模型形式如下:

402 Payment Required

参数含义如下:

  • y:内生变量构成的矩阵,每列代表一个变量;

  • p:模型阶数;

  • type:确定成分的类型,包括截距、时间项、二者兼有、二者皆无,分别使用"const"、 "trend"、"both"、"none"表示;

  • season:居中的季节虚拟变量;

  • exogen:外生变量构成的矩阵,对应模型形式中的;

  • lag.max:若模型阶数不确定,可通过此参数设置最大阶数,再根据ic参数指定的准则确定“最优”阶数;

  • ic:确定“最优”阶数的信息准则。

官方文档示例:

library(vars)
data(Canada)
head(Canada)
##             e     prod       rw    U
## [1,] 929.6105 405.3665 386.1361 7.53
## [2,] 929.8040 404.6398 388.1358 7.70
## [3,] 930.3184 403.8149 390.5401 7.47
## [4,] 931.4277 404.2158 393.9638 7.27
## [5,] 932.6620 405.0467 396.7647 7.37
## [6,] 933.5509 404.4167 400.0217 7.13

model <- VAR(Canada, p = 2, type = "const")
summary(model)

上述代码会输出每个模型表达式的参数估计结果。以第一个变量e为例:

## Estimation results for equation e: 
## ================================== 
## e = e.l1 + prod.l1 + rw.l1 + U.l1 + e.l2 + prod.l2 + rw.l2 + U.l2 + const 
## 
##           Estimate Std. Error t value Pr(>|t|)    
## e.l1     1.638e+00  1.500e-01  10.918  < 2e-16 ***
## prod.l1  1.673e-01  6.114e-02   2.736  0.00780 ** 
## rw.l1   -6.312e-02  5.524e-02  -1.143  0.25692    
## U.l1     2.656e-01  2.028e-01   1.310  0.19444    
## e.l2    -4.971e-01  1.595e-01  -3.116  0.00262 ** 
## prod.l2 -1.017e-01  6.607e-02  -1.539  0.12824    
## rw.l2    3.844e-03  5.552e-02   0.069  0.94499    
## U.l2     1.327e-01  2.073e-01   0.640  0.52418    
## const   -1.370e+02  5.585e+01  -2.453  0.01655 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 
## Residual standard error: 0.3628 on 73 degrees of freedom
## Multiple R-Squared: 0.9985,  Adjusted R-squared: 0.9984 
## F-statistic:  6189 on 8 and 73 DF,  p-value: < 2.2e-16

以及残差的协方差矩阵和相关系数矩阵:

## Covariance matrix of residuals:
##              e      prod       rw        U
## e     0.131635 -0.007469 -0.04210 -0.06909
## prod -0.007469  0.425711  0.06461  0.01392
## rw   -0.042099  0.064613  0.60886  0.03422
## U    -0.069087  0.013923  0.03422  0.07821
## 
## Correlation matrix of residuals:
##             e     prod      rw       U
## e     1.00000 -0.03155 -0.1487 -0.6809
## prod -0.03155  1.00000  0.1269  0.0763
## rw   -0.14870  0.12691  1.0000  0.1568
## U    -0.68090  0.07630  0.1568  1.0000

2.2 结构性VAR

从前面的标准形式转换成如下结构性VAR形式:

402 Payment Required

与标准形式相比,,其余以此类推。

虽然标准形式的VAR是从结构性VAR中推导出来的,但该过程是不可逆的。很容易理解,已知和能够得到;反之,已知并不能得到和。

对于结构性VAR模型,只有和中的部分元素已知时才能将其估计出来。

例如,假设已知不受当期值影响,即已知,也即,则此时结构性VAR的其他参数是可以被估计出来的。

估计结构性VAR使用的函数是SVAR(),语法结构如下:

SVAR(x, estmethod = c("scoring", "direct"), 
     Amat = NULL, Bmat = NULL,
     start = NULL, max.iter = 100, 
     conv.crit = 0.1e-6, maxls = 1.0,
     lrtest = TRUE, ...)

参数含义如下:

  • x:使用VAR()函数估计出的标准形式VAR;

  • Amat、Bmat:对矩阵A和B施加约束。若只对A和B其中一个施加约束,则另外一个默认为单位矩阵;对于需要施加约束的矩阵,已知的元素直接赋给相应的值,待估计的元素设置为NA。

m <- diag(4)
diag(m) <- NA
m[2, 1] <- NA
m[4, 1] <- NA
m
##      [,1] [,2] [,3] [,4]
## [1,]   NA    0    0    0
## [2,]   NA   NA    0    0
## [3,]    0    0   NA    0
## [4,]   NA    0    0   NA

smodel <- SVAR(model, Amat = m)
print(smodel)
## SVAR Estimation Results:
## ======================== 
## 
## 
## Estimated A matrix:
##          e  prod    rw     U
## e    2.756 0.000 0.000 0.000
## prod 0.087 1.533 0.000 0.000
## rw   0.000 0.000 1.282 0.000
## U    2.562 0.000 0.000 4.882
推荐阅读

e070939dad5b60330d2eaf53fd5dc6aa.png
ggplot2基础语法系列推文汇总
389bae3676edf54a78f76abcc222719b.png
胶水函数用法的几个例子
640fc92db014352390d067d1966d4980.png
空间计量经济模型的简单形式在R语言中的实现
c53e93ee246540f8546421547f6a14b3.png
使用R语言的常用工具包绘制双变量填充地图
c2b7cb0d72ed332e5e5eb1fc5985c4a3.png
R语言基础绘图系统的拼图功能

2de0b9d49297038f0f057034c539d755.png
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值