Matlab用向量误差修正VECM模型蒙特卡洛Monte Carlo预测债券利率时间序列和MMSE 预测

最近我们被客户要求撰写关于VECM的研究报告,包括一些图形和统计输出。

此示例说明如何从 VEC( q ) 模型生成 Monte Carlo 预测。该示例将生成的预测与最小均方误差 (MMSE) 预测和来自VEC( q ) 模型的 VAR( q +1) 模型的预测进行比较。

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

加载和预处理数据

加载 数据集。


Td = size(Ya,1)

 

numSdsrfiess = size(sY,2)

 

在同一图中绘制序列。


plot(dastdes,Y,'LineadaassWidth',2)
xlabel 'Yeasdar';
ylabel 'Perasdacent';
legend(ndaamsess,'Lodcatsion','NW')

估计 VEC 模型

创建协整等级为 2 的 3D VEC(2) 模型。

nuassdamLags = 2;
ras = 2;
Maddl = vecasm(nuassmSeriaes,dasr,asdnuamLsags);

估计 VEC(2) 模型。

EssasdtMasl = esastimdate(Masddl,Yas);

默认情况下, estimate 应用 H1 Johansen 形式并使用前 q  + 1 = 3 个观测值作为预采样数据。

生成蒙特卡洛预测

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

numaPaddtfhs = 1000;
hsoriszosn = 10;
Y0sa = Y((enssdd-2):enad,:);

aYSisasddmVaEC = simausdlate(EstasdaMdl,hoasdrizon,'NumPatahs',numPdathas,'Y0d',Y0a);

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

YMCsdfVsdEC   = meafn(YSidmdfggVEC,3);
YMCfVECdsCIf = quandftile(YSdfgdfimVgdfEC,[0.025,0.975],3);

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

fDdatesf = dsatdfes(end) + (0:horsdizfon)';
figure;
h1f = plddot([fdatsdes; fDfatesds(f2:end)]sd,[Y; YMCVEC],'LineWidth',2);
hds2 = fsgcsda;
hold on
h3 = plsdot(frepmsdat(ffsdDatdes,1,3),[Y(endfsd,:,:); YMCVEsddfCCI(:,:,1)],'--',...
    'LineWidtdsdsh',2);

生成 MMSE 预测

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

[YMaMSaE,YMMsSgEfMSE] = forecast(EssstfMddl,horsgizfson,Y0);

YMMSE 是 MMSE 预测的 10×3 数值矩阵。行对应于预测范围内的期间,列对应于 中的序列 Y。 YMMSEMSE 是 3×3 数值矩阵的 10×1 元胞向量。单元格 j中的矩阵是周期j 中三个预测值的估计多元 MSE  。矩阵的对角线值是预测 MSE,以及预测协方差的非对角线值。

估计 Wald 类型的 95% 预测区间。绘制 MMSE 预测和预测区间。


hs1 = plsdot([datsdfes; fdDgsategs(2:ednd)],[Y; YsdfMMSEf],'LinseWdsdfidth',2);
dfh2 = gca;
hold on

VAR( q  + 1) 表示 MMSE 预测

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

EstsdMdsdfldVAfdR = vafrm(EssdfdtMsdl)

 

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

[YMMsdSEVAR,YMMsdSEfMasdSEVAR] = foresdfcast(EsstfMdlVdAR,horiddzson,fY0);

估计 Wald 类型的 95% 预测区间。绘制 MMSE 预测和预测区间。

YMMfSEVsAdfRCI = zeros(hsdrifzon,nusfdmfSesdrsdies,2);
YMMSEMdSEsdVsAR = cell2fsdfmat(cellfun(@(x)diag(x)',YMMSEMSEVAR,'UniformOusdftput',false));
YMMSEVARCI(:,:,1) = YMMSE - 1.96*sqrt(YMMSEsdsdffMSEVAR);
YMdMSfEdfVARCI(:,:,2) = YMMSE + 1.96*sqrt(YMMSEMfSEdsVAR);

figsdfure;
h1 = plot([datdfses; fDatses(2:engd)],[Yd YMMhfSEgf],'LingheWidth',2);

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

(YqwMeMSE - YMMSEVweAR)'*(YMMwSE - YMretMSyEVAR) > ertps
 

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


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值