主要内容

VAR模型的案例研究

这个例子展示了如何分析一个VAR模型。

案例研究的概述

本节包含工作流中所描述的一个例子VAR模型的工作流。本例使用三个时间序列:GDP, M1货币供应量,和三个月期国库券us3mt = rr收益率。这个例子表明:

  • 加载和转换数据的平稳性

  • 分区的数据变成presample、估计和预测间隔支持val实验金宝app

  • 让几个模型

  • 对数据的拟合模型

  • 决定哪些是最好的模型

  • 根据最好的模型做出预测

加载和转换数据

该文件Data_USEconModel附带计量经济学工具箱™软件。文件包含时间序列从圣路易斯联邦储备银行的经济学数据(FRED)数据库表格数组。这个示例使用的三个时间序列:

  • 国内生产总值(国内生产总值)

  • M1货币供应量(M1SL)

  • 三个月期国库券us3mt = rr收益率(TB3MS)

加载数据集,为实际GDP创建一个变量。

负载Data_USEconModelDataTimeTable。RGDP = DataTimeTable.GDP. / DataTimeTable.GDPDEF * 100;

绘制数据寻找趋势。

图tiledlayout (3,1) nexttile情节(DataTimeTable.Time DataTimeTable.RGDP,“r”);标题(实际国内生产总值的网格)nexttile情节(DataTimeTable.Time DataTimeTable.M1SL,“b”);标题(“M1”网格)nexttile情节(DataTimeTable.Time DataTimeTable.TB3MS,“k”)标题(“3-mo国债”网格)

图包含3轴对象。坐标轴对象1实际GDP与标题包含一个类型的对象。坐标轴对象与标题2 M1包含一个类型的对象。坐标轴对象3标题3-mo短期国库债券包含一个类型的对象。

实际国内生产总值和M1数据似乎成倍增长,而短期国库债券收益没有指数增长。为应对实际GDP和M1的趋势,不同的数据的对数。同时,稳定国债系列通过第一个区别。同步日期系列,这样数据具有相同的每个列的行数。

rgdpg = price2ret (DataTimeTable.RGDP);m1slg = price2ret (DataTimeTable.M1SL);dtb3ms = diff (DataTimeTable.TB3MS);Data = array2timetable ([rgdpg m1slg dtb3ms),“RowTimes”DataTimeTable.Time(2:结束),“VariableNames”,{“RGDP”“M1SL”“TB3MS”});图tiledlayout (3,1) nexttile情节(Data.Time Data.RGDP,“r”);标题(实际国内生产总值的网格)nexttile情节(Data.Time Data.M1SL,“b”);标题(“M1”网格)nexttile情节(Data.Time Data.TB3MS,“k”);标题(“3-mo国债”网格)

图包含3轴对象。坐标轴对象1实际GDP与标题包含一个类型的对象。坐标轴对象与标题2 M1包含一个类型的对象。坐标轴对象3标题3-mo短期国库债券包含一个类型的对象。

前两列的规模比第三个小100倍。前两列乘以100,这样时间序列都是大致相同的规模。这个比例很容易情节所有系列相同的情节。更重要的是,这种类型的扩展使优化数值稳定的(例如,最大化loglikelihoods)。

数据{:1:2}{:1:2}= 100 *数据;图绘制(Data.Time Data.RGDP,“r”);持有情节(Data.Time Data.M1SL,“b”);datetick (“x”网格)情节(Data.Time Data.TB3MS,“k”);传奇(实际国内生产总值的,“M1”,“3-mo国债”);持有

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。这些对象代表实际国内生产总值,M1, 3-mo短期国债。

选择和适应模型

你可以选择许多不同的模型数据。这个示例使用四个模型。

  • VAR和对角自回归(2)

  • VAR和完整的自回归(2)

  • VAR和对角自回归(4)

  • VAR和完整的自回归(4)

删除所有缺失的值从一开始的系列。

idx =所有(~ ismissing(数据),2);=数据(idx:);

