用蒙特卡罗模拟预测VAR模型
这个例子展示了如何使用蒙特卡罗模拟via模拟
来预测VAR模型。
模拟
使您能够根据您的模型生成时间序列的模拟。如果您有一个值得信赖的VAR模型对象,您可以使用这些模拟作为样本预测。
模拟
要求:
一个模型(
EstMdl
在接下来的内容中)预测的周期数(
numobs
在接下来的内容中)
模拟
可以有选择地将:
外生数据系列
预采样时间序列(
Y (end-3:,)
在接下来的内容中)条件模拟的未来样本响应
要模拟的实现或路径的数量(
2000
在接下来的内容中)
加载Data_USEconModel
数据集。这个例子使用了两个时间序列:实际GDP的对数和实际3个月国库券利率,两者都近似稳定。为了说明,VAR(4)模型描述了时间序列。
负载Data_USEconModelDEF = log(datatitable . cpiaucsl);GDP = log(datatitable .GDP);rGDP = diff(GDP - DEF);%实际GDP是GDP -通缩TB3 = 0.01* datatitable . tb3ms;dDEF = 4*diff(DEF);%比例rTB3 = TB3(2:end) - dDEF;实际利率下降Y = [rGDP,rTB3];
拟合VAR(4)模型规范。
Mdl = varm(2,4);Mdl。SeriesNames = {“转化后的实际GDP”,“转换后的3个月国债实际利率”};EstMdl =估计(Mdl,Y);
确定预测范围。
Numobs = 21;FDates = dateshift(datatitable . time (end),“结束”,“季”1: numobs);
模拟模型numobs
并生成2000条路径。从数据的末尾指定预样本观测值。
rng (1);%的再现性Ysim =模拟(EstMdl, nummobs,“Y0”Y (end-3:最终,),“NumPaths”, 2000);
计算模拟序列的均值和标准差:
Ymean = mean(Ysim,3);计算平均值Ystd = std(Ysim,0,3);计算std偏差
绘制模拟序列的均值+/- 1个标准差:
图;次要情节(2,1,1)情节(DataTimeTable.Time (end-10:结束),Y (end-10:结束,1),“k”) (“上”)情节([DataTimeTable.Time(结束)FDates], [Y(结束,1);Ymean(: 1))、“r”)情节([DataTimeTable.Time(结束)FDates], [Y(结束,1);Ymean (: 1)] + [0; Ystd(: 1)]。“b”)情节([DataTimeTable.Time(结束)FDates], [Y(结束,1);Ymean (: 1)] - [0; Ystd(: 1)]。“b”)标题(“转换后的实际GDP”) subplot(2,1,2) plot(datatitable . time (end-10:end),Y(end-10:end,2),“k”) (“上”)情节([DataTimeTable.Time(结束)FDates], [Y (, 2); Ymean (:, 2)),“r”)情节([DataTimeTable.Time(结束)FDates], [Y (, 2); Ymean (:, 2)] + [0; Ystd (:, 2)),“b”)情节([DataTimeTable.Time(结束)FDates], [Y (, 2); Ymean (:, 2)] - [0; Ystd (:, 2)),“b”)标题(“转换后的3个月国债实际利率”)