主要内容

模拟VAR模型条件响应

这个例子展示了当一些响应值已知时,如何在预测范围内生成模拟响应。为了说明条件模拟的生成,示例模型季度衡量消费者价格指数(CPI)和失业率作为一个VAR(4)模型。

加载Data_USEconModel数据集。

负载Data_USEconModel

在单独的情节上绘制两个系列。

图;情节(DataTable.Time DataTable.CPIAUCSL);标题('消费者价格指数');ylabel (“指数”);包含(“日期”);

图中包含一个轴对象。标题为消费者价格指数的轴对象包含一个类型为line的对象。

图;情节(DataTable.Time DataTable.UNRATE);标题(“失业率”);ylabel (“百分比”);包含(“日期”);

图中包含一个轴对象。标题为失业率的轴对象包含一个类型为line的对象。

CPI似乎以指数增长。

通过将CPI转化为一系列的增长率来稳定CPI。通过从失业率序列中删除第一个观察值来同步这两个序列。创建一个包含已转换变量的新数据集,并且不要包含任何包含至少一个缺失观测的行。

RCPI = Price2RET(DataTable.cpiaucsl);Unverate = DataTable.unrate(2:结束);数据= Array2Timetable([RCPI Unvate],'rowtimes',DataTable.time(2:结束),...“VariableNames”,{“rcpi”“unrate”});

使用简写语法创建默认VAR(4)模型。

Mdl = varm(2、4)
描述:“2维VAR(4)模型”SeriesNames:“Y1”“Y2”NumSeries: 2 P: 4 Constant: [2×1 vector of NaNs] AR: {2×2 matrices of NaNs} at时滞[1 2 3…趋势:[2×1零向量]Beta: [2×0矩阵]协方差:[2×2矩阵的nan]

Mdl是一个varm模型对象。它可以作为模型估计的模板。

使模型与数据相符。

Data.Variables EstMdl =估计(Mdl)
EstMdl = varm with properties:描述:"AR- stationary 2d VAR(4) Model" SeriesNames: "Y1" "Y2" NumSeries: 2 P: 4 Constant: [0.00171639 0.316255]' AR: {2×2 matrices} at delay[1 2 3…趋势:[2×1零向量]Beta: [2×0矩阵]协方差:[2×2矩阵]

EstMdl是一个varm模型对象。EstMdl结构上是一样的吗Mdl,但所有参数都是已知的。

假设经济学家预计失业率与未来两年的最后一个观察率保持相同。创建一个8×2矩阵,第一列包含价值观和第二列包含最后观察到的失业率。

YF = [nan(8,1) repmat(Data.unrate(end),8,1)]; / /数据

利用估计模型,模拟未来两年季度CPI增长率的1000条路径。假设失业率在未来两年内保持不变。指定整个数据集作为前样本观测值和预测视界内的已知值。

numpaths = 1000;rng (1);重复性的%Y =模拟(EstMdl 8“Y0”、数据。变量,'numpaths',numpaths,“。”,yf);

Y是一个8×2×1000次响应路径。虽然每页上的第一列包含模拟值,但第二列完全由最后观察到的失业率组成。

估计预测地平线中每个点的平均CPI增长率。

MCForecast =意味着(Y, 3)
MCForecast =8×2-0.0075 8.5000 -0.0134 8.5000 -0.0010 8.5000 -0.0050 8.5000 -0.0052 8.5000 -0.0022 8.5000 -0.0032 8.5000 -0.0026 8.5000 -0.0026 8.5000

考虑到未来两年的失业率为8.5,预计CPI增长率将会下降。

另请参阅

对象

功能

相关话题