这个例子展示了如何根据预测范围内其他响应的当前值来预测响应。为了说明条件预测,该示例模型季度衡量消费者价格指数(CPI)和失业率作为一个VAR(4)模型。
加载Data_USEconModel
数据集。
负载Data_USEconModel
在不同的地块上绘制这两个系列。
图;情节(DataTable.Time DataTable.CPIAUCSL);标题(“消费者价格指数”);ylabel (“指数”);包含(“日期”);
图;情节(DataTable.Time DataTable.UNRATE);标题(“失业率”);ylabel (“百分比”);包含(“日期”);
CPI似乎呈指数级增长。
通过将CPI转化为一系列的增长率来稳定CPI。通过从失业率序列中删除第一个观察值来同步这两个序列。创建包含已转换变量的新数据集。
rcpi = price2ret (DataTable.CPIAUCSL);unrate = DataTable.UNRATE(2:结束);Data = array2timetable([rcpi unrate],“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增长率的路径。假设失业率在未来两年内保持不变。指定整个数据集作为前样本观测值和预测视界内的已知值。
Y =预测(EstMdl 8数据。变量,“。”、YF)
Y =8×2-0.0076 8.5000 -0.0136 8.5000 -0.0009 8.5000 -0.0051 8.5000 -0.0050 8.5000 -0.0007 8.5000 -0.0009 8.5000 - 0.0003 8.5000
Y
是一个8乘2的响应路径阵列。虽然第一列包含有条件的预测,但第二列完全包含最后观察到的失业率。
考虑到未来两年的失业率为8.5,预计CPI增长率将会下降。