精华内容
下载资源
问答
  • 利用 MTS 包的 VAR() 函数估计 VAR(1) 模型: library(MTS) Z <- coredata(as.xts(ts.gdp3r)) m1.gdp3r <- VAR(Z, 1) 估计 VAR(2) 模型: m2.gdp3r <- VAR(Z, 2) VAR(1) 的 AIC 为 −3.46 , VAR(2) ...

    利用 MTS 包的 VAR() 函数估计 VAR(1) 模型:

    library(MTS)

    Z <- coredata(as.xts(ts.gdp3r))
    m1.gdp3r <- VAR(Z, 1)

    估计 VAR(2) 模型:

    m2.gdp3r <- VAR(Z, 2)

    VAR(1) 的 AIC 为 −3.46 , VAR(2) 的 AIC 为 −3.50, VAR(2) 占优。

    利用 MTS 包的 VARorder 函数可以计算 VAR 定阶的 M(i) 统计量检验和各种信息准则:

    m3.gdp3r <- VARorder(Z/100)

    从 AIC 比较来看,应该取 p = 2 。从检验来看,从 i = 3 阶开始 Φ i 就不显著了,但 Φ 1 和 Φ 2 显著,所以应该取 p = 2 阶。

    模型检验

    可以计算模型残差,对残差进行多元白噪声检验(多元混成检验)。残差的多元混成检验因为使用了估计的参数,所以统计量的自由度会减少 k 2 p ,这是系数矩阵 Φ j , j = 1,2,...,p 中的参数个数。如果系数矩阵中某些参数固定为 0 ,应按无约束的参数个数计算要扣除的自由度。在 MTS 包的 mq() 函数中用 adj= 指定需要减少的自由度。 

    VAR(2) 模型的残差的多元混成检验程序如下:

    resi <- m2.gdp3r$residuals
    mq(resi, adj=3^2 * 2)

    检验结果只有在滞后 4 显著,基本可以认为模型是充分的。
    对残差还可以进行异方差等检验。

    模型简化

    当 VAR 中分量个数 k 较大时,模型有许多参数,系数矩阵中参数个数为 k 2 p 个。如果没有先验知识要求参数非零,可以将不显著的参数约束为零再估计。
    模型简化没有公认的最优做法。一种办法是计算参数估计值与标准误差的比值,称为 t 比值,将 t 比值绝对值小于 1.645( 相当于 0.10 检验水平 ) 或者小于 1.96 (相当于 0.05 检验水平)的系数设置为零。 MTS 包的VARchi() 函数输入多元时间序列和 VAR 的阶,以及thres=1.645 或 thres=1.96 这样的 t 比值界限,返回可设置为零的个数,以及这些参数同时等于零的零假设的卡方检验结果。

    VARchi(Z, 2, thres=1.645)

    VARchi(Z, 2, thres=1.96)

    结果表明在 0.10 水平下,逐个检验有 8 个参数不显著,如果检验这 8 个参数同时等于零的零假设, p 值为0.056 ,可以同时设这 8 个参数等于 0 。如果在 0.05 水平下逐个检验有 10 个参数不显著,但是其同时等于零的检验的 p 值为 0.0005 ,所以不能同时将 10 个参数删去。 

    MTS 包的 refVAR() 输入一个无约束的 VAR 模型的结果,以及 thres=1.96 这样的 t 比值界限,生成设置部分系数为零的约束估计结果。可以通过 AIC 比较完全模型和约束模型。如:

    mods1.gdp3r <- VAR(Z, 2)

    mods2.gdp3r <- refVAR(mods1.gdp3r, thres=1.96)

    无约束的 VAR(2) 的 AIC 值为 −3.50 ,约束 10 个参数为零的 VAR(2) 的 AIC 值为 −3.53 ,所以约束模型较优。

    对这个简化的模型的检验,可以提取残差后用 MTS::mq() 函数检验,这时自由度缩减个数由原来的 3 2 ×2 =18 个,减少到 9 个,因为模型中约束了 9 个参数等于零。 MTS 包还提供了一个 MTSdiag() 函数,输入模型结果和 adj= 自由度缩减个数,作残差的 CCM 估计表、图和残差的多元混成检验:

    MTSdiag(mods2.gdp3r, adj=9)

    从残差的 CCM 和多元混成检验结果来看,约束的模型是充分的。

    残差的相关阵计算程序:
    cor(mods2.gdp3r$residuals)

    格兰杰因果性检验

    如果模型可以简化为某些代表格兰杰因果性的系数等于零,则可以据此进行格兰杰因果性的检验。在二元的VAR(1) 模型中,如果约束 ϕ 12 (1) = 0 后的模型与无约束模型没有显著差异,则 r 2t 不是 r 1t 的格兰杰原因。 p 阶和 k 元的情形类似。
    为了比较无约束与约束的模型,使用对数似然比检验,得到的统计量在约束参数等于零的零假设下渐近服从卡方分布。
    MTS 包中 GrangerTest() 函数执行格兰杰因果性检验,默认第一个分量为单向的格兰杰原因,可以用locInput= 序号指定哪一个或者哪几个分量作为原因。

    GrangerTest(Z, p=2, locInput=3)

    结果 p 值小于 0.05 ,说明英国和加拿大也是美国的格兰杰原因。

    GrangerTest(Z, p=2, locInput=2)

    结果表明美国和英国是加拿大的格兰杰原因。

    GrangerTest(Z, p=2, locInput=1)

    综合以上三个结果,在 0.05 水平下英国是美国和加拿大的格兰杰原因,加拿大和美国不是英国的格兰杰原因,可以认为英国是美国和加拿大单向的格兰杰原因。结果中给出了约束系数等于零的模型估计结果。

    VAR 的预测

    第一个预测对应 2011 年第三季度,最后一个预测对应 2013 年第二季度。

    VARpred(m2.gdp3r, 8)

    colMeans(Z)#多步预测会趋近到序列均值,计算序列均值

    apply(Z, 2, sd)#计算序列的样本标准差

    VAR 的脉冲响应函数

    VARirf(mods2.gdp3r$Phi, mods2.gdp3r$Sig, orth=FALSE)

    VARirf(mods2.gdp3r$Phi, mods2.gdp3r$Sig, orth=TRUE)#这三个分量的新息的即期相关不大,所以正交化的脉冲响应与原始的表现相近。

    展开全文
  • 脉冲响应分析是采用向量自回归模型的计量经济学分析中的重要一步。它们的主要目的是描述模型变量对一个或多个变量的冲击的演化。因此使它们成为评估经济时非常有用的工具。这篇文章介绍了VAR文献中常用的脉冲响应...

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

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


    目录

    模型与数据

    估算值

    预测误差脉冲响应

    识别问题

    正交脉冲响应

    结构脉冲反应

    广义脉冲响应

    参考文献


    脉冲响应分析是采用向量自回归模型的计量经济学分析中的重要一步。它们的主要目的是描述模型变量对一个或多个变量的冲击的演化。因此使它们成为评估经济时非常有用的工具。这篇文章介绍了VAR文献中常用的脉冲响应函数的概念和解释。

    模型与数据

    为了说明脉冲响应函数的概念,使用了Lütkepohl(2007)的示例。可以从教科书的网站上下载所需的数据集。它包含从1960年1季度到1982年4季度按季度和季节性调整的时间序列,这些序列是西德的固定投资,可支配收入和数十亿德国马克的消费支出。

    # 下载数据
    data <- read.table("e1.dat", skip = 6, header = TRUE)
    
    # 仅使用前76个观测值,因此有73个观测值
    # 取一阶差分后,留给估计的VAR(2)模型。
    data <- data[1:76, ]
    
    # 转换为时间序列对象
    data <- ts(data, start = c(1960, 1), frequency = 4)
    
    # 取对数和差值
    data <- diff(log(data))
    
    # 绘图数据
    plot(data,  main = "Dataset E1 from Lütkepohl (2007)")

    此数据用于估计具有常数项的VAR(2)模型。

    估算值

    可以使用vars软件包估算VAR模型:

    
    # 查看摘要统计信息
    summary(model)

    代码的结果应与Lütkepohl(2007)的3.2.3节中的结果相同。

    预测误差脉冲响应

    由于VAR模型中的所有变量都相互依赖,因此单独的系数估计仅提供有关反应的有限信息。为了更好地了解模型的动态行为,使用了脉冲响应(IR)。线性VAR模型的每个脉冲响应函数的出发点都是其移动平均值(MA)表示,这也是预测误差脉冲响应(FEIR)函数。

    在R 中,程序包可用于获取预测误差脉冲响应。

    识别问题

    从上图可以看出,在第一期间FEIR为零。对于使用的数据集,估计为

    ##              invest       income         cons
    ## invest 2.129629e-03 7.161667e-05 1.232404e-04
    ## income 7.161667e-05 1.373377e-04 6.145867e-05
    ## cons   1.232404e-04 6.145867e-05 8.920351e-05

    由于估计方差-协方差矩阵的非对角线元素不为零,因此我们可以假设VAR模型中的变量之间存在同期相关性。这由与Σ相对应的相关矩阵确认:

    ##           invest    income      cons
    ## invest 1.0000000 0.1324242 0.2827548
    ## income 0.1324242 1.0000000 0.5552611
    ## cons   0.2827548 0.5552611 1.0000000

    但是,这些矩阵仅描述了误差之间的相关性,但不清楚因果关系的方向。识别这些因果关系是任何VAR分析的主要挑战之一。

    正交脉冲响应

    识别VAR模型的冲击的常用方法是使用正交脉冲响应(OIR)。基本思想是分解方差-协方差矩阵,使∑ = PP− 1,其中P是带有正对角线元素的下三角矩阵,通常通过Choleski分解获得。给定估计方差-协方差矩阵PP,可以通过以下方法获得分解

    
    ##             invest      income        cons
    ## invest 0.046147903 0.000000000 0.000000000
    ## income 0.001551894 0.011615909 0.000000000
    ## cons   0.002670552 0.004934117 0.007597773
    

    从这个矩阵可以看出,收入冲击对消费具有同时性的影响,反之则不然。

    在R 中,vars可以通过设置参数来使用包的功能来获得OIR:

    
    plot(oir)

    请注意,Choleski分解的输出是一个较低的三角矩阵,因此第一行中的变量永远不会对任何其他变量的同时冲击敏感,而系统中的最后一个变量将对所有其他变量的冲击敏感。因此,OIR的结果可能对变量的顺序很敏感,建议用不同的顺序估计上述VAR模型,以查看所产生的OIR受此影响的程度。

    结构脉冲反应

    在VAR模型的估计过程中,结构脉冲响应(SIR)已经考虑了识别问题。

    广义脉冲响应

    正交和结构响应都可以通过找到变量的正确顺序或通过识别估计的结构参数来约束。Koop等(1998)提出了一种不同类型的响应函数,即所谓的广义脉冲响应(GIR)。它们独立于变量顺序,因为它们将其他冲击的影响整合到响应之外。

    对于难以识别结构关系的大型系统,GIR非常有用。

    展开全文
  • VAR模型分析联合内生变量的动态关系一、实验介绍1.1 实验内容VAR模型是向量自回归模型的简称,是基于数据的统计性质建立的一种常用的计量经济模型,它把系统中每一个内生变量作为系统中所有内生变量的滞后值的函数来...

    VAR模型分析联合内生变量的动态关系

    一、实验介绍

    1.1 实验内容

    VAR模型是向量自回归模型的简称,是基于数据的统计性质建立的一种常用的计量经济模型,它把系统中每一个内生变量作为系统中所有内生变量的滞后值的函数来构造模型,从而将单变量自回归模型推广到由多元时间序列变量组成的“向量”自回归模型。本实验运用 R 语言来建立两变量的向量自回归模型,首先是检验两变量序列的平稳性,然后进行协整检验,确定待拟合模型的滞后阶数,再拟合VAR模型和做脉冲响应分析,最终对拟合的VAR模型进行分析于预测。通过本实验学会用VAR模型处理多个相关经济指标的分析与预测。

    1.2 实验知识点

    • 平稳性检验
    • 协整检验
    • 滞后阶数的确定
    • VAR 模型的拟合
    • 脉冲响应分析
    • VAR 模型的预测

    1.3 实验环境

    • R version 3.4.1
    • Xfce 终端

    1.4 适合人群

    本课程难度为较难,属于中级级别课程,适合具有 R 语言基础并且有一定经管背景的用户,熟悉 R 语言基础知识并加深巩固,学会用 R 语言建立计量经济模型分析经济数据。

    1.5 实验准备

    打开Xfce 终端,下载实验所需的数据,并启动 R :

    $ wget http://labfile.oss.aliyuncs.com/courses/910/monthdata.csv
    $ sudo R
    

    二、实验原理

    以下实验原理介绍来自 MBA 智库百科:向量自回归模型

    向量自回归模型简称VAR模型,是一种常用的计量经济模型,1980年由克里斯托弗·西姆斯(Christopher Sims)提出。VAR模型是用模型中所有当期变量对所有变量的若干滞后变量进行回归。VAR模型用来估计联合内生变量的动态关系,而不带有任何事先约束条件。它是AR模型的推广,此模型目前已得到广泛应用。

    向量自回归(VAR)是基于数据的统计性质建立模型,VAR模型把系统中每一个内生变量作为系统中所有内生变量的滞后值的函数来构造模型,从而将单变量自回归模型推广到由多元时间序列变量组成的“向量”自回归模型。VAR模型是处理多个相关经济指标的分析与预测最容易操作的模型之一,并且在一定的条件下,多元MA和ARMA模型也可转化成VAR模型,因此近年来VAR模型受到越来越多的经济工作者的重视。

    此处输入图片的描述

    三、实验步骤

    本实验利用 2005 年 8 月汇率改革后消费者价格指数(CPI)和人民币名义有效汇率(NEER)的月度数据建立两变量 VAR 模型来分析人民币汇率变动与CPI之间的动态关系。

    3.1 实验准备

    > data<-read.csv("monthdata.csv")  #读取数据
    > CPI<-data[,1]    #将 data 数据的第一列赋值给 CPI 数据框
    > NEER<-data[,2]    
    > length(CPI)  #查看 CPI 变量的数据长度
    > length(NEER)
    

    此处输入图片的描述

    可以看到数据长度为 137,即包含了 137 个月度 CPI 和 NEER 数据。

    下面我们绘制两个变量的时序图,观察消费者价格指数和名义汇率的波动情况。

    > CPI.ts<-ts(CPI,start=c(2005,8),end=c(2016,12),freq=12)   #将数据转化为时间序列
    > NEER.ts<-ts(NEER,start=c(2005,8),end=c(2016,12),freq=12)
    > par(mfrow=c(2,1))
    > plot(CPI.ts,type="l",xlab="Date", ylab="CPI")     
    > plot(NEER.ts,type="l",xlab="Date", ylab="NEER")
    

    此处输入图片的描述

    可以看到消费者价格指数(CPI)的波动幅度较大,而名义有效汇率波动较小但明显呈现一个波动上升的趋势,两个变量序列大致是不平稳的。

    3.2 平稳性检验

    在拟合 VAR 模型之前,需要对变量进行平稳性检验,如果要拟合的内生变量都是平稳的或者同阶单整的才可进行 VAR 模型的拟合。但在平稳性检验之前需要先项两变量取对数,以消除时间序列的异方差的影响。

    > lncpi<-log(CPI)     
    > lnneer<-log(NEER)
    

    进行平稳性检验本实验选择 urca 包中的 ur.df 函数进行单位根检验,若存在单位根则序列不平稳;反之,不存在单位根则序列平稳。

    > install.packages("urca")    #镜像选择 China (Lanzhou) [https]
    > library(urca)
    > urt.lncpi<-ur.df(lncpi,type='trend',selectlags='AIC')
    > urt.lnneer<-ur.df(lnneer,type='trend',selectlags='AIC')
    > summary(urt.lncpi)    
    
      ############################################### 
      # Augmented Dickey-Fuller Test Unit Root Test # 
      ############################################### 
    
      Test regression trend 
    
    
      Call:
      lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
    
      Residuals:
            Min        1Q    Median        3Q       Max 
      -0.028676 -0.003311  0.000381  0.003035  0.043118 
    
      Coefficients:
                    Estimate Std. Error t value Pr(>|t|)  
      (Intercept)  3.047e-01  1.477e-01   2.063   0.0411 *
      z.lag.1     -6.555e-02  3.185e-02  -2.058   0.0416 *
      tt          -1.443e-05  1.678e-05  -0.860   0.3912  
      z.diff.lag  -1.178e-01  8.627e-02  -1.365   0.1745  
      ---
      Signif. codes:  0 \u2018***\u2019 0.001 \u2018**\u2019 0.01 \u2018*\u2019 0.05 \u2018.\u2019 0.1 \u2018 \u2019 1
    
      Residual standard error: 0.007505 on 131 degrees of freedom
      Multiple R-squared:  0.05455,    Adjusted R-squared:  0.0329 
      F-statistic: 2.519 on 3 and 131 DF,  p-value: 0.06084
    
    
      Value of test-statistic is: -2.0578 1.5223 2.2719 
    
      Critical values for test statistics: 
            1pct  5pct 10pct
      tau3 -3.99 -3.43 -3.13
      phi2  6.22  4.75  4.07
      phi3  8.43  6.49  5.47
    
    > summary(urt.lnneer)   
    
      ############################################### 
      # Augmented Dickey-Fuller Test Unit Root Test # 
      ############################################### 
    
      Test regression trend 
    
    
      Call:
      lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)
    
      Residuals:
            Min     1Q    Median        3Q       Max 
      -0.038574 -0.007164 -0.000990  0.009182  0.033482 
    
      Coefficients:
                    Estimate Std. Error t value Pr(>|t|)    
      (Intercept)  0.4429099  0.1380821   3.208  0.00168 ** 
      z.lag.1     -0.0995380  0.0312008  -3.190  0.00178 ** 
      tt           0.0003157  0.0001058   2.983  0.00341 ** 
      z.diff.lag   0.4099249  0.0810914   5.055 1.42e-06 ***
      ---
      Signif. codes:  0 \u2018***\u2019 0.001 \u2018**\u2019 0.01 \u2018*\u2019 0.05 \u2018.\u2019 0.1 \u2018 \u2019 1
    
      Residual standard error: 0.01267 on 131 degrees of freedom
      Multiple R-squared:  0.1877,    Adjusted R-squared:  0.1691 
      F-statistic: 10.09 on 3 and 131 DF,  p-value: 5.01e-06
    
    
      Value of test-statistic is: -3.1902 4.2783 5.1509 
    
      Critical values for test statistics: 
            1pct  5pct 10pct
      tau3 -3.99 -3.43 -3.13
      phi2  6.22  4.75  4.07
      phi3  8.43  6.49  5.47
    

    判断是否平稳主要看详细拟合结果的最后两个部分,即:

    • 1.Value of test-statistic is:
    • 2.Critical values for test statistics:

    1 是检验统计量的值,2 是对应的显著性水平下检验统计量的临界值。

    单位根检验的原假设是序列存在单位根。

    对于 lncpi 和 lnneer 的单位根检验结果:

    lncpilnneer
    Value of test-statistic is: -2.0578 1.5223 2.2719Value of test-statistic is: -3.1902 4.2783 5.1509
    Critical values for test statistics:Critical values for test statistics:
    1pct 5pct 10pct1pct 5pct 10pct
    tau3 -3.99 -3.43 -3.13tau3 -3.99 -3.43 -3.13
    phi2 6.22 4.75 4.07phi2 6.22 4.75 4.07
    phi3 8.43 6.49 5.47phi3 8.43 6.49 5.47
    • lncpi的检验统计量的值 -2.0578 在 1%、5%、10% 的显著性水平下都大于临界值(-3.99 -3.43 -3.13),则不能拒绝原价设而接受存在单位根的假设,说明 lncpi 序列是不平稳的。(注意,统计量的值和临界值为负,统计量的值大于临界值是接受原假设;若统计量的值和临界值为正值,统计量的值大于临界值是拒绝原假设。)
    • 同理,lnneer 的检验统计量的值 -3.1902 在 1% 、5% 的显著性水平下都大于对应的临界值(-3.99 -3.43 -3.13),不能拒绝原假设,lnneer 序列也是不平稳的,存在单位根。

    由于两个变量都存在单位根,对序列差分后检验序列的平稳性。

    > dlncpi<-diff(lncpi)   #取一阶差分
    > dlnneer<-diff(lnneer)
    > urt.dlncpi<-ur.df(dlncpi,type='trend',selectlags='AIC')
    > urt.dlnneer<-ur.df(dlnneer,type='trend',selectlags='AIC')
    > summary(urt.dlncpi)  
    > summary(urt.dlnneer)
    

    由于检验的详细结果太长,截取需要的部分一阶差分平稳性检验结果:

    • lncpi 的一阶差分平稳性检验

      此处输入图片的描述

      由于 dlncpi 的检验统计量的值为 -8.1895,在 1%、5%、10% 的显著性水平上都小于对应的临界值,因此拒绝存在单位根的原假设,即 lncpi 是一阶差分平稳的。

    • lnneer 的一阶差分平稳性检验

      此处输入图片的描述

      由于 dlnneer 的检验统计量的值为 -7.0409,在 1%、5%、10% 的显著性水平上都小于对应的临界值,因此拒绝存在单位根的原假设,即 lncpi 是一阶差分平稳的。

    我们再来看一阶差分后的时间序列图:

    > par(mfrow=c(2,1))
    > plot(dlncpi,type="l",xlab="Date", ylab="diff.CPI")     
    > plot(dlnneer,type="l",xlab="Date", ylab="diff.NEER")
    

    此处输入图片的描述

    可以看到差分后的两个变量序列没有明显的波动聚集或则上升下降的趋势,比较平稳。

    两个内生变量都是一阶差分平稳的,即都是一阶单整的,是不平稳的时间序列,不能做 Granger 因果检验,只能做协整检验。

    3.3 协整检验

    协整检验主要针对非平稳的单个序列,但它们的线性组合可能是平稳的。几个变量之间可能存在的一种长期均衡关系进行检验,表现为存在某个协整方程。

    由于所有变量都是一阶单整的,是非平稳时间序列,因此各变量之间可能存在协整关系,如果要对所选择的内生变量进行VAR模型的构建,需要进行协整检验,以判断各个变量之间是否存在长期稳定的协整关系,处理各变量之间的是否存在伪回归问题。在本实验我们运用E-G两步法协整检验,需要用到 lmtest 包中的 dwtest 函数。

    • E-G两步法:第一步:回归方程的估计
    > fit<-lm(lncpi~lnneer)  
    > summary(fit)
    

    此处输入图片的描述

    由于拟合的模型变量和截距项的 t 检验在 5% 的显著性水平上都是显著的,且模型的 F 检验在5%的显著性水平上也是显著的,因此拟合的线性模型是合理的。

    协整回归方程为:lncpi=4.80296-0.03666 lnneer+εt

    > install.packages("lmtest")
    > library(zoo)
    > library(lmtest)
    > dwtest(fit)    #检验序列的自相关性
    

    此处输入图片的描述

    此处输入图片的描述

    由于 Durbin-Watson test 检验的 p-value 的值几乎为 0,该数值小于 0.05 ,说明在 5% 的显著性水平上残差序列不独立,具有自相关性。

    • 检验残差序列的平稳性:

      > error<-residuals(fit)  #提取残差序列
      > urt.residuals<-ur.df(error,type='none',selectlags='AIC')
      > summary(urt.residuals)
      

      此处输入图片的描述

      此处输入图片的描述

      根据残差序列的平稳性检验结果,在 5% 的显著性水平上拒绝残差序列存在单位根的原假设,即残差序列是平稳的,说明 CPI 和名义有效汇率两个序列之间存在协整关系,意味着我国的消费者价格指数和名义有效汇率之间具有长期均衡关系,增长或者减少具有协同效应。

    • E-G两步法:第二步:误差修正模型的建立

    > error.lag<-error[-c(137,138)]       
    > ecm.fit<-lm(dlncpi~error.lag+dlnneer)   #拟合误差修正模型
    > summary(ecm.fit)  
    > dwtest(ecm.fit)
    

    此处输入图片的描述此处输入图片的描述

    协整回归方程:此处输入图片的描述

    误差修正项的系数为负,符合误差修正机制,反映了上一期偏离长期均衡的数量将在下一期得到反向修正,这也符合之前证明的协整关系。

    3.4 滞后阶数的确定

    在拟合 VAR 模型之前还需要确定拟合几阶 VAR 模型,也就是确定滞后阶数。确定滞后阶数需要用到 vars 包中的 VARselect 函数。

    > install.packages("vars")
    > library(MASS)
    > library(sandwich)
    > library(strucchange)
    > library(vars)
    > data.new<-data.frame(lncpi,lnneer)  #合并数据
    > VARselect(data.new,lag.max=10,type="const")  #在10以内选择最优滞后阶数
    

    此处输入图片的描述

    根据结果,不同的信息准则有不同的滞后阶数,选择 2 阶或者 4 阶都是可以的,一般来说选择在相同条件下更加简洁的模型,因此选择 2 阶滞后。

    3.5 VAR模型的拟合和预测

    3.5.1.VAR 模型的拟合

    在确定好最优滞后阶数以后我们就可以拟合模型:

    > var<-VAR(data.new,lag.max=2,ic="AIC")
    > summary(var)
    
      VAR Estimation Results:   #VAR(2) 模型拟合结果
      ========================= 
      Endogenous variables: lncpi, lnneer 
      Deterministic variables: const 
      Sample size: 135 
      Log Likelihood: 873.227 
      Roots of the characteristic polynomial:
      0.9621 0.9621 0.3829 0.1847
      Call:
      VAR(y = data.new, lag.max = 2, ic = "AIC")
    
      Estimation results for equation lncpi:     #模型估计结果一
      ====================================== 
      lncpi = lncpi.l1 + lnneer.l1 + lncpi.l2 + lnneer.l2 + const 
    
                Estimate Std. Error t value Pr(>|t|)    
      lncpi.l1   0.80917    0.08578   9.433   <2e-16 ***
      lnneer.l1 -0.09248    0.04705  -1.965   0.0515 .  
      lncpi.l2   0.12907    0.08483   1.521   0.1306    
      lnneer.l2  0.08381    0.04712   1.779   0.0777 .  
      const      0.32677    0.15855   2.061   0.0413 *  
      ---
      Signif. codes:  0 \u2018***\u2019 0.001 \u2018**\u2019 0.01 \u2018*\u2019 0.05 \u2018.\u2019 0.1 \u2018 \u2019 1
    
    
      Residual standard error: 0.007369 on 130 degrees of freedom
      Multiple R-Squared: 0.8791,    Adjusted R-squared: 0.8754 
      F-statistic: 236.3 on 4 and 130 DF,  p-value: < 2.2e-16 
    
    
      Estimation results for equation lnneer:        #模型估计结果二
      ======================================= 
      lnneer = lncpi.l1 + lnneer.l1 + lncpi.l2 + lnneer.l2 + const 
    
                Estimate Std. Error t value Pr(>|t|)    
      lncpi.l1  -0.18430    0.14954  -1.232 0.220030    
      lnneer.l1  1.31275    0.08203  16.003  < 2e-16 ***
      lncpi.l2   0.28850    0.14789   1.951 0.053238 .  
      lnneer.l2 -0.31998    0.08215  -3.895 0.000156 ***
      const     -0.44726    0.27641  -1.618 0.108065    
      ---
      Signif. codes:  0 \u2018***\u2019 0.001 \u2018**\u2019 0.01 \u2018*\u2019 0.05 \u2018.\u2019 0.1 \u2018 \u2019 1
    
    
      Residual standard error: 0.01285 on 130 degrees of freedom
      Multiple R-Squared: 0.9908,    Adjusted R-squared: 0.9905 
      F-statistic:  3504 on 4 and 130 DF,  p-value: < 2.2e-16 
    
    
      Covariance matrix of residuals:       #残差的协方差矩阵
                 lncpi    lnneer
      lncpi  5.430e-05 7.761e-06
      lnneer 7.761e-06 1.650e-04
    
      Correlation matrix of residuals:      #残差的相关阵
               lncpi  lnneer
      lncpi  1.00000 0.08198
      lnneer 0.08198 1.00000
    

    根据模型拟合结果,所得的 VAR(2) 的模型方程(保留两位小数)为:

    此处输入图片的描述

    也可以用 coef 函数来查看模型估计的简明结果。

    > coef(var)   #查看模型估计的简明结果
    

    此处输入图片的描述

    会拟合出一致的 VAR(2) 方程(系数保留两位小数)。

    > plot(var)       #画出每个变量的时序图、残差图、ACF 图、PACF 图
    按<Return>键来看下一个图      #也就是<Enter>键
    
    • 变量 lncpi 的时序图、残差图、ACF 图、PACF 图此处输入图片的描述
    • 变量 lnneer 的时序图、残差图、ACF 图、PACF 图此处输入图片的描述

    3.5.2 脉冲响应分析

    在查看完拟合结果的图形之后,我们来绘制拟合结果的脉冲响应图,需要用到 var 包中的 irf 函数。然后通过 plot 函数画出图形。

    > var.irf<-irf(var)  
    > plot(var.irf)       
    按<Return>键来看下一个图:
    

    此处输入图片的描述

    此处输入图片的描述

    根据图形 lncpi 自身以及 lnneer 的波动对 lncpi 有正向的冲击。 lncpi 对自身的影响没有滞后期,并且自身波动的影响随着时期的增加会越来越小。lnneer 波动对 lncpi 的影响在第一期以前是逐渐减少的,但在第一期减少为 0 之后随着时间的增加影响越来越大。

    lncpi 波动对 lnneer 有一个负向的冲击,并且随着时期数的增加负向的影响会越来越大。lnneer 波动对自身有一个正向的冲击,这个冲击从开始先增加,在第二期达到最大值以后又逐渐减少。

    3.5.3 VAR(2)模型的预测

    模型预测通常需要用到 predict 函数,具体用法如下:

    > var.predict<-predict(var,n.ahead=10,ci=0.95)
    > var.predict
    

    这样我们就得到了两变量(lncpi、lnneer)的 VAR(2)模型的滞后 10 期预测结果:

    此处输入图片的描述

    四、实验总结

    通过本次实验深入了解向量自回归模型,学会运用 R 语言来进行 VAR模型建模。学习如何检验一个序列的平稳性,以及如何运用协整检验来分析非平稳时间序列的关系。学会运用 var 包中的包括 VARselect() 函数、VAR() 函数、coef() 函数以及 irf() 函数各种函数来进行 VAR 模型的建模,选择最优滞后阶数,拟合 VAR 模型,对模型结果进行脉冲响应分析以及模型的预测。希望同过实验能够独立的运用 R 语言进行 VAR 模型建模于分析,巩固 R 的同时加深自己的金融知识。


    展开全文
  • R语言建立VAR模型分析联合内生变量的动态关系

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                   

    VAR模型分析联合内生变量的动态关系

    一、实验介绍

    1.1 实验内容

    VAR模型是向量自回归模型的简称,是基于数据的统计性质建立的一种常用的计量经济模型,它把系统中每一个内生变量作为系统中所有内生变量的滞后值的函数来构造模型,从而将单变量自回归模型推广到由多元时间序列变量组成的“向量”自回归模型。本实验运用 R 语言来建立两变量的向量自回归模型,首先是检验两变量序列的平稳性,然后进行协整检验,确定待拟合模型的滞后阶数,再拟合VAR模型和做脉冲响应分析,最终对拟合的VAR模型进行分析于预测。通过本实验学会用VAR模型处理多个相关经济指标的分析与预测。

    1.2 实验知识点

    • 平稳性检验
    • 协整检验
    • 滞后阶数的确定
    • VAR 模型的拟合
    • 脉冲响应分析
    • VAR 模型的预测

    1.3 实验环境

    • R version 3.4.1
    • Xfce 终端

    1.4 适合人群

    本课程难度为较难,属于中级级别课程,适合具有 R 语言基础并且有一定经管背景的用户,熟悉 R 语言基础知识并加深巩固,学会用 R 语言建立计量经济模型分析经济数据。

    1.5 实验准备

    打开Xfce 终端,下载实验所需的数据,并启动 R :

    $ wget http://labfile.oss.aliyuncs.com/courses/910/monthdata.csv$ sudo R

    二、实验原理

    以下实验原理介绍来自 MBA 智库百科:向量自回归模型

    向量自回归模型简称VAR模型,是一种常用的计量经济模型,1980年由克里斯托弗·西姆斯(Christopher Sims)提出。VAR模型是用模型中所有当期变量对所有变量的若干滞后变量进行回归。VAR模型用来估计联合内生变量的动态关系,而不带有任何事先约束条件。它是AR模型的推广,此模型目前已得到广泛应用。

    向量自回归(VAR)是基于数据的统计性质建立模型,VAR模型把系统中每一个内生变量作为系统中所有内生变量的滞后值的函数来构造模型,从而将单变量自回归模型推广到由多元时间序列变量组成的“向量”自回归模型。VAR模型是处理多个相关经济指标的分析与预测最容易操作的模型之一,并且在一定的条件下,多元MA和ARMA模型也可转化成VAR模型,因此近年来VAR模型受到越来越多的经济工作者的重视。

    此处输入图片的描述

    三、实验步骤

    本实验利用 2005 年 8 月汇率改革后消费者价格指数(CPI)和人民币名义有效汇率(NEER)的月度数据建立两变量 VAR 模型来分析人民币汇率变动与CPI之间的动态关系。

    3.1 实验准备

    > data<-read.csv("monthdata.csv"#读取数据> CPI<-data[,1]    #将 data 数据的第一列赋值给 CPI 数据框> NEER<-data[,2]    > length(CPI)  #查看 CPI 变量的数据长度> length(NEER)

    此处输入图片的描述

    可以看到数据长度为 137,即包含了 137 个月度 CPI 和 NEER 数据。

    下面我们绘制两个变量的时序图,观察消费者价格指数和名义汇率的波动情况。

    > CPI.ts<-ts(CPI,start=c(2005,8),end=c(2016,12),freq=12)   #将数据转化为时间序列> NEER.ts<-ts(NEER,start=c(2005,8),end=c(2016,12),freq=12)> par(mfrow=c(2,1))> plot(CPI.ts,type="l",xlab="Date", ylab="CPI")     > plot(NEER.ts,type="l",xlab="Date", ylab="NEER")

    此处输入图片的描述

    可以看到消费者价格指数(CPI)的波动幅度较大,而名义有效汇率波动较小但明显呈现一个波动上升的趋势,两个变量序列大致是不平稳的。

    3.2 平稳性检验

    在拟合 VAR 模型之前,需要对变量进行平稳性检验,如果要拟合的内生变量都是平稳的或者同阶单整的才可进行 VAR 模型的拟合。但在平稳性检验之前需要先项两变量取对数,以消除时间序列的异方差的影响。

    > lncpi<-log(CPI)     > lnneer<-log(NEER)

    进行平稳性检验本实验选择 urca 包中的 ur.df 函数进行单位根检验,若存在单位根则序列不平稳;反之,不存在单位根则序列平稳。

    > install.packages("urca")    #镜像选择 China (Lanzhou) [https]> library(urca)> urt.lncpi<-ur.df(lncpi,type='trend',selectlags='AIC')> urt.lnneer<-ur.df(lnneer,type='trend',selectlags='AIC')> summary(urt.lncpi)      ###############################################   # Augmented Dickey-Fuller Test Unit Root Test #   ###############################################   Test regression trend   Call:  lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)  Residuals:        Min        1Q    Median        3Q       Max   -0.028676 -0.003311  0.000381  0.003035  0.043118   Coefficients:                Estimate Std. Error t value Pr(>|t|)    (Intercept)  3.047e-01  1.477e-01   2.063   0.0411 *  z.lag.1     -6.555e-02  3.185e-02  -2.058   0.0416 *  tt          -1.443e-05  1.678e-05  -0.860   0.3912    z.diff.lag  -1.178e-01  8.627e-02  -1.365   0.1745    ---  Signif. codes:  0 \u2018***\u2019 0.001 \u2018**\u2019 0.01 \u2018*\u2019 0.05 \u2018.\u2019 0.1 \u2018 \u2019 1  Residual standard error: 0.007505 on 131 degrees of freedom  Multiple R-squared:  0.05455,    Adjusted R-squared:  0.0329   F-statistic: 2.519 on 3 and 131 DF,  p-value: 0.06084  Value of test-statistic is: -2.0578 1.5223 2.2719   Critical values for test statistics:         1pct  5pct 10pct  tau3 -3.99 -3.43 -3.13  phi2  6.22  4.75  4.07  phi3  8.43  6.49  5.47
    > summary(urt.lnneer)     ###############################################   # Augmented Dickey-Fuller Test Unit Root Test #   ###############################################   Test regression trend   Call:  lm(formula = z.diff ~ z.lag.1 + 1 + tt + z.diff.lag)  Residuals:        Min     1Q    Median        3Q       Max   -0.038574 -0.007164 -0.000990  0.009182  0.033482   Coefficients:                Estimate Std. Error t value Pr(>|t|)      (Intercept)  0.4429099  0.1380821   3.208  0.00168 **   z.lag.1     -0.0995380  0.0312008  -3.190  0.00178 **   tt           0.0003157  0.0001058   2.983  0.00341 **   z.diff.lag   0.4099249  0.0810914   5.055 1.42e-06 ***  ---  Signif. codes:  0 \u2018***\u2019 0.001 \u2018**\u2019 0.01 \u2018*\u2019 0.05 \u2018.\u2019 0.1 \u2018 \u2019 1  Residual standard error: 0.01267 on 131 degrees of freedom  Multiple R-squared:  0.1877,    Adjusted R-squared:  0.1691   F-statistic: 10.09 on 3 and 131 DF,  p-value: 5.01e-06  Value of test-statistic is: -3.1902 4.2783 5.1509   Critical values for test statistics:         1pct  5pct 10pct  tau3 -3.99 -3.43 -3.13  phi2  6.22  4.75  4.07  phi3  8.43  6.49  5.47

    判断是否平稳主要看详细拟合结果的最后两个部分,即:

    • 1.Value of test-statistic is:
    • 2.Critical values for test statistics:

    1 是检验统计量的值,2 是对应的显著性水平下检验统计量的临界值。

    单位根检验的原假设是序列存在单位根。

    对于 lncpi 和 lnneer 的单位根检验结果:

    lncpilnneer
    Value of test-statistic is: -2.0578 1.5223 2.2719Value of test-statistic is: -3.1902 4.2783 5.1509
    Critical values for test statistics:Critical values for test statistics:
    1pct 5pct 10pct1pct 5pct 10pct
    tau3 -3.99 -3.43 -3.13tau3 -3.99 -3.43 -3.13
    phi2 6.22 4.75 4.07phi2 6.22 4.75 4.07
    phi3 8.43 6.49 5.47phi3 8.43 6.49 5.47
    • lncpi的检验统计量的值 -2.0578 在 1%、5%、10% 的显著性水平下都大于临界值(-3.99 -3.43 -3.13),则不能拒绝原价设而接受存在单位根的假设,说明 lncpi 序列是不平稳的。(注意,统计量的值和临界值为负,统计量的值大于临界值是接受原假设;若统计量的值和临界值为正值,统计量的值大于临界值是拒绝原假设。)
    • 同理,lnneer 的检验统计量的值 -3.1902 在 1% 、5% 的显著性水平下都大于对应的临界值(-3.99 -3.43 -3.13),不能拒绝原假设,lnneer 序列也是不平稳的,存在单位根。

    由于两个变量都存在单位根,对序列差分后检验序列的平稳性。

    > dlncpi<-diff(lncpi)   #取一阶差分> dlnneer<-diff(lnneer)> urt.dlncpi<-ur.df(dlncpi,type='trend',selectlags='AIC')> urt.dlnneer<-ur.df(dlnneer,type='trend',selectlags='AIC')> summary(urt.dlncpi)  > summary(urt.dlnneer)

    由于检验的详细结果太长,截取需要的部分一阶差分平稳性检验结果:

    • lncpi 的一阶差分平稳性检验

      此处输入图片的描述

      由于 dlncpi 的检验统计量的值为 -8.1895,在 1%、5%、10% 的显著性水平上都小于对应的临界值,因此拒绝存在单位根的原假设,即 lncpi 是一阶差分平稳的。

    • lnneer 的一阶差分平稳性检验

      此处输入图片的描述

      由于 dlnneer 的检验统计量的值为 -7.0409,在 1%、5%、10% 的显著性水平上都小于对应的临界值,因此拒绝存在单位根的原假设,即 lncpi 是一阶差分平稳的。

    我们再来看一阶差分后的时间序列图:

    > par(mfrow=c(2,1))> plot(dlncpi,type="l",xlab="Date", ylab="diff.CPI")     > plot(dlnneer,type="l",xlab="Date", ylab="diff.NEER")

    此处输入图片的描述

    可以看到差分后的两个变量序列没有明显的波动聚集或则上升下降的趋势,比较平稳。

    两个内生变量都是一阶差分平稳的,即都是一阶单整的,是不平稳的时间序列,不能做 Granger 因果检验,只能做协整检验。

    3.3 协整检验

    协整检验主要针对非平稳的单个序列,但它们的线性组合可能是平稳的。几个变量之间可能存在的一种长期均衡关系进行检验,表现为存在某个协整方程。

    由于所有变量都是一阶单整的,是非平稳时间序列,因此各变量之间可能存在协整关系,如果要对所选择的内生变量进行VAR模型的构建,需要进行协整检验,以判断各个变量之间是否存在长期稳定的协整关系,处理各变量之间的是否存在伪回归问题。在本实验我们运用E-G两步法协整检验,需要用到lmtest 包中的 dwtest 函数。

    • E-G两步法:第一步:回归方程的估计
    > fit<-lm(lncpi~lnneer)  > summary(fit)

    此处输入图片的描述

    由于拟合的模型变量和截距项的 t 检验在 5% 的显著性水平上都是显著的,且模型的 F 检验在5%的显著性水平上也是显著的,因此拟合的线性模型是合理的。

    协整回归方程为:lncpi=4.80296-0.03666 lnneer+εt

    > install.packages("lmtest")> library(zoo)> library(lmtest)> dwtest(fit)    #检验序列的自相关性

    此处输入图片的描述

    此处输入图片的描述

    由于 Durbin-Watson test 检验的 p-value 的值几乎为 0,该数值小于 0.05 ,说明在 5% 的显著性水平上残差序列不独立,具有自相关性。

    • 检验残差序列的平稳性:

      > error<-residuals(fit)  #提取残差序列> urt.residuals<-ur.df(error,type='none',selectlags='AIC')> summary(urt.residuals)

      此处输入图片的描述

      此处输入图片的描述

      根据残差序列的平稳性检验结果,在 5% 的显著性水平上拒绝残差序列存在单位根的原假设,即残差序列是平稳的,说明 CPI 和名义有效汇率两个序列之间存在协整关系,意味着我国的消费者价格指数和名义有效汇率之间具有长期均衡关系,增长或者减少具有协同效应。

    • E-G两步法:第二步:误差修正模型的建立

    > error.lag<-error[-c(137,138)]       > ecm.fit<-lm(dlncpi~error.lag+dlnneer)   #拟合误差修正模型> summary(ecm.fit)  > dwtest(ecm.fit)

    此处输入图片的描述此处输入图片的描述

    协整回归方程:此处输入图片的描述

    误差修正项的系数为负,符合误差修正机制,反映了上一期偏离长期均衡的数量将在下一期得到反向修正,这也符合之前证明的协整关系。

    3.4 滞后阶数的确定

    在拟合 VAR 模型之前还需要确定拟合几阶 VAR 模型,也就是确定滞后阶数。确定滞后阶数需要用到 vars 包中的 VARselect 函数。

    > install.packages("vars")> library(MASS)> library(sandwich)> library(strucchange)> library(vars)> data.new<-data.frame(lncpi,lnneer)  #合并数据> VARselect(data.new,lag.max=10,type="const"#在10以内选择最优滞后阶数

    此处输入图片的描述

    根据结果,不同的信息准则有不同的滞后阶数,选择 2 阶或者 4 阶都是可以的,一般来说选择在相同条件下更加简洁的模型,因此选择 2 阶滞后。

    3.5 VAR模型的拟合和预测

    3.5.1.VAR 模型的拟合

    在确定好最优滞后阶数以后我们就可以拟合模型:

    > var<-VAR(data.new,lag.max=2,ic="AIC")> summary(varVAR Estimation Results:   #VAR(2) 模型拟合结果  =========================   Endogenous variables: lncpi, lnneer   Deterministic variables: const   Sample size: 135   Log Likelihood: 873.227   Roots of the characteristic polynomial:  0.9621 0.9621 0.3829 0.1847  Call:  VAR(y = data.new, lag.max = 2, ic = "AIC")  Estimation results for equation lncpi:     #模型估计结果一  ======================================   lncpi = lncpi.l1 + lnneer.l1 + lncpi.l2 + lnneer.l2 + const             Estimate Std. Error t value Pr(>|t|)      lncpi.l1   0.80917    0.08578   9.433   <2e-16 ***  lnneer.l1 -0.09248    0.04705  -1.965   0.0515 .    lncpi.l2   0.12907    0.08483   1.521   0.1306      lnneer.l2  0.08381    0.04712   1.779   0.0777 .    const      0.32677    0.15855   2.061   0.0413 *    ---  Signif. codes:  0 \u2018***\u2019 0.001 \u2018**\u2019 0.01 \u2018*\u2019 0.05 \u2018.\u2019 0.1 \u2018 \u2019 1  Residual standard error: 0.007369 on 130 degrees of freedom  Multiple R-Squared: 0.8791,    Adjusted R-squared: 0.8754   F-statistic: 236.3 on 4 and 130 DF,  p-value: < 2.2e-16   Estimation results for equation lnneer:        #模型估计结果二  =======================================   lnneer = lncpi.l1 + lnneer.l1 + lncpi.l2 + lnneer.l2 + const             Estimate Std. Error t value Pr(>|t|)      lncpi.l1  -0.18430    0.14954  -1.232 0.220030      lnneer.l1  1.31275    0.08203  16.003  < 2e-16 ***  lncpi.l2   0.28850    0.14789   1.951 0.053238 .    lnneer.l2 -0.31998    0.08215  -3.895 0.000156 ***  const     -0.44726    0.27641  -1.618 0.108065      ---  Signif. codes:  0 \u2018***\u2019 0.001 \u2018**\u2019 0.01 \u2018*\u2019 0.05 \u2018.\u2019 0.1 \u2018 \u2019 1  Residual standard error: 0.01285 on 130 degrees of freedom  Multiple R-Squared: 0.9908,    Adjusted R-squared: 0.9905   F-statistic:  3504 on 4 and 130 DF,  p-value: < 2.2e-16   Covariance matrix of residuals:       #残差的协方差矩阵             lncpi    lnneer  lncpi  5.430e-05 7.761e-06  lnneer 7.761e-06 1.650e-04  Correlation matrix of residuals:      #残差的相关阵           lncpi  lnneer  lncpi  1.00000 0.08198  lnneer 0.08198 1.00000

    根据模型拟合结果,所得的 VAR(2) 的模型方程(保留两位小数)为:

    此处输入图片的描述

    也可以用 coef 函数来查看模型估计的简明结果。

    > coef(var)   #查看模型估计的简明结果

    此处输入图片的描述

    会拟合出一致的 VAR(2) 方程(系数保留两位小数)。

    > plot(var)       #画出每个变量的时序图、残差图、ACF 图、PACF 图按<Return>键来看下一个图      #也就是<Enter>键
    • 变量 lncpi 的时序图、残差图、ACF 图、PACF 图此处输入图片的描述
    • 变量 lnneer 的时序图、残差图、ACF 图、PACF 图此处输入图片的描述

    3.5.2 脉冲响应分析

    在查看完拟合结果的图形之后,我们来绘制拟合结果的脉冲响应图,需要用到 var 包中的 irf 函数。然后通过plot 函数画出图形。

    > var.irf<-irf(var)  > plot(var.irf)       按<Return>键来看下一个图:

    此处输入图片的描述

    此处输入图片的描述

    根据图形 lncpi 自身以及 lnneer 的波动对 lncpi 有正向的冲击。 lncpi 对自身的影响没有滞后期,并且自身波动的影响随着时期的增加会越来越小。lnneer 波动对 lncpi 的影响在第一期以前是逐渐减少的,但在第一期减少为 0 之后随着时间的增加影响越来越大。

    lncpi 波动对 lnneer 有一个负向的冲击,并且随着时期数的增加负向的影响会越来越大。lnneer 波动对自身有一个正向的冲击,这个冲击从开始先增加,在第二期达到最大值以后又逐渐减少。

    3.5.3 VAR(2)模型的预测

    模型预测通常需要用到 predict 函数,具体用法如下:

    > var.predict<-predict(var,n.ahead=10,ci=0.95)> var.predict

    这样我们就得到了两变量(lncpi、lnneer)的 VAR(2)模型的滞后 10 期预测结果:

    此处输入图片的描述

    四、实验总结

    通过本次实验深入了解向量自回归模型,学会运用 R 语言来进行 VAR模型建模。学习如何检验一个序列的平稳性,以及如何运用协整检验来分析非平稳时间序列的关系。学会运用var 包中的包括 VARselect() 函数、VAR() 函数、coef() 函数以及irf() 函数各种函数来进行 VAR 模型的建模,选择最优滞后阶数,拟合 VAR 模型,对模型结果进行脉冲响应分析以及模型的预测。希望同过实验能够独立的运用 R 语言进行 VAR 模型建模于分析,巩固 R 的同时加深自己的金融知识。

               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • Stata:VAR 中的脉冲响应分析 (IRF)

    万次阅读 2019-04-26 09:22:12
      Source: Rizaudin Sahlan → Impulse Response Function with Stata (time series) 编译:许梦洁 (中山大学) ...Stata 连享会: 知乎 | 简书 | ...Stata: VAR (向量自回归) 模型简介 Stata: 单位根检验就这...
  • 在查看结果之前,我们检查了1476个时间点中有多少用于估算,这在调用输出对象的摘要中显示 > tvvar_obj mgm fit-object Model class: Time-varying mixed Vector Autoregressive (tv-mVAR) model Lags: 1 Rows ...
  • VaR如何计算?VaR计算方法

    万次阅读 2020-04-23 22:41:10
    VaR的计算方法通常有三大类:分析法、历史模拟法和蒙特卡罗模拟法,这3种方法从不同角度来分析资产的风险价值。后面的案例中将对股指期货交易中金的最大损失值进行计算,即对金的VaR值进行估计。 1、分析法 ...
  • R语言有很强大的绘图和构建计量模型的功能,比一些软件如Eviews或者SPSS...本人比较喜欢用R语言分析,但在进行脉冲响应分析的时候遇到了一个问题:如何利用R将脉冲响应图整齐地排列起来?起初,我也认为这是一件很简...
  • PHP中 echo, print_r与var_dump的区别分析

    千次阅读 2016-06-24 18:05:28
    这篇文章主要介绍了PHP中echo,print_r与var_dump区别分析,主要讲述了三者的类型本质及其操作数据类型的用法区别,非常具有实用价值,需要的朋友可以参考下 本文较为详细的分析了PHP中echo,print_r与var_dump区别。分享...
  • 例如以下代码:private var name0: String //报错 private var name1: String = "xiaoming" //不报错 private var name2: String? = null //不报错   可是有的时候,我并不想声明一个类型可空的对象,...
  • 功能描述:(Variance Population)该函数返回非空集合的总体变量(忽略 null),VAR_POP 进行如下计算: (SUM(expr2) - SUM(expr)2 / COUNT(expr)) / COUNT(expr)*/ select var_pop(salary) FROM hr....
  • 这篇文章介绍了VAR分析的基本概念,并指导了简单模型的估算过程。 单变量自回归 VAR代表向量自回归。为了理解这意味着什么,让我们首先来看一个简单的单变量(即仅一个因变量或内生变量)自回归(AR)模型,其...
  • Linux netstat命令结果分析

    千次阅读 2018-09-30 17:45:02
    二:结果分析 分为两部分: Active Internet connections(有源Internet连接):用于网络连接传输 Active UNIX domain sockets(有源UNIX套接字):只能用于本地通信,性能比第一种好 ...
  • 本文显示了如何基于潜在的ARMA-GARCH过程(当然也涉及更广泛意义上的QRM)来拟合和预测风险价值(VaR)。 1从ARMA-GARCH进程模拟(log-return)数据 我们考虑使用\(t \)分布式创新的ARMA(1,1)-GARCH(1,1)...
  • Python实现向量自回归(VAR)模型——完整步骤

    万次阅读 多人点赞 2019-02-01 15:20:14
    废话不多说,先开始分享: 1. 首先啥是VAR模型,我这里简略通俗的说一下,...但是VAR模型除了分析自身滞后项的影响外,还分析其他相关因素的滞后项对未来值产生的影响,模型的形式为: 其中就是其他因子的滞后项...
  • var模型eviews操作步骤

    万次阅读 多人点赞 2020-04-30 14:13:49
    VAR模型eviews操作步骤 一、平稳性检验 Ex的单位根检验平稳性,截距项、趋势项与两者都没有都要做完,三个均拒绝,则认为其不平稳,先截距与趋势项。如下图 做完后发现不平稳,做一阶差分,此时三项中只要有一项...
  • var_start,var_arg,var_end用法

    千次阅读 2008-07-17 10:26:00
    var_start,var_arg,var_end用法 var_start,var_arg,var_end用法(一)一个可变参数函数的例子下面我们来探讨如何写一个简单的可变参数的C函数。写可变参数的 C函数要在程序中用到以下这些宏:void va_start( va_list...
  • vardict使用说明

    千次阅读 2017-02-04 14:29:42
    vardict是由perl写的、用于检测NGS数据变异的一款软件。在命令行中输入perl vardict.pl 就可以看到vardict的帮助信息。如下图所示。  在帮助信息中简明扼要地说明了vardict的几个优点。这些不去理会它,更关心...
  • VaR方法(Value at Risk,简称VaR)[风险价值模型]

    万次阅读 多人点赞 2013-06-26 14:31:13
    VaR方法(Value at Risk,简称VaR),称为风险价值模型,也称受险价值方法、在险价值方法... 传统的ALM(Asset-Liability Management,资产负债管理)过于依赖报表分析,缺乏时效性;利用方差及β系数来衡量风险太过于抽象
  • elsticsearch新增扮演的角色是:rally分析结果会存储到elasticsearch。1、运行esrally 高级配置模式高级配置模式和普通模式的区别:普通模式只需要配置jdk的环境变量路径。 而高级模式,需要配置:当前本机已安装...
  • 第八章 VAR模型与脉冲响应

    万次阅读 多人点赞 2018-11-24 07:17:39
    首先提一下辛士波老师反复讲到的问题:即VARVaRVar三者的区别,切记千万不要混淆哈哈 VAR Vector Autoregression,向量自回归 VaR Value at Risk,称为风险价值模型,也称受险价值方法、在险价值方法,...
  • 之后需要对Excel中的结果数据做分析,并且制作图表写周报发给老大。对于我这种对word都玩不转的人,别说用Excel中强大的公式分析数据了��。轮到我值班的时候就用nodejs写了一个脚本自动处理Excel中的数据,并且将...
  • 多元线性回归分析理论详解及SPSS结果分析

    万次阅读 多人点赞 2017-05-17 16:23:23
    当影响因变量的因素是多个时候,这种一个变量同时与多个变量的回归问题就是多元回归,...y=β0+β1x1+β2x2+…+βkxk+εy=\beta_{0}+\beta_{1}x_{1}+\beta_{2}x_{2}+\ldots+\beta_{k}x_{k}+\varepsilon 1.2多元回归方
  • 在linux下使用“ls -l”...首先给出一张典型的显示结果: 下面对其中的每一列进行详细的分析: 一、文件类型 表示该文件的类型: “-”表示普通文件; “d”表示目录; “l”表示链接文件; “p”表示...
  • matlab 统计基本函数 var方差

    万次阅读 2017-01-04 13:25:22
    matlab中的方差函数var的用法及具体分析var 是用来求方差的,但是首先我们应该清楚的区分两个概念,即方差和样本方差的无偏估计,简要来说就是,方差公式中分母上是N,而样本方差无偏估计公式中分母上是N-1 (N为...
  • 【FinE】在险价值(VaR)计算

    千次阅读 2020-08-30 18:01:39
    VaR值计算
  • 但是,这里说的函数中和函数外也不是绝对的,具体情况看以下代码及分析 'demo1' var a = 123 ; // 全局变量 var b = 456 ; // 全局变量 console. log ( a ); // 123 console. log (b); // 456 ...
  • 【R语言】实现VAR、SVAR

    万次阅读 多人点赞 2019-02-01 11:15:50
    最近在写一篇小论文,主要用的就是VAR(向量自回归模型)和SVAR(结构向量自回归模型),这里分享一下R语言实现VAR和SVAR的整个流程。 主要步骤包括: 1.单位根检验 2.确定滞后阶数 3.格兰杰因果检验 4.模型稳定性...
  • webpack 打包结果分析

    千次阅读 2018-08-01 13:48:22
    进行查看分析 webpack-bundle-analyzer 安装:webpack-bundle-analyzer –save-dev 插件: BundleAnalyzerPlugin 命令行: webpack-bundle-analyzer stats.json var BundleAnalyzerPlugin ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 212,545
精华内容 85,018
关键字:

如何分析var结果