这个例子展示了如何从VEC(Q)模型。该示例将生成的预测与最小均方误差(MMSE)预测和VAR预测进行比较(Q+1)等效于VEC的模型(Q)模型。
假设H1-Johansen形式的VEC(2)模型恰当地描述了由1954年至1994年的年度短期、中期和长期债券利率组成的三维多变量时间序列的动力学。假设该序列的协整等级为2。
加载加拿大数据中心
数据集。提取利率数据,它占据数据的第三列到最后一列。
负载加拿大数据中心Y = DataTable{: 3:结束};名称= DataTable.Properties.VariableNames(3:结束);T =大小(Y, 1)
T=41
numSeries =大小(Y, 2)
numSeries=3
在同一图中绘制该系列。
图绘制(日期,Y,“线宽”,2)xlabel“年”;ylabel“百分比”; 图例(名称,“位置”,“西北”)标题“{\bf加拿大利率,1954-1994年}”; 轴紧网格在
创建协整等级为2的3D VEC(2)模型。
numLags=2;r=2;Mdl=vecm(numSeries,r,numLags);
估计VEC(2)模型。
EstMdl =估计(Mdl Y);
默认情况下,估计
应用H1 Johansen表单并使用第一个Q+1=3个观测值作为采样前数据。
根据估计的10年期VEC模型,通过使用模拟
. 提供最新的三行数据以初始化预测,并指定生成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的数字矩阵,包含每个时期(行)和时间序列(列)的蒙特卡罗预测。YMCVCECCI
是一个10 × 3 × 2的数字数组,包含每个时间段(行)和时间序列(列)的绘制的2.5%和97.5%百分比(页)。
绘制有效样本观察值、平均预测值和95%置信区间。
fDates = date (end) + (0:horizon)'; / /结束图;h1 =情节([日期;fDates(2:结束)]、[Y;YMCVEC),“线宽”,2); h2=gca;持有在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).Color = H1(1).Color;H4(2).Color = H1(2).Color;H4(3).Color = H1(3).Color;补丁([FDATES(1)FDATES(1)FDATES(END)FDATES(END)],...[h2.YLim(1) h2.YLim(2) h2.YLim(1)],“b”,“FaceAlpha”,0.1)xlabel(“年”) ylabel (“百分比”)标题(“{\bf VEC模型蒙特卡罗预测}”)轴心紧网格在图例(h1,DataTable.Properties.VariableNames(3:end),“位置”,“最好的”);
利用估算的VEC模型估算10年范围内的MMSE预测预测
.提供最新的三行数据来初始化预测。返回预测和各自的多元均方误差。
[YMMSE, YMMSEMSE] =预测(EstMdl地平线,Y0);
YMMSE
是MMSE预测的10×3数字矩阵。行对应于预测范围中的时段,列对应于预测范围中的系列Y
.YMMSE
是一个由3 × 3数字矩阵组成的10 × 1单元格向量。细胞内的基质J是该期间三个预测值的估计多元MSEJ. 矩阵的对角值为预测MSE和预测协方差的非对角值。
估计wald型95%的预测区间。绘制MMSE预测和预测区间。
YMMSECI = 0(地平线numSeries 2);%预分配YMMSEMSE=cell2mat(cellfun(@(x)diag(x)”,ymmse,“UniformOutput”、假));YMMSECI(:,: 1) = YMMSE - 1.96*sqrt(YMMSEMSE);YMMSECI(:,: 2) = YMMSE + 1.96*sqrt(YMMSEMSE); / /图;h1 =情节([日期;fDates(2:结束)]、[Y;YMMSE),“线宽”,2); h2=gca;持有在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).Color = H1(1).Color;H4(2).Color = H1(2).Color;H4(3).Color = H1(3).Color;补丁([FDATES(1)FDATES(1)FDATES(END)FDATES(END)],...[h2.YLim(1) h2.YLim(2) h2.YLim(1)],“b”,“FaceAlpha”,0.1)xlabel(“年”) ylabel (“百分比”)标题(“{\bf VEC模型MMSE预测}”)轴心紧网格在图例(h1,DataTable.Properties.VariableNames(3:end),“位置”,“最好的”);
将估计的VEC(2)表示为VAR(3)模型。
EstMdlVAR = varm (EstMdl)
EstMdlVAR = varm with properties:描述:"AR- nonstationary three dimensional VAR(3) Model" SeriesNames: "Y1" "Y2" "Y3" NumSeries: 3 P: 3 Constant: [-1.73631 -0.313676 0.0649337]' AR: {3×3 matrices} at aglj [1 2 3] Trend: [3×1 vector of zero] Beta: [3×0 matrix] Covariance: [3×3 matrix]
MdlVAR
是一个瓦姆
模型对象。
使用VAR模型估算10年范围内的MMSE预测预测
.提供最新的三行数据来初始化预测。返回预测和各自的多元均方误差。
[YMMSEVAR, YMMSEMSEVAR] =预测(EstMdlVAR地平线,Y0);
尺寸YMMSEVAR
和YMMSEVAR
是一样的YMMSE
和YMMSE
分别地
估计wald型95%的预测区间。绘制MMSE预测和预测区间。
YMMSEVARCI=零(地平线,整数,2);YMMSEVAR=cell2mat(cellfun(@(x)diag(x)”,YMMSEVAR,“UniformOutput”,假);YMMSEVARCI(:,:,1)=YMMSE-1.96*sqrt(ymmsevar);YMMSEVARCI(:,:,2)=YMMSE+1.96*sqrt(ymmsevar);图形h1=绘图([日期;fdate(2:end)],[Y;YMMSE],“线宽”,2); h2=gca;持有在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).Color = H1(1).Color;H4(2).Color = H1(2).Color;H4(3).Color = H1(3).Color;补丁([FDATES(1)FDATES(1)FDATES(END)FDATES(END)],...[h2.YLim(1) h2.YLim(2) h2.YLim(1)],“b”,“FaceAlpha”,0.1)xlabel(“年”) ylabel (“百分比”)标题(“{\bf VAR模型MMSE预测}”)轴心紧网格在图例(h1,DataTable.Properties.VariableNames(3:end),“位置”,“最好的”);
确认VEC和VAR模型的MMSE预测是相同的。
(YMMSE - YMMSEVAR)'*(YMMSE - YMMSEVAR) > eps
ans=3 x3逻辑阵列0 0 0 0 0 0 0 0
模型之间的MMSE预测是相同的。