创建四个模型。

numseries = 3;dnan =诊断接头(nan (numseries, 1));seriesnames = {实际国内生产总值的,“M1”,“3-mo国债”};VAR2diag = varm (基于“增大化现实”技术的,{dnan dnan},“SeriesNames”,seriesnames);VAR2full = varm (numseries 2);VAR2full。SeriesNames = SeriesNames;VAR4diag = varm (基于“增大化现实”技术的,{dnan dnan dnan dnan},“SeriesNames”,seriesnames);VAR4full = varm (numseries 4);VAR4full。SeriesNames = SeriesNames;

矩阵dnan是一个对角矩阵值沿主对角线。一般来说,缺失值在模型中指定的参数,并指出需要适合的参数数据。MATLAB®的对角元素,0评估期间,固定。相比之下,规格VAR2fullVAR4full有组成的矩阵值。因此,估计适合全自回归矩阵的矩阵。

评估模型的质量,创建索引向量响应数据划分为三个时期:presample,估计和预测。符合模型的估计数据,利用presample时期提供滞后的数据。比较拟合模型的预测的预测数据。评估周期是在样本和预测期(也称为样本val)。

两个VAR(4)模型,presample时期是第一个四行数据。使用相同的presample时期VAR模型(2),以便所有的模型都是相同的数据。这是必要的模型适合比较。两种模型的预测期的最后10%的行数据。模型的估计时间从5到90%的行。定义这些数据时期。

idxPre = 1:4;T =装天花板(。9 *大小(数据,1));idx = 5: T;idxF = (T + 1):大小(数据,1);跳频=元素个数(idxF);

既然模型和时间序列存在,您可以很容易地适应数据模型。

[EstMdl1, EstSE1 logL1, E1) =估计(VAR2diag、数据{idx:}“Y0”、数据{idxPre:});[EstMdl2, EstSE2 logL2, E2] =估计(VAR2full、数据{idx:}“Y0”、数据{idxPre:});[EstMdl3, EstSE3 logL3, E3] =估计(VAR4diag、数据{idx:}“Y0”、数据{idxPre:});[EstMdl4, EstSE4 logL4, E4] =估计(VAR4full、数据{idx:}“Y0”、数据{idxPre:});
  • EstMdl模型对象是拟合模型。

  • EstSE结构包含的标准误差拟合模型。

  • logLloglikelihoods值的拟合模型,您可以用它来帮助选择最好的模型。

  • E向量是残差,这是相同的大小估计数据。

检查模型充分性

你可以检查是否显示估计模型是稳定的和可逆的描述每一个对象的属性。(马没有在这些模型,这个模型必然是可逆的。)描述表明,所有估计模型是稳定的。

EstMdl1.Description
ans = " AR-Stationary三维VAR(2)模式”
EstMdl2.Description
ans = " AR-Stationary三维VAR(2)模式”
EstMdl3.Description
ans = " AR-Stationary三维VAR(4)模式”
EstMdl4.Description
ans = " AR-Stationary三维VAR(4)模式”

AR-Stationary出现在输出表明自回归过程是稳定的。

你可以比较限制(对角线)AR模型使用无限制(全部)同行lratiotest。测试拒绝或无法拒绝的假设限制模型是适当的,默认5%宽容。这是一个样本测试。

应用似然比检测。你必须从摘要中提取的数量估计参数返回的结构总结。然后,通过不同数量的估计参数和loglikelihoodslratiotest执行测试。

其中回答=总结(EstMdl1);np1 = results1.NumEstimatedParameters;results2 =总结(EstMdl2);np2 = results2.NumEstimatedParameters;results3 =总结(EstMdl3);这类= results3.NumEstimatedParameters;results4 =总结(EstMdl4);np4 = results4.NumEstimatedParameters;reject1 = lratiotest (logL2、logL1 np2 - np1)
reject1 =逻辑1
reject3 = lratiotest (logL4、logL3 np4 -这类)
reject3 =逻辑1
reject4 = lratiotest (logL4、logL2 np4 - np2)
reject4 =逻辑0

