精华内容
下载资源
问答
  • 向量自回归模型VAR

    2013-11-20 10:33:09
    向量自回归是一种很好的模型研究,要好好把握好,不然就很难做回归
  • 金融市场计量经济学 第六讲 向量自回归模型 VAR ? 对于经济活动中变量间关系如何确定前面我们 学过了协整检验和 Granger 因果检验如果变量 间互相有影响 VAR 模型比较合适 ? 向量自回归模型 vector autoregressive ...
  • R语言-向量自回归模型VAR的实现

    万次阅读 2019-01-17 15:02:46
    向量自回归模型VAR是计量经济学中的一个概念,用于多元时间序列相关关系的分析。详细概念我就不赘述了,具体的定义和技术流程可以看计量经济学的相应书籍、人大经济论坛的视频或者是公众号“财经节析”的介绍。这个...

    向量自回归模型VAR是计量经济学中的一个概念,用于多元时间序列相关关系的分析。详细概念我就不赘述了,具体的定义和技术流程可以看计量经济学的相应书籍、人大经济论坛的视频或者是公众号“财经节析”的介绍。这个模型的建立和脉冲分析等一般都是用Eviews软件或stata软件来完成。R语言中也有相应的包,我前段时间用这个包写了一些实现代码。

    在下面的VAR模型中,我只给了一个变量(aba)的示例。

    install.packages("urca") #平稳性检验包
    install.packages("vars") #var包
    library(urca)
    library(MASS)
    library(sandwich)
    library(strucchange)
    library(vars)
    
    #设置工作文件夹
    #setwd("D:/test")
    
    #读取数据
    data<-read.csv("F:/2017.csv")  #读取数据
    aba<-data[,2] #将data数据的第2列赋值给aba数据框
    ...
    
    #建立时间序列的日期列,将数据转化为时间序列
    aba.ts<-ts(aba,start=c(2016,10,6),end=c(2017,11,4),freq=395) #日期从2016.10.6-2017.11.4,总共395天
    ...
    
    #绘制波动图
    plot(aba.ts,type="l",xlab="Date", ylab="aba")  
    ...
    
    #平稳性检验
    #在平稳性检验之前需要取对数,以消除时间序列的异方差的影响
    lnaba<-log(aba)
    ...
    
    #判断是否平稳主要看详细拟合结果的最后两个部分
    urt.lnaba<-ur.df(lnaba,type='trend',selectlags='AIC')
    summary(urt.lnaba)
    ...
    
    #建立VAR模型
    data.new<-data.frame(
     aba.ts,...
      
       )  #合并数据
    VARselect(data.new,lag.max=10,type="const")  #在10以内选择最优滞后阶数
    #根据结果不同的信息准则有不同的滞后阶数,一般来说选择在相同条件下更加简洁的模型。
    
    #在确定好最优滞后阶数以后我们就可以拟合模型
    #格兰杰因果检验
    var<-VAR(data.new,p = 1,lag.max=6,ic="AIC")
    causality(var, cause = "aba.ts")$Granger
    
    

     

    展开全文
  • 时差相关系数(Cross Correlation)分析法是利用相关系数检验经济时序变量间滞后关系的一种常用方法对两个时序变量选择一个作为基准变量计算与另一变量在时间上错开(滞后)时的相关系数以相关系数的大小判断两变量间的...
  • Python实现向量自回归VAR模型——完整步骤

    万次阅读 多人点赞 2019-02-01 15:20:14
    1. 首先啥是VAR模型,我这里简略通俗的说一下,想看代码的童鞋直接跳到第3部分就好了: 以金融价格为例,传统的时间序列模型比如ARIMA,ARIMA-GARCH等,只分析价格自身的变化,模型的形式为: 其中称为自身的滞后...

    废话不多说,先开始分享:

    20210127补充--------------------------------------

    很多童鞋都问我要源代码和数据,本来是因为工作原因不想公开的,后来越来越多的人私信跟我反映说没有参照物实在太抽象了,那鉴于时间也比较久了,很多细节我也有点模糊了,一个一个解释不过来,因此,就发布一下原来我项目的源代码和当时用的数据,真的有需要的童鞋可以下载做参考。附下载地址:

    https://download.csdn.net/download/mooncrystal123/14945452

    ------------------------------------------------------------------------------------------------------------------

    1. 首先啥是VAR模型,我这里简略通俗的说一下,想看代码的童鞋直接跳到第3部分就好了:

    以金融价格为例,传统的时间序列模型比如ARIMA,ARIMA-GARCH等,只分析价格自身的变化,模型的形式为:

    y_{t} = \beta _{1}\cdot y_{t-1} + \beta _{2}\cdot y_{t-2} + ...

    其中y_{t-1}称为自身的滞后项。

    但是VAR模型除了分析自身滞后项的影响外,还分析其他相关因素的滞后项对未来值产生的影响,模型的形式为:

    y_{t} = \beta _{1}\cdot y_{t-1} + \alpha _{1}\cdot x_{t-1} +\beta _{2}\cdot y_{t-2} + \alpha _{2}\cdot x_{t-2} + ...

    其中x_{t-1}就是其他因子的滞后项。

    总结一下,就是可以把VAR模型看做是集合多元线性回归的优点(可以加入多个因子)以及时间序列模型的优点(可以分析滞后项的影响)的综合模型。

    VAR其实是一类模型,以上是最基础的VAR模型形式,其他还有SVAR,CVAR,VECM,同统称为VAR类模型。

    2. VAR模型的建模步骤

    这种数学模型都有固定的建模步骤:

    1)画N个因子的序列相关图,计算相关系数 correlation coiffiant,查看一下线性相关度。(相关系数大小只反映线性相关程度,不反应非线性相关,如果等于0,不能排除存在非线性相关的可能。)

    2)对N个因子的原始数据进行平稳性检验,也就是ADF检验。

    VAR模型要求所有因子数据同阶协整,也就是N个因子里面如果有一个因子数据不平稳,就要全体做差分,一直到平稳为止。

    3)对应变量(yt)和影响因子(Xt)做协整检验

    一般就是EG协整关系检验了,为了看看Y和各个因子Xi之间是否存在长期平稳的关系,这个检验要放在所有数据都通过ADF检验以后才可以做。如果那个因子通不过协整检验,那基本就要剔除了。

    4)然后就是通过AIC,BIC,以及LR定阶。

    一般来说是综合判断三者。AIC,BIC要最小的,比如-10的AIC就优于-1AIC,LR反之要最大的。但是具体偏重那个,就看个人偏好,一般来说,博主的经验是看AIC和LR,因为BIC的惩罚力度大于AIC,大多数时间不太好用。

    具体的实现步骤一般是,把滞后项的阶数列一个范围,比如1-5,然后直接建模,其他啥都不看,先看AIC,BIC,LR的值。一般符合条件的不会只有一个,可以挑2-3个最好的,继续进行。

    5)定阶完成后,就是估计参数,看参数的显著性。

    好的模型所有参数的要通过显著性检验。

    6)对参数进行稳定性检验

    VAR除了对原始数据要进行平稳处理,估计出来的参数还需要检验参数稳定性。

    这是为了查看模型在拟合时,数据样本有没有发生结构性变化。

    有两张检验方法,这两种方法的基本概念是:

    第一个是:AR根,VAR模型特征方程根的绝对值的倒数要在单位圆里面。

    第二个是:cusum检验,模型残差累积和在一个区间内波动,不超出区间。

    这里要注意的是CUSUM检验的原价设(H0):系数平稳,备择假设才是不平稳。所以CUSUM结果要无法拒绝原假设才算通过。

    只有通过参数稳定性检验的模型才具有预测能力,进行脉冲响应和方法分解分析才有意义。

    7)使用乔里斯基正交化残差进行脉冲响应分析

    举例:要分析和预测的是Y,影响Y的有两个因子X1,X2。

    脉冲响应是1对1,根据以上条件,就要做两个脉冲响应分析,分别是:Y和X1,Y和X2。

    看看不同因子上升或者下降,对Y的冲击的程度和方式(Y上升还是下降),以及持续时间。

    8)使用乔里斯基正交化残差进行方差分解分析

    举例:要分析和预测的是Y,影响Y的有两个因子X1,X2。

    方差分解是1对1,根据以上条件,就要做两个方差分解分析,分别是:Y和X1,Y和X2。

    9)为什么使用乔里斯基正交化残差?

    因为进行方差分解和脉冲响应分析的时候,要求模型的残差为白噪声。但是!现实中,我们很难把所有影响Y的因素都囊括进方程,这就导致,现实中VAR模型的残差一般都不是白噪声。因此使用乔里斯基正交化来处理模型的残差。

    VAR建模的时候以上面的条件为例,其实模型估计参数时会给出三个3个方程(应变量各自不同):

    方程1:y_{t} = \beta _{1}\cdot y_{t-1} + \alpha _{1}\cdot X1_{t-1} +\Theta_{1}\cdot X2_{t-1} + \varepsilon _{t}

    方程2:X1_{t} = \beta _{1}\cdot X1_{t-1} + \alpha _{1}\cdot y_{t-1} +\Theta_{1}\cdot X2_{t-1}+ \eta _{t}

    方程3:X2_{t} = \beta _{1}\cdot X2_{t-1} + \alpha _{1}\cdot y_{t-1} +\Theta_{1}\cdot X1_{t-1}+ \omega_{t}

    方程1的残差序列:\varepsilon _{t}

    方程2的残差序列:\eta _{t}

    方差3的残差序列:\omega_{t}

    三个方程的乔里斯基正交化的步骤就是:

    正交1:\frac{\eta _{t}}{\varepsilon _{t}}

    正交2:\frac{\omega _{t}}{\varepsilon _{t}}

    正交3:\frac{\omega _{t}}{\eta _{t}}

    正交4:\frac{\frac{\eta _{t}}{\varepsilon _{t}}}{\frac{\omega _{t}}{\varepsilon _{t}}}

    正交5:\frac{\frac{\eta _{t}}{\varepsilon _{t}}}{\frac{\omega _{t}}{\eta _{t}}}

    最后用正交4/正交5,得到的序列就是乔里斯基正交化残差了。

    乔里斯基正交化之前要对方程的变量按重要性排序,更重要的放在分子上。

     

     

    3. 然后就是如何使用PYTHON 实现VAR模型的建模了:

    以上的步骤是不是很庞大,看着很麻烦?但是电脑都会一下子嗖嗖嗖处理好的。

    1)导入模块

    # 模型相关包
    import statsmodels.api as sm
    import statsmodels.stats.diagnostic
    # 画图包
    import matplotlib.pyplot as plt
    # 其他包
    import pandas as pd
    import numpy as np
    
    

    2)画序列相关图

    fig = plt.figure(figsize=(12,8))
    plt.plot(changeXAUUSD,'r',label='XAU USD')
    plt.plot(shfeXAU,'g',label='SHFE XAU')
    plt.title('Correlation: ' + str(correlation))
    plt.grid(True)
    plt.axis('tight')
    plt.legend(loc=0)
    plt.ylabel('Price')
    plt.show()

    3)ADF单位根

    python里的ADF检验结果就是下面的adfResult,我这里用output整理了一下,方便浏览。童鞋们也可以print结果,然后自行整理。

    这里的数据格式应该是DataFrame里面的series格式,不过dataframe应该也可以吧,没试过。

    adfResult = sm.tsa.stattools.adfuller(data,maxlags)
    output = pd.DataFrame(index=['Test Statistic Value', "p-value", "Lags Used", "Number of Observations Used",
                                             "Critical Value(1%)", "Critical Value(5%)", "Critical Value(10%)"],
                                      columns=['value'])
     output['value']['Test Statistic Value'] = adfResult[0]
     output['value']['p-value'] = adfResult[1]
     output['value']['Lags Used'] = adfResult[2]
     output['value']['Number of Observations Used'] = adfResult[3]
     output['value']['Critical Value(1%)'] = adfResult[4]['1%']
     output['value']['Critical Value(5%)'] = adfResult[4]['5%']
     output['value']['Critical Value(10%)'] = adfResult[4]['10%']

    4)协整检验

    python里面的协整检验通过coint()这个函数进行的,返回P-value值,越小,说明协整关系越强

    result = sm.tsa.stattools.coint(data1,data2)

    5)模型估计+定阶

    这里PYTHON真的很烦,python有两套var估计,一个是VARMAX,一个是VAR。我看了官方文档后,觉得估计参数和定阶还是用VARMAX最好,因为可以返回很多东西,尤其是summary()里面的统计结果特别详细,直接包含了AIC,BIC,HQIC。

    这里要注意,PYTHON定阶没有LR这个指标,要看LR的童鞋只能用EVIEWS和R了。不过AIC,BIC也够用了。

    这里插入的数据只能是DATAFRAME格式的,不然就报错。

    给大家看一下数据构造吧:

    lnDataDict = {'lnSHFEDiff':lnSHFEDiff,'lnXAUDiff':lnXAUDiff}
    lnDataDictSeries = pd.DataFrame(lnDataDict,index=lnSHFEDiffIndex)
    data = lnDataDictSeries[['lnSHFEDiff','lnXAUDiff']]

    这里的fitMod和resid变量后面会用到哦~~

    #建立对象,dataframe就是前面的data,varLagNum就是你自己定的滞后阶数
    orgMod = sm.tsa.VARMAX(dataframe,order=(varLagNum,0),trend='nc',exog=None)
    #估计:就是模型
    fitMod = orgMod.fit(maxiter=1000,disp=False)
    # 打印统计结果
    print(fitMod.summary())
    # 获得模型残差
    resid = fitMod.resid
    result = {'fitMod':fitMod,'resid':resid}

    6)系数平稳检验:CUSUM检验

    这里也注意,Python这里不像EVIEWS,python没有办法算AR根,弄不到AR根图,但是python可以进行cusum检验。返回3各变量,第2个是P-value值,记得我之前说的吗,cusum检验要无法拒绝原假设,也就是说P-value值要大于0.05

    这里的resid就是前面模型的resid

    # 原假设:无漂移(平稳),备择假设:有漂移(不平稳)
    result = statsmodels.stats.diagnostic.breaks_cusumolsresid(resid)

    7)脉冲响应图

    orthogonalized=True代表使用乔里斯基正交,这里很奇葩,官方文档没有加plt.show(),但是博主亲身试验,一定要加,不然画不出来。terms代表周期数。

    # orthogonalized=True,代表采用乔里斯基正交 
    ax = fitMod.impulse_responses(terms, orthogonalized=True).plot(figsize=(12, 8))
    plt.show()

    8)方差分解图

    这里要注意:

    VARMAX很怪,没有做方差分解的方法,但是VAR这个方法里面有。(python就是这么任性!)

    所以这里就用VAR重新估计,然后直接使用fevd进行方差分解

    打印summary()可以看到方差分解的具体结果,plot可以画图,要记得加plt.show()哦~~

    这里的dataFrame就是前面的data噢~~

    md = sm.tsa.VAR(dataFrame)
    re = md.fit(2)
    fevd = re.fevd(10)
    # 打印出方差分解的结果
    print(fevd.summary())
    # 画图
    fevd.plot(figsize=(12, 16))
    plt.show()

     

    以上就是今日份的分享~~然后博主要开始吐槽了!

    博主真是苦逼,最近定期要写研报,博主挑了个向量自回归模型(VAR)来研究,然而博主之前接触过的就只有MATLAB和python,matlab虽然做这种统计很方便,但是一个是博主好久不用啦有点生疏,还有一个是跟项目开发合在一起的话不方便。

    然后博主现在天天用python,所以为了赶稿子,也只能硬着头皮用python搞一波了。但是,博主发现,全网,基本没有人用python搞过这种高级计量经济学模型,因为连范文都找不到1篇!!!!博主亲身尝试摸索后,虽然完成了研报,但是!博主还是要说,统计类的东西,要么用R,要么用EVIEWS,用Python真心苦逼!!!

    主要是各个函数都藏在不知道什么旮旯角落里!!!有些还没有!比如AR根和AR图,要不是靠参考链接里R语言的一篇样板文,我都不知道还有个检验系数稳定性的方法叫cusum,再从另一篇样例里面找到python做cusum的样例。cusum的原假设和备择假设还跟普通检验不一样,反过来的,我查了好多中外文献,才确定这一点。python里面还没有EG因果关系检验,而协整关系检验的名字竟然叫coint……也是从另一篇样例文中找到的!!!都是泪…………

    然后,python只能对VAR模型,VECM模型进行估计,其他var类模型,各位别白废力气寻找了,直接用EVIEWS或者R吧。

    好啦~吐槽结束,博主可以保证,这是全网唯一的,最完整的利用python进行VAR模型建模的教程文了~~~

     

    参考文献:

    1. VARMAX官方样例

    http://www.statsmodels.org/stable/examples/notebooks/generated/statespace_varmax.html

    2. VARMAX官方文档

    http://www.statsmodels.org/stable/generated/statsmodels.tsa.statespace.varmax.VARMAX.html?highlight=varmax

    3.VARMAX fit官方文档

    http://www.statsmodels.org/stable/generated/statsmodels.tsa.statespace.varmax.VARMAX.fit.html#statsmodels.tsa.statespace.varmax.VARMAX.fit

    4.VARMAX fit返回值

    http://www.statsmodels.org/stable/generated/statsmodels.tsa.statespace.mlemodel.MLEResults.html#statsmodels.tsa.statespace.mlemodel.MLEResults

    5. CUSUM检验文献:平稳过程趋势项变点的CUSUM检验

    https://www.ixueshu.com/document/1d642b472b5dc0717d721b29bfac1625.html#pdfpreview

    6. CUSUM检验文献:关于CUSUM检验的改进

    https://wenku.baidu.com/view/65d91ee1172ded630b1cb62c.html

    7. cusum外文文献

    https://doc.docsou.com/b77f40843604bd6fcc70f6d0b-10.html

    8.python实现时间序列

    https://max.book118.com/html/2017/1006/136205976.shtm

    9.VAR python W3Cschool样例

    https://www.w3cschool.cn/doc_statsmodels/statsmodels-examples-notebooks-generated-interactions_anova.html?lang=en

    10.R语言实现VAR模型

    https://blog.csdn.net/Imliao/article/details/80352158

    11. python statsmodel手册

    https://blog.csdn.net/qq_41518277/article/details/85101141#VARVAR_processes_175

    12. python cusum检验方法说明:breaks_cusumolsresid

    https://www.cherylgood.cn/doc/statsmodels/statsmodels-statistics/5bacda5744e2a52489c5292a.html

    13.python 进行cusum检验样例

    https://blog.csdn.net/CoderPai/article/details/83657386

     

     

    展开全文
  • 向量自回归(VAR)和向量误差修正模型(VEC) 这是把第 j 个扰动项对第 i 个变量从无限过去到现在时点的影响用方差加以评价的结果此处还假定扰动项向量的协方差矩阵 ? 是对角矩阵则 yi 的方差是上述方差的 k 项简单和 j ...
  • 向量自回归模型建模步骤梳理(VAR、VMA、VARMA模型)
  • 根据序列选模型自回归AR模型向量自回归VAR模型等)
  • VAR-向量自回归模型.pptx
  • 向量自回归模型 * 向量自回归模型 传统的经济计量方法是以经济理论为基础来描述变量关系的模型但是经济理论通常并不足以对变量之间的动态联系提供一个严密的说明而且内生变量既可以出现在方程的左端又可以出现在方程...
  • 向量自回归(VAR)是基于数据的统计性质建立模型VAR模型把系统中每一个内生变量作为系统中所有内生变量的滞后值的函数来构造模型从而将单变量回归模型推广到由多元时间序列变量组成的向量自回归模型VAR模型是处理多...
  • 向量自回归模型VAR)及其R语言实现

    万次阅读 多人点赞 2018-05-17 15:53:55
    最近在写向量自回归的论文,无论是百度还是Google,都没能找到特别合适的R环境下中文资料,大都是Eviews做出来的。所以写这么一篇blog来分享下自己的经验。 注:本文着重介绍VAR的R实现,具体学术性质的东西请参阅...

    最近在写向量自回归的论文,无论是百度还是Google,都没能找到特别合适的R环境下中文资料,大都是Eviews做出来的。所以写这么一篇blog来分享下自己的经验。
    注:本文着重介绍VAR的R实现,具体学术性质的东西请参阅相关学术论文。

    VAR的定义:

    自行Google,很详细,也很简单

    VAR模型的用途:

    主要是预测分析和内生变量间影响状况分析。

    VAR的主要步骤:

    (个人拙见,不是标准模板)

    1. 选择合适的变量
    2. Granger因果检验,进一步观察变量间的关联性,最好做双向检验,不过也有人说单向就足够了,这就人之间人智者见智了
    3. 选择VAR模型滞后阶数
    4. 拟合VAR模型
    5. 诊断性检验:包括系统平稳性检验、正态性检验、序列相关误差等
    6. 脉冲响应分析
    7. 方差分解
    8. 预测分析

    各个步骤在R中的实现方法:

    R中有个叫“vars”的package,主要用来做向量自回归分析,所以先安装并加载该包:

    install.packages(vars)
    library(vars)

    1.选择变量
    根据理论分析选择出相关联的变量,不多说。
    2.Granger因果检验
    vars包里面有个专门做格兰杰因果检验的函数:

    causality(x, cause = NULL, vcov.=NULL, boot=FALSE, boot.runs=100)

    另外还有一个适用于普通线性回归模型的Granger test的函数:

    grangertest(x, y, order = 1, na.action = na.omit, ...)

    这两个函数最直接的区别在于,第二个不用拟合VAR模型即可使用,而第一个必须在拟合VAR模型之后使用。
    3.选择合适的滞后阶数
    没有一个定论,主要是通过不同信息准则选择出合适的结果,且最好选择最简阶数(也就是最低阶数)。
    相关函数:

    VARselect(y, lag.max = 10, type = c("const", "trend", "both", "none"),
    season = NULL, exogen = NULL)

    函数会return一个结果,分别是根据AIC、HQ、SC、FPE四个信息准则得出的最优阶数。
    4.拟合VAR模型

    var(x, y = NULL, na.rm = FALSE, use)

    5.诊断性检验
    也就是检验模型的有效性。
    系统平稳性:

    stability(x, type = c("OLS-CUSUM", "Rec-CUSUM", "Rec-MOSUM",
    "OLS-MOSUM", "RE", "ME", "Score-CUSUM", "Score-MOSUM",
    "fluctuation"), h = 0.15, dynamic = FALSE, rescale = TRUE)

    这里使用“OLS-CUSUM”,它给出的是残差累积和,在该检验生成的曲线图中,残差累积和曲线以时间为横坐标,图中绘出两条临界线,如果累积和超出了这两条临界线,则说明参数不具有稳定性。
    结果如下图:
    这里写图片描述
    说明系统稳定。
    正态性检验:

    normality.test(x, multivariate.only = TRUE)

    序列相关误差检验:

    serial.test(x, lags.pt = 16, lags.bg = 5, type = c("PT.asymptotic",
    "PT.adjusted", "BG", "ES") )

    6.脉冲响应分析
    脉冲响应分析,直白的来说就是对于某一内生变量对于残差冲击的反应。具体而言,他描述的是在随机误差项上施加一个标准差大小的冲击后对内生变量的当期值和未来值所产生的影响。

    irf(x, impulse = NULL, response = NULL, n.ahead = 10,
    ortho = TRUE, cumulative = FALSE, boot = TRUE, ci = 0.95,
    runs = 100, seed = NULL, ...)

    示例:

    var<-VAR(timeseries,lag.max=2)
    var.irf<-irf(var)
    plot(var.irf)

    结果:
    这里写图片描述
    解读:
    标题栏说明,这是Y_ln对各个变量(包括Y_ln自身)的脉冲响应(impulse response),其中可以看出来自Y_ln的正向冲击,来自FDI_ln的正向冲击、来自INDUSTRY_ln的冲击不断减小到负向。其余变量的冲击较小。
    7.方差分解
    VAR模型的应用,还可以采用方差分解方法研究模型的动态特征。方差分解是进一步评价各内生变量对预测方差的贡献度。方差分解是分析预测残差的标准差由不同新息的冲击影响的比例,亦即对应内生变量对标准差的贡献比例。

    fevd(x, n.ahead=10, ...)

    示例:

    var<-VAR(timeseries,lag.max=2)
    fevd1<-fevd(var, n.ahead = 5)$Y_ln

    结果:
    Y_ln REER_ln M0_ln CPI_ln RETAIL_ln FDI_ln INDUSTRY_ln
    [1,] 1.0000000 0.000000000 0.0000000 0.00000000 0.00000000 0.00000000 0.00000000
    [2,] 0.5660281 0.004363083 0.3085364 0.01686071 0.01356081 0.06509447 0.02555642
    [3,] 0.5411924 0.009721985 0.2755711 0.01899613 0.07313395 0.05837871 0.02300568
    [4,] 0.5259530 0.020262020 0.2783238 0.01870045 0.06689414 0.06883620 0.02103032
    [5,] 0.5268243 0.036825419 0.2697744 0.01855353 0.06276992 0.06550223 0.01975014
    解读:
    例子中选取的是Y_ln变量的方差分解结果,如果不加‘$Y_ln’,则会return全部变量的结果。
    最左边的是滞后期数,一共5期,结果表明当滞后期为1时,其自身对预测方差的贡献率为100%,用人话讲就是自身其变化。随着滞后期增加,Y_ln的贡献率下降,其他变量逐渐增加。不管怎么变化,每一行(也就是每一期)各个变量的贡献率之和都为1。
    8.模型预测
    没什么好说的,举例示之。

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

    结果:
    $Y_ln
    fcst lower upper CI
    [1,] 8.335729 8.208656 8.462802 0.1270727
    [2,] 8.284560 8.076325 8.492795 0.2082349
    [3,] 8.299723 8.078930 8.520516 0.2207930
    fcst:点估计值
    lower:区间估计下界
    upper:区间估计上界
    CI:置信区间
    9.预测结果可视化
    除了直接使用plot()函数绘图以外,vars包有一个fanchart()函数可以绘制扇形图,示意图:
    这里写图片描述

    总结:

    以上内容基本上实现了建立向量自回归模型,并进行分析所需的主要功能。至于更细分的点,就需要具体问题具体分析了。如文中有任何错误,请及时留言,谢谢。


    by Yuhua

    展开全文
  • R语言实现PVAR(面板向量自回归模型)

    万次阅读 多人点赞 2019-06-05 20:16:00
    这次研究了一个问题,要用PVAR(面板向量自回归模型),在网上找的教程基本上都是Stata或者Eviews的教程,而鲜有R实现PVAR的教程,这里总结分享一下我摸索的PVAR用R实现的整个过程。 ...
  • 单从外观上看,VAR&...通过vars包可以调用向量自回归模型,通过PerformanceAnalytics包的VaR函数可以调用风险价值模型。 模型简介 library(vars) 向量自回归模型(Vector Autoregression),简称VAR模型,是...
  • Python变量 Python中的向量自回归模型
  • VAR向量自回归模型

    万次阅读 多人点赞 2020-06-14 10:03:34
    VAR向量自回归)模型是基于数据统计性质建立起来的模型,它把系统中的每个内生变量作为系统里所有其它内生变量滞后值的函数进行构建模型,从而把单变量的自回归模型推广到了多元时间序列组成的向量自回归模型。...
  • 第5讲 VAR模型 本讲内容 一VAR模型介绍 二VAR模型估计与相关检验 三格兰杰因果关系检验 四脉冲响应函数分析 ...经济增长与货币供给之间的两变量VAR模型 更一般地考虑一组时间序列变量 我们可以将其定义为一个n 1维向量Y
  • Stata 中的向量自回归模型(VAR)

    万次阅读 多人点赞 2018-11-21 12:09:44
    在单变量回归中,一个平稳的时间序列 yty_tyt​ 经常被模型化为 AR 过程: yt=α0+α1yt−1+α2yt−2+⋯+αkyt−k+ϵt y_t=\alpha_0+\alpha_1 y_{t-1}+\alpha_2 y_{t-2}+\dots +\alpha_k y_{t-k}+\epsilon_t yt​...
  • 澳大利亚在2008 - 2009年全球金融危机期间发生了这种情况。澳大利亚政府发布了一揽子...VAR面临的批评是他们是理论上的; 也就是说,它们不是建立在一些经济学理论的基础上,这些理论强加了方程式的理论结构。假...
  • 这几个月在写论文,论文中用到了面板数据,并且需要做面板向量自回归模型,同时我又是个stata小白&计量小白(有学计量这门课,只是我太菜了)。在做PVAR模型的时候就是百度(主要时经管之家)还有知乎、公众号...
  • 推荐理由:本文概括了使用向量自回归模型(VAR)的若干操作要点,每一点都是经验的总结,也都是新手容易踩坑的地方。转微信公众号“计量经济学”,略有改动向量自回归(VAR,Vector Auto regression)常用于预测相互...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,552
精华内容 2,220
关键字:

向量自回归模型VAR