主要内容

VEC模型蒙特卡罗预测

这个例子展示了如何从VEC生成蒙特卡罗预测()模型。该示例将生成的预测与最小均方误差(MMSE)预测和VAR(+1) VEC()模型。

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

加载和预处理数据

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

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

在同一张图中画出这个级数。

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

图中包含一个轴对象。标题为空白C an a d i an空白in t e es t空白r a es,空白1 9 5 4 - 1 9 9 4,xlabel年份,ylabel百分比包含3个行类型的对象。这些对象表示INT_S, INT_M, INT_L。

估计VEC模型

创建一个三维VEC(2)模型,其协整秩为2。

numlag = 2;R = 2;Mdl = vecm(numSeries,r, numlag);

估计VEC(2)模型。

EstMdl =估计(Mdl,Y);

默认情况下,估计应用H1约翰森形式,并使用第一个+ 1 = 3个观测值作为预样本数据。

生成蒙特卡罗预测

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

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

YSimVEC是响应系列的模拟值的10 × 3 × 1000数值数组。行对应预测视界中的周期,列对应预测视界中的序列Y,页面对应模拟路径

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

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

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

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

fDates =日期(结束)+(0:地平线)';图;H1 = plot([日期;fDates(2:结束)]、[Y;YMCVEC),“线宽”2);H2 = gca;持有h3 = plot(repmat(fDates,1,3),[Y(end,:,:));YMCVECCI (:,: 1)),“——”...“线宽”2);h3(1)。Color = h1(1).Color;h3(2)。Color = h1(2).Color;h3(3)。Color = h1(3).Color;h4 = plot(repmat(fDates,1,3),[Y(end,:,:));YMCVECCI (:: 2)),“——”...“线宽”2);h4(1)。Color = h1(1).Color;h4(2)。Color = h1(2).Color;h4(3)。Color = h1(3).Color;patch([fDates(1) fDates(1) fDates(end) fDates(end)],...[h2.YLim(1) h2.YLim(2) h2.YLim(2) h2.YLim(1)],“b”“FaceAlpha”(0.1)包含“年”) ylabel (“百分比”)标题({\bf VEC模型蒙特卡罗预测})轴网格传奇(h1, DataTable.Properties.VariableNames(3:结束),“位置”“最佳”);

图中包含一个轴对象。标题空白V E C空白M o d E l空白M ont E空白C ar o o空白F o r E a s ts的轴对象,xlabel年份,ylabel百分比包含10个类型为line, patch的对象。这些对象表示INT_S, INT_M, INT_L。

生成MMSE预报

从估计的VEC模型中估计MMSE 10年的预测预测.提供最新的三行数据来初始化预测。返回预测和各自的多元均方误差。

[YMMSE,YMMSEMSE] = forecast(EstMdl,horizon,Y0);

YMMSE是MMSE预测的10 × 3数值矩阵。行对应于预测视界中的周期,列对应于中的序列YYMMSEMSE是3 × 3数值矩阵的10 × 1单元向量。细胞中的基质j这三个预测值在周期内的估计多元MSE是多少j.矩阵的对角线值为预测mse,非对角线值为预测协方差。

估计wald型95%预测区间。绘制MMSE预报和预报区间。

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

图中包含一个轴对象。标题空白V E C空白M o d E l空白M M S E空白F o r E a S t S的坐标轴对象,xlabel年份,ylabel百分比包含10个类型为line, patch的对象。这些对象表示INT_S, INT_M, INT_L。

VAR (+ 1)代表MMSE预测

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

EstMdlVAR = var (EstMdl)
EstMdlVAR = varm与属性:描述:“AR-非平稳3维VAR(3)模型”SeriesNames:“Y1”“Y2”“Y3”NumSeries: 3 P: 3常数:[-1.73631 -0.313676 0.0649337]' AR: {3×3矩阵}在滞后[1 2 3]趋势:[3×1零向量]Beta: [3×0矩阵]协方差:[3×3矩阵]

MdlVAR是一个varm模型对象。

从VAR模型估计MMSE预测10年预测.提供最新的三行数据来初始化预测。返回预测和各自的多元均方误差。

[YMMSEVAR,YMMSEMSEVAR] = forecast(EstMdlVAR,horizon,Y0);

的维度YMMSEVAR而且YMMSEMSEVAR是一样的YMMSE而且YMMSEMSE,分别。

估计wald型95%预测区间。绘制MMSE预报和预报区间。

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

图中包含一个轴对象。标题空白V A R空白M o d el空白M M S e空白F o R ec S S S的坐标轴对象,xlabel年份,ylabel百分比包含10个类型为line, patch的对象。这些对象表示INT_S, INT_M, INT_L。

确认来自VEC和VAR模型的MMSE预测是相同的。

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

模型之间的MMSE预测是相同的。

另请参阅

应用程序

对象

功能

相关的话题