1似然比检验结果表明,抛弃了限制模型的相应的无限制的模型。因此,基于这个测试,不受限制的VAR(2)和VAR(4)模型是更可取的。然而,测试并不反对无限制的VAR模型(2)的无限制的VAR模型(4)。(这个测试将VAR(2)模型作为一个VAR(4)模型与自回归矩阵的限制AR(3)和AR (4) 0。)因此,似乎无限制的VAR(2)模型是最好的模型。

找到一组最好的模型,减少Akaike信息准则(AIC)。利用样本数据计算出另类投资会议。计算四个模型的标准。

AIC = aicbic ([logL1 logL2 logL3 logL4], [np1 np2 np3 np4])
AIC =1×4103×1.4794 1.4396 1.4785 1.4537

最好的模型根据这个标准是不受限制的VAR模型(2)。也注意到,不受限制的VAR(4)模型具有较低的Akaike比限制模型的信息。根据这一标准,无限制的VAR模型(2)是最好的,与不受限制的VAR(4)模型下的偏好。

比较这四个模型的预测与预报数据,使用预测。这个函数返回一个平均时间序列的预测和误差协方差矩阵提供了手段的置信区间。这是一个样本外的计算。

[FY1, FYCov1] =预测(EstMdl1、跳频、数据{idx:});[FY2, FYCov2] =预测(EstMdl2、跳频、数据{idx:});[FY3, FYCov3] =预测(EstMdl3、跳频、数据{idx:});[FY4, FYCov4] =预测(EstMdl4、跳频、数据{idx:});

估计大约95%预测间隔最好的拟合模型。

extractMSE = @ (x)诊断接头(x) ';MSE = cellfun (extractMSE FYCov2,“UniformOutput”、假);SE =√cell2mat (MSE));YFI = 0 (fh EstMdl2.NumSeries 2);YFI (:: 1) = FY2 - 2 * SE;YFI (:: 2) = FY2 + 2 * SE;

这个图展示了最好的拟合模型的预测阴影区域。

