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


    上篇介绍的传递函数模型的假设是,会影响到,而不会影响到,因此称为外生变量(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(),语法结构如下:

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

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

    402 Payment Required

    参数含义如下:

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

    • p:模型阶数;

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

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

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

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

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

    官方文档示例:

    1. library(vars)
    2. data(Canada)
    3. head(Canada)
    4. ##             e     prod       rw    U
    5. ## [1,] 929.6105 405.3665 386.1361 7.53
    6. ## [2,] 929.8040 404.6398 388.1358 7.70
    7. ## [3,] 930.3184 403.8149 390.5401 7.47
    8. ## [4,] 931.4277 404.2158 393.9638 7.27
    9. ## [5,] 932.6620 405.0467 396.7647 7.37
    10. ## [6,] 933.5509 404.4167 400.0217 7.13
    11. model <- VAR(Canada, p = 2type = "const")
    12. summary(model)

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

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

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

    1. ## Covariance matrix of residuals:
    2. ##              e      prod       rw        U
    3. ## e     0.131635 -0.007469 -0.04210 -0.06909
    4. ## prod -0.007469  0.425711  0.06461  0.01392
    5. ## rw   -0.042099  0.064613  0.60886  0.03422
    6. ## U    -0.069087  0.013923  0.03422  0.07821
    7. ## 
    8. ## Correlation matrix of residuals:
    9. ##             e     prod      rw       U
    10. ## e     1.00000 -0.03155 -0.1487 -0.6809
    11. ## prod -0.03155  1.00000  0.1269  0.0763
    12. ## rw   -0.14870  0.12691  1.0000  0.1568
    13. ## U    -0.68090  0.07630  0.1568  1.0000

    2.2 结构性VAR

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

    402 Payment Required

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

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

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

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

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

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

    参数含义如下:

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

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

    1. m <- diag(4)
    2. diag(m) <- NA
    3. m[21] <- NA
    4. m[41] <- NA
    5. m
    6. ##      [,1] [,2] [,3] [,4]
    7. ## [1,]   NA    0    0    0
    8. ## [2,]   NA   NA    0    0
    9. ## [3,]    0    0   NA    0
    10. ## [4,]   NA    0    0   NA
    11. smodel <- SVAR(model, Amat = m)
    12. print(smodel)
    13. ## SVAR Estimation Results:
    14. ## ======================== 
    15. ## 
    16. ## 
    17. ## Estimated A matrix:
    18. ##          e  prod    rw     U
    19. ## e    2.756 0.000 0.000 0.000
    20. ## prod 0.087 1.533 0.000 0.000
    21. ## rw   0.000 0.000 1.282 0.000
    22. ## 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
  • 相关阅读:
    PrintWrter中的write()和print()方法
    信创操作系统--麒麟Kylin桌面操作系统 (项目十二 使用Systemd管理系统服务)
    Linux下yum源配置实战
    刷题笔记28——一直分不清的Kruskal、Prim、Dijkstra算法
    基于opencv对高空拍摄视频消抖处理
    windows下安装配置CGAL
    Centos 下mysql数据库完整安装过程(亲测可用)
    Linux网络编程(socket的tcp通信)
    银行主动安全纵深防御体系解决方案
    Vuex的使用
  • 原文地址:https://blog.csdn.net/weixin_54000907/article/details/125476825