VEC模型蒙特卡洛预测

这个例子展示了如何从一个VEC()模型。本例将生成的预测与最小均方误差(MMSE)预测以及VAR(+1) VEC的模型等值()模型。

假设具有H1 Johansen形式的VEC(2)模型恰当地描述了由1954年至1994年的年度短期、中期和长期债券利率组成的三维多变量时间序列的动态。假设级数的协整秩为2。

加载和预处理数据

加载Data_Canada提取利率数据,利率数据占据数据的第三列到最后一列。

负载Data_CanadaY = DataTable{: 3:结束};名称= DataTable.Properties.VariableNames(3:结束);T =大小(Y, 1)
T = 41
numSeries =大小(Y, 2)
numSeries = 3

在同一图形中绘制这个系列。

图绘制(日期,Y,“线宽”, 2)包含“年”;ylabel“百分比”;传奇(名称,“位置”,“西北”)标题'{\bf加拿大利率,1954-1994}';轴网格

VEC模型估计

创建一个协整等级为2的三维VEC(2)模型。

numLags = 2;r = 2;Mdl =结果(numSeries r numLags);

估计VEC(2)模型。

EstMdl =估计(Mdl Y);

默认情况下,估计应用H1 Johansen形式并使用第一个形式+ 1 = 3个观察作为压力数据。

生成蒙特卡洛预测

生成蒙特卡洛预测从估计VEC模型超过10年的地平线,使用模拟。提供最新的三行数据来初始化预测,并指定生成1000条响应路径。

numPaths = 1000;地平线= 10;Y0 = Y ((end-2):最终,);rng (1);%的再现性YSimVEC =模拟(EstMdl地平线,“NumPaths”numPaths,“Y0”, Y0);

YSimVEC为响应级数模拟值的10×3×1000数值数组。行对应预测期,列对应预测期Y,而页面对应于模拟路径

在所有路径上估计每个时期和时间序列预测的平均值。为每个周期和时间序列构造95%的预测区间。

YMCVEC =意味着(YSimVEC, 3);YMCVECCI =分位数(YSimVEC [0.025, 0.975], 3);

YMCVEC是一个10乘3的数字矩阵,包含每个周期(行)和时间序列(列)的蒙特卡洛预测。YMCVECCI是一个10×3×2的数字数组,包含每个周期(行)和时间序列(列)的2.5%和97.5%的抽取百分比(页)。

绘制有效样本观察值、平均预测值和95%置信区间。

fDates = date (end) + (0:horizon)';图;h1 =情节([日期;fDates(2:结束)]、[Y;YMCVEC),“线宽”2);甘氨胆酸h2 =;持有h3 =情节(repmat (fDates 1 3), [Y (:,:);YMCVECCI (:,: 1)),“——”,“线宽”2);h3(1)。颜色= h1 (1) .Color;h3(2)。颜色= h1 (2) .Color;h3(3)。颜色= h1 (3) .Color;h4 =情节(repmat (fDates 1 3), [Y (:,:);YMCVECCI (:: 2)),“——”,“线宽”2);h4(1)。颜色= h1 (1) .Color;h4(2)。颜色= h1 (2) .Color;h4(3)。颜色= h1 (3) .Color;fDates(1) fDates(1) fDates(end) fDates(end)],[2. ylim (1) h2.YLim(2) h2.YLim(2) h2.YLim(1)],“b”,“FaceAlpha”(0.1)包含“年”) ylabel (“百分比”)标题('{\bf VEC模型蒙特卡洛预测}')轴网格传奇(h1, DataTable.Properties.VariableNames(3:结束),“位置”,“最佳”);

生成MMSE预测

使用估计的VEC模型对10年的时间范围进行MMSE预测预测。提供最新的三行数据来初始化预测。返回预报和相应的多元均方误差。

[YMMSE, YMMSEMSE] =预测(EstMdl地平线,Y0);

YMMSE是MMSE预测的一个10乘3的数值矩阵。行对应于预测层中的周期,列对应于预测层中的级数YYMMSEMSE是一个3×3的数值矩阵的10×1的单元格向量。细胞内基质j这三个预测值在同一时期的估计的多元MSE是多少j。该矩阵的对角值为预测MSEs,和预测协方差的非对角值。

估计沃德式95%的预测区间。绘制MMSE预测和预测间隔。

