此示例显示如何从VEC生成蒙特卡罗预测(问)模型。该示例将生成的预测与最小均方误差(MMSE)预测和来自VAR(问+1) VEC的模型等效(问)模型。
假设具有H1 Johansen形式的VEC(2)模型恰当地描述了由1954年至1994年的短期、中期和长期债券利率组成的三维多元时间序列的动态。假设这个级数的协整秩为2。
加载Data_Canada
数据集。提取利率数据,它占据数据的第三列到最后一列。
负载Data_CanadaY=DataTable{:,3:end};名称=DataTable.Properties.VariableNames(3:end);T=size(Y,1)
T = 41
numSeries=大小(Y,2)
numSeries = 3
用同样的图形绘制这个系列。
图1:绘图(日期,Y,“线宽”, 2)包含“年”;伊莱贝尔“百分比”;传奇(名称,“位置”,“西北”)头衔'{bf加拿大利率,1954-1994}';轴牢固的网格在…上
创建一个协整秩为2的3D 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((结束-2):结束,:);rng(1);%为了再现性YSimVEC=模拟(EstMdl、地平线、,“NumPaths”,numPaths,“Y0”, Y0);
伊西姆韦克
是响应序列的模拟值的一个10 × 3 × 1000的数字数组。行对应预测视界中的时间段,列对应预测视界中的序列Y
,页面对应于模拟路径
估计所有路径上每个时段和时间序列的预测平均值。为每个时段和时间序列构建95%的预测间隔。
YMCVEC=平均值(YSimVEC,3);YMCVECI=分位数(YSimVEC,[0.025,0.975],3);
YMCVEC
是一个10×3的数值矩阵,包含每个时段(行)和时间序列(列)的蒙特卡罗预测。YMCVECCI
是一个10×3×2的数字数组,包含每个期间(行)和时间序列(列)的绘图的2.5%和97.5%百分位数(页)。
绘制有效样本观察、平均预测和95%百分位置信区间。
fDates=日期(结束)+(0:地平线)';图;h1=绘图([dates;fDates(2:结束)],[Y;YMCVEC],“线宽”2);甘氨胆酸h2 =;持有在…上h3=绘图(repmat(fDates,1,3),[Y(end,:,:);YMCVECCI(:,:,1)],“——”,...“线宽”h3(1).颜色=h1(1).颜色;h3(2).颜色=h1(2).颜色;h3(3).颜色=h1(3).颜色;h4=绘图(repmat(fDates,1,3),[Y(end,:,,,:);YMCVECCI(,,,,,,,,,,,,,),“——”,...“线宽”,2);h4(1).颜色=h1(1).颜色;h4(2).颜色=h1(2).颜色;h4(3).颜色=h1(3).颜色;补丁([fDates(1)fDates(1)fDates(end)fDates(end)],...[h2.YLim(1)h2.YLim(2)h2.YLim(2)h2.YLim(1)],“b”,“FaceAlpha”(0.1)包含“年”)伊拉贝尔(“百分比”)头衔('{\bf VEC模型蒙特卡罗预测}')轴牢固的网格在…上传奇(h1, DataTable.Properties.VariableNames(3:结束),“位置”,“最佳”);
根据估计的VEC模型,通过使用预测
。提供最新的三行数据以初始化预测。返回预测和相应的多元均方误差。
[YMMSE,YMMSE]=预测(EstMdl,地平线,Y0);
YMMSE
为MMSE预测的10 × 3数值矩阵。行对应预测地平线的周期,列对应预测中的序列Y
.YMMSEMSE
是由3×3数值矩阵组成的10×1单元向量。单元中的矩阵j是估计的,多元的MSE的三个预测值在时期j.矩阵的对角线值为预测mse,非对角线值为预测协方差。
估计wald型95%的预测区间。绘制MMSE预测和预测区间。
YMMSECI=零(地平线,numSeries,2);%预先配置YMMSEMSE = cell2mat (cellfun (@ (x)诊断接头(x)的YMMSEMSE,“UniformOutput”,false);YMMSECI(:,:,1)=YMMSE-1.96*sqrt(YMMSE);YMMSECI(:,:,2)=YMMSE+1.96*sqrt(YMMSE);图;h1=绘图([日期;日期(2:end)],[Y;YMMSE],“线宽”2);甘氨胆酸h2 =;持有在…上h3=绘图(repmat(fDates,1,3),[Y(end,:,:);YMMSECI(:,:,1)],“——”,...“线宽”,2);h3(1).颜色=h1(1).颜色;h3(2).颜色=h1(2).颜色;h3(3).颜色=h1(3).颜色;h4=绘图(repmat(fDates,1,3),[Y(end,:,,,:);YMMSECI(,,:,2)],“——”,...“线宽”,2);h4(1).颜色=h1(1).颜色;h4(2).颜色=h1(2).颜色;h4(3).颜色=h1(3).颜色;补丁([fDates(1)fDates(1)fDates(end)fDates(end)],...[h2.YLim(1)h2.YLim(2)h2.YLim(2)h2.YLim(1)],“b”,“FaceAlpha”(0.1)包含“年”)伊拉贝尔(“百分比”)头衔(“{\bf VEC模型MMSE预报}”)轴牢固的网格在…上传奇(h1, DataTable.Properties.VariableNames(3:结束),“位置”,“最佳”);
将估计的VEC(2)表示为VAR(3)模型。
EstMdlVAR=varm(EstMdl)
EstMdlVAR=varm及其属性:Description:“AR非平稳三维VAR(3)模型”系列名称:“Y1”“Y2”“Y3”个数系列:3 P:3常数:[-1.73631-0.313676 0.0649337]“AR:{3×3矩阵}滞后[1 2 3]趋势:[3×1零向量]β:[3×0矩阵]协方差:[3×3矩阵]
MdlVAR
是一个varm
模型对象。
利用风险价值模型估算10年期内的MMSE预测预测
。提供最新的三行数据以初始化预测。返回预测和相应的多元均方误差。
[YMMSEVAR,YMMSEVAR]=预测(EstMdlVAR,地平线,Y0);
的尺寸YMMSEVAR
和YMMSEMSEVAR
与YMMSE
和YMMSEMSE
,分别。
估计wald型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*sqrt(YMMSEMSEVAR);图;h1 =情节([日期;fDates(2:结束)]、[Y;YMMSE),“线宽”2);甘氨胆酸h2 =;持有在…上h3=曲线图(repmat(fdate,1,3),[Y(end,:,:,:);YMMSEVARCI(:,:,1)],“——”,...“线宽”,2); h3(1).颜色=h1(1).颜色;h3(2).颜色=h1(2).颜色;h3(3).颜色=h1(3).颜色;h4=绘图(repmat(fDates,1,3),[Y(end,:,:);YMMSEVARCI(:,:,2)],“——”,...“线宽”,2);h4(1).颜色=h1(1).颜色;h4(2).颜色=h1(2).颜色;h4(3).颜色=h1(3).颜色;补丁([fDates(1)fDates(1)fDates(end)fDates(end)],...[h2.YLim(1)h2.YLim(2)h2.YLim(2)h2.YLim(1)],“b”,“FaceAlpha”(0.1)包含“年”)伊拉贝尔(“百分比”)头衔(“{\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预测结果是一致的。