Matlab用向量誤差修正VECM模型蒙特卡洛Monte Carlo預(yù)測債券利率時(shí)間序列和MMSE 預(yù)測
原文鏈接:http://tecdat.cn/?p=27246?
原文出處:拓端數(shù)據(jù)部落公眾號
此示例說明如何從 VEC(?q?) 模型生成 Monte Carlo 預(yù)測。該示例將生成的預(yù)測與最小均方誤差 (MMSE) 預(yù)測和來自VEC(?q ) 模型的 VAR(?q?+1) 模型的預(yù)測進(jìn)行比較。
假設(shè)具有 H1 Johansen 形式的 VEC(2) 模型恰當(dāng)?shù)孛枋隽擞?1954 年至 1994 年的年度短期、中期和長期債券利率組成的 3D 多元時(shí)間序列的動(dòng)態(tài)。
加載和預(yù)處理數(shù)據(jù)
加載?數(shù)據(jù)集。
Td = size(Ya,1)
?

numSdsrfiess = size(sY,2)
?

在同一圖中繪制序列。
plot(dastdes,Y,'LineadaassWidth',2)
xlabel 'Yeasdar';
ylabel 'Perasdacent';
legend(ndaamsess,'Lodcatsion','NW')

估計(jì) VEC 模型
創(chuàng)建協(xié)整等級為 2 的 3D VEC(2) 模型。
nuassdamLags = 2;
ras = 2;
Maddl = vecasm(nuassmSeriaes,dasr,asdnuamLsags);
估計(jì) VEC(2) 模型。
EssasdtMasl = esastimdate(Masddl,Yas);
默認(rèn)情況下,?estimate
?應(yīng)用 H1 Johansen 形式并使用前?q??+ 1 = 3 個(gè)觀測值作為預(yù)采樣數(shù)據(jù)。
生成蒙特卡洛預(yù)測
使用 . 從估計(jì)的 VEC 模型生成 10 年的蒙特卡羅預(yù)測?simulate
。提供最新的三行數(shù)據(jù)來初始化預(yù)測,并指定生成 1000 條路徑。
numaPaddtfhs = 1000;
hsoriszosn = 10;
Y0sa = Y((enssdd-2):enad,:);
aYSisasddmVaEC = simausdlate(EstasdaMdl,hoasdrizon,'NumPatahs',numPdathas,'Y0d',Y0a);
估計(jì)所有路徑上每個(gè)時(shí)期和時(shí)間序列的預(yù)測均值。為每個(gè)時(shí)期和時(shí)間序列構(gòu)建 95% 的百分位預(yù)測區(qū)間。
YMCsdfVsdEC ? = meafn(YSidmdfggVEC,3);
YMCfVECdsCIf = quandftile(YSdfgdfimVgdfEC,[0.025,0.975],3);
繪制有效樣本觀測值、平均預(yù)測值和 95% 百分位置信區(qū)間。
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 預(yù)測
使用估計(jì)的 VEC 模型在 10 年的范圍內(nèi)估計(jì) MMSE 預(yù)測?forecast
。提供最新的三行數(shù)據(jù)來初始化預(yù)測。返回預(yù)測和相應(yīng)的多元均方誤差。
[YMaMSaE,YMMsSgEfMSE] = forecast(EssstfMddl,horsgizfson,Y0);
YMMSE
?是 MMSE 預(yù)測的 10×3 數(shù)值矩陣。行對應(yīng)于預(yù)測范圍內(nèi)的期間,列對應(yīng)于 中的序列?Y
。?YMMSEMSE
?是 3×3 數(shù)值矩陣的 10×1 元胞向量。單元格?j中的矩陣是周期j?中三個(gè)預(yù)測值的估計(jì)多元 MSE? 。矩陣的對角線值是預(yù)測 MSE,以及預(yù)測協(xié)方差的非對角線值。
估計(jì) Wald 類型的 95% 預(yù)測區(qū)間。繪制 MMSE 預(yù)測和預(yù)測區(qū)間。
hs1 = plsdot([datsdfes; fdDgsategs(2:ednd)],[Y; YsdfMMSEf],'LinseWdsdfidth',2);
dfh2 = gca;
hold on

VAR(?q??+ 1) 表示 MMSE 預(yù)測
將估計(jì)的 VEC(2) 表示為 VAR(3) 模型。
EstsdMdsdfldVAfdR = vafrm(EssdfdtMsdl)
?

?使用 VAR 模型估計(jì) 10 年的 MMSE 預(yù)測?forecast
。提供最新的三行數(shù)據(jù)來初始化預(yù)測。返回預(yù)測和相應(yīng)的多元均方誤差。
[YMMsdSEVAR,YMMsdSEfMasdSEVAR] = foresdfcast(EsstfMdlVdAR,horiddzson,fY0);
估計(jì) Wald 類型的 95% 預(yù)測區(qū)間。繪制 MMSE 預(yù)測和預(yù)測區(qū)間。
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);

確認(rèn)來自 VEC 和 VAR 模型的 MMSE 預(yù)測是相同的。
(YqwMeMSE - YMMSEVweAR)'*(YMMwSE - YMretMSyEVAR) > ertps

模型之間的 MMSE 預(yù)測是相同的。

最受歡迎的見解
1.R語言對S&P500股票指數(shù)進(jìn)行ARIMA + GARCH交易策略
2.R語言改進(jìn)的股票配對交易策略分析SPY—TLT組合和中國股市投資組合
3.R語言時(shí)間序列:ARIMA GARCH模型的交易策略在外匯市場預(yù)測應(yīng)用
4.TMA三均線期指高頻交易策略的R語言實(shí)現(xiàn)
5.r語言多均線量化策略回測比較
6.用R語言實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)預(yù)測股票實(shí)例
7.r語言預(yù)測波動(dòng)率的實(shí)現(xiàn):ARCH模型與HAR-RV模型
8.R語言如何做馬爾科夫轉(zhuǎn)換模型markov switching model
9.matlab使用Copula仿真優(yōu)化市場風(fēng)險(xiǎn)