YMMSECI = 0(地平线numSeries 2);%预先配置YMMSEMSE = cell2mat (cellfun (@ (x)诊断接头(x)的YMMSEMSE,“UniformOutput”、假));YMMSECI(:,:,1) = YMMSE - 1.96*sqrt(YMMSEMSE);YMMSECI(:,:,2) = YMMSE + 1.96*sqrt(YMMSEMSE);图;h1 =情节([日期;fDates(2:结束)]、[Y;YMMSE),“线宽”2);甘氨胆酸h2 =;持有h3 =情节(repmat (fDates 1 3), [Y (:,:);YMMSECI (:,: 1)),“——”,“线宽”2);h3(1)。颜色= h1 (1) .Color;h3(2)。颜色= h1 (2) .Color;h3(3)。颜色= h1 (3) .Color;h4 =情节(repmat (fDates 1 3), [Y (:,:);YMMSECI (:: 2)),“——”,“线宽”2);h4(1)。颜色= h1 (1) .Color;h4(2)。颜色= h1 (2) .Color;h4(3)。颜色= h1 (3) .Color;fDates(1) fDates(1) fDates(end) fDates(end)],[2. ylim (1) h2.YLim(2) h2.YLim(2) h2.YLim(1)],“b”,“FaceAlpha”(0.1)包含“年”) ylabel (“百分比”)标题('{\bf VEC模型MMSE预测}')轴网格传奇(h1, DataTable.Properties.VariableNames(3:结束),“位置”,“最佳”);

VAR (+ 1)表示MMSE预测

将估计的VEC(2)表示为VAR(3)模型。

EstMdlVAR = varm (EstMdl)
描述:“AR-非平稳三维VAR(3)模型”序列名称:“Y1”“Y2”“Y3”NumSeries: 3 P: 3常数:[-1.73631 -0.313676 0.0649337]’AR:{3×3矩阵}at lag[1 2 3]趋势:[3×1零向量]Beta:[3×0矩阵]协方差:[3×3矩阵]

MdlVAR是一个varm模型对象。

使用VAR模型估计10年期间的MMSE预测预测。提供最新的三行数据来初始化预测。返回预报和相应的多元均方误差。

[YMMSEVAR, YMMSEMSEVAR] =预测(EstMdlVAR地平线,Y0);

的尺寸YMMSEVARYMMSEMSEVAR是一样的YMMSEYMMSEMSE,分别。

估计沃德式95%的预测区间。绘制MMSE预测和预测间隔。

YMMSEVARCI = 0(地平线numSeries 2);YMMSEMSEVAR = cell2mat (cellfun (@ (x)诊断接头(x)的YMMSEMSEVAR,“UniformOutput”、假));YMMSEVARCI(:,:,1) = YMMSE - 1.96*sqrt(YMMSEMSEVAR);YMMSEVARCI(:,:,2) = YMMSE + 1.96*根号(YMMSEMSEVAR);图;h1 =情节([日期;fDates(2:结束)]、[Y;YMMSE),“线宽”2);甘氨胆酸h2 =;持有h3 =情节(repmat (fDates 1 3), [Y (:,:);YMMSEVARCI (:,: 1)),“——”,“线宽”2);h3(1)。颜色= h1 (1) .Color;h3(2)。颜色= h1 (2) .Color;h3(3)。颜色= h1 (3) .Color;h4 =情节(repmat (fDates 1 3), [Y (:,:);YMMSEVARCI (:: 2)),“——”,“线宽”2);h4(1)。颜色= h1 (1) .Color;h4(2)。颜色= h1 (2) .Color;h4(3)。颜色= h1 (3) .Color;fDates(1) fDates(1) fDates(end) fDates(end)],[2. ylim (1) h2.YLim(2) h2.YLim(2) h2.YLim(1)],“b”,“FaceAlpha”(0.1)包含“年”) ylabel (“百分比”)标题('{\bf VAR模型MMSE预测}')轴网格传奇(h1, DataTable.Properties.VariableNames(3:结束),“位置”,“最佳”);

证实从VEC模型和VAR模型得到的MMSE预测是一致的。

(YMMSE - YMMSEVAR)'*(YMMSE - YMMSEVAR
ans =3 x3逻辑阵列0 0 0 0 0 0 0 0 0

两种模型的MMSE预测结果基本一致。

另请参阅

对象

功能

相关的话题