图tiledlayout (3,1)j = 1: EstMdl2。NumSeries nexttile h1 =情节(Data.Time ((end-49):结束),数据{(end-49):最终,j});持有h2 =情节(Data.Time (idxF) FY2 (:, j));h3 =情节(Data.Time (idxF) YFI (j,: 1),“k——”);情节(Data.Time (idxF) YFI (: j 2),“k——”);标题(EstMdl2.SeriesNames {j}) h = gca;填充([Data.Time (idxF (1) h。XLim (2 [2]) Data.Time (idxF (1))),h。YLim ([1 1 2 2]),“k”,“FaceAlpha”,0.1,“EdgeColor”,“没有”);传奇((h1 h2 h3),“真正的”,“预测”,“95%的预测区间”,“位置”,“西北”)举行结束

图包含3轴对象。坐标轴对象1实际GDP与标题包含5线类型的对象,补丁。这些对象代表真实,预测,95%的预测区间。坐标轴对象与标题2 M1包含5线类型的对象,补丁。这些对象代表真实,预测,95%的预测区间。坐标轴对象3标题3-mo短期国库债券包含5线类型的对象,补丁。这些对象代表真实,预测,95%的预测区间。

现在简单的计算预测和数据之间的误差平方和。

Error1 = {idxF:} - FY1数据;Error2 = {idxF:} - FY2数据;Error3 = {idxF:} - FY3数据;Error4 = {idxF:} - FY4数据;SSerror1 = Error1(:)的* Error1 (:);SSerror2 = Error2(:)的* Error2 (:);SSerror3 = Error3(:)的* Error3 (:);SSerror4 = Error4(:)的* Error4 (:);图酒吧([SSerror1 SSerror2 SSerror3 SSerror4), 5) ylabel (平方误差的总和甘氨胆酸)组(,“XTickLabel”,{“AR2诊断接头的“AR2完整”“AR4诊断接头的“AR4完整”})标题(“平方预测误差的总和”)

图包含一个坐标轴对象。坐标轴对象与标题的平方之和预测错误,ylabel平方误差的总和包含一个对象类型的酒吧。

四个模型的预测性能是相似的。

完整的AR(2)模型似乎是最好的和最吝啬的健康。其模型参数如下。

总结(EstMdl2)
AR-Stationary三维VAR(2)模型有效样本大小:176数量的估计参数:21 LogLikelihood: -698.801 AIC: 1439.6 BIC: 1506.18价值StandardError TStatistic PValue __________ _________________ __________ __________常数(1)0.34832 0.11527 3.0217 0.0025132常数(2)0.55838 0.1488 3.7526 0.00017502常数(3)-0.45434 0.15245 -2.9803 0.0028793基于“增大化现实”技术的{1}(1,1)0.26252 0.07397 3.5491 0.00038661基于“增大化现实”技术的{1}(2,1)-0.029371 0.095485 -0.3076 0.75839基于“增大化现实”技术的{1}(3,1)0.22324 0.097824 2.2821 0.022484基于“增大化现实”技术的{1}(1、2)-0.074627 0.054476 -1.3699 0.17071基于“增大化现实”技术的{1}(2,2)0.2531 0.070321 3.5992 0.00031915基于“增大化现实”技术的{1}(3 2)-0.017245 0.072044 -0.23936 0.81082基于“增大化现实”技术的{1}(1、3)0.032692 0.056182 0.58189 0.56064基于“增大化现实”技术的{1}(2、3)-0.35827 0.072523 -4.94 7.8112 e-07 AR {1} (3,3) -0.29179 0.0743 -3.9272 8.5943 e-05 AR{2}(1,1) 0.21378 0.071283 2.9991 0.0027081基于“增大化现实”技术的{2}(2,1)-0.078493 0.092016 -0.85304 0.39364基于“增大化现实”技术的{2}(3,1)0.24919 0.094271 2.6433 0.0082093基于“增大化现实”技术的{2}(1、2)0.13137 0.051691 2.5415 0.011038基于“增大化现实”技术的{2}(2,2)0.38189 0.066726 5.7233 1.045 e-08 AR{2}(3 2) 0.049403 0.068361 0.72269 0.46987基于“增大化现实”技术的{2}(1、3)-0.22794 0.059203 -3.85 0.00011809基于“增大化现实”技术的{2}(2、3)-0.0052932 0.076423 -0.069262 0.94478基于“增大化现实”技术的{2}(3、3)-0.37109 0.078296 -4.7397 2.1408 e-06创新协方差矩阵:0.5931 0.0611 0.1705 0.0611 0.9882 -0.1217 0.1705 -0.1217 1.0372创新相关矩阵:1.0000 0.0798 0.2174 0.0798 1.0000 -0.1202 0.2174 -0.1202 1.0000

预测的观察

你可以做出预测或预测使用拟合模型(EstMdl2)通过:

  • 调用预测和传递的最后几行YF

  • 模拟几个时间序列模拟

在这两种情况下,将预测他们直接与原始时间序列。

从安装生成10预测模型开始最新的时候使用预测

[YPred, YCov] =预测(EstMdl2 10数据{idxF:});

将预测,解开缩放和差分应用到原始数据。确保插入最后观测时间序列的开头使用前cumsum撤销差分。由于差分后发生取对数,插入对数之前使用cumsum

YFirst = DataTimeTable (idx, {“RGDP”“M1SL”“TB3MS”});EndPt = YFirst {,,};EndPt(: 1:2) =日志(EndPt (: 1:2));YPred (:, 1:2) = YPred (:, 1:2) / 100;%重新调节比例YPred = [EndPt;YPred];%准备cumsumYPred (: 1:3) = cumsum (YPred (: 1:3));YPred (: 1:2) = exp (YPred (: 1:2));fdates = dateshift (YFirst.Time(结束),“结束”,“季”,0:10);%插入预测地平线图tiledlayout (3,1)j = 1: EstMdl2。NumSeries nexttile情节(fdates YPred (:, j),“——b”)举行情节(YFirst.Time YFirst {: j},“k”网格)标题(EstMdl2.SeriesNames {j}) h = gca;填充([fdates (1) h。XLim (2 [2]) fdates (1)), h。YLim ([1 1 2 2]),“k”,“FaceAlpha”,0.1,“EdgeColor”,“没有”);持有结束

图包含3轴对象。坐标轴对象1实际GDP与标题包含3线类型的对象,补丁。坐标轴对象与标题2 M1包含3线类型的对象,补丁。坐标轴对象3标题3-mo短期国库债券包含3线类型的对象,补丁。

蓝色虚线的情节展示推断浅灰色预测地平线,和原始数据系列固体黑色。

看看过去几年在这个阴谋的预测如何与最新的数据点。

YLast = YFirst(170年:,);图tiledlayout (3,1)j = 1: EstMdl2。NumSeries nexttile情节(fdates YPred (:, j),“b——”)举行情节(YLast.Time YLast {: j},“k”网格)标题(EstMdl2.SeriesNames {j}) h = gca;填充([fdates (1) h。XLim (2 [2]) fdates (1)), h。YLim ([1 1 2 2]),“k”,“FaceAlpha”,0.1,“EdgeColor”,“没有”);持有结束

图包含3轴对象。坐标轴对象1实际GDP与标题包含3线类型的对象,补丁。坐标轴对象与标题2 M1包含3线类型的对象,补丁。坐标轴对象3标题3-mo短期国库债券包含3线类型的对象,补丁。

预测显示增加实际GDP和M1,略有下降的利率。然而,预测没有误差。

或者,您可以生成10从拟合模型的预测开始最新的时候使用模拟。这种方法模拟了2000年时间序列,然后生成每个时期的均值和标准差。意味着背离的每个时期的预测。

模拟一个时间序列的拟合模型在最新的时间开始。

rng (1);%的再现性YSim =模拟(EstMdl2 10“Y0”、数据{idxF:}“NumPaths”,2000);

将预测,解开缩放和差分应用到原始数据。确保插入最后观测时间序列的开头使用前cumsum撤销差分。由于差分后发生取对数,插入对数之前使用cumsum

EndPt = YFirst {,,};日志(EndPt EndPt (1:2) = (1:2));YSim (1:2,::) = YSim (1:2,::) / 100;YSim = [repmat (EndPt [1, 2000]); YSim);YSim (1:3,::) = cumsum (YSim (: 1:3,:));YSim (1:2,::) = exp (YSim (:, 1:2,:));

计算每个系列的平均值和标准偏差,并画出结果。情节的意思是黑色,红色+ / - 1标准偏差。

YMean =意味着(YSim, 3);YSTD =性病(YSim 0 3);图tiledlayout (3,1)j = 1: EstMdl2。NumSeries nexttile情节(fdates YMean (:, j),“k”网格)持有情节(YLast.Time (end-10:结束),YLast {end-10:结束,j},“k”)情节(fdates YMean (:, j) + YSTD (:, j),“——r”)情节(fdates YMean (:, j)——YSTD (:, j),“——r”)标题(EstMdl2.SeriesNames {j}) h = gca;填充([fdates (1) h。XLim (2 [2]) fdates (1)), h。YLim ([1 1 2 2]),“k”,“FaceAlpha”,0.1,“EdgeColor”,“没有”);持有结束

图包含3轴对象。坐标轴对象1实际GDP与标题包含5线类型的对象,补丁。坐标轴对象与标题2 M1包含5线类型的对象,补丁。坐标轴对象3标题3-mo短期国库债券包含5线类型的对象,补丁。

情节显示增加GDP的增长,中度到小M1的增长,国债利率的方向的不确定性。

另请参阅

对象

功能

相关的话题