主要内容

指定预测前样本和预测周期数据来预测ARIMAX模型

这个示例展示了如何将时间轴划分为预采样、估计和预测周期,并展示了如何提供适当数量的观测值来初始化一个用于估计和预测的动态模型。

考虑估计和预测一个包含自回归和移动平均项的动态模型,以及外生预测变量的回归组件(例如,ARMAX模型)。为了估计和预测模型,估计必须有足够的前样本响应来初始化自回归项,必须有足够的创新来初始化移动平均项。如果您没有指定预样例响应,则估计返回所需的数量,并将所需的前样例创新设置为0。

同样,为了预测拟合模型的反应,预测必须有足够的反应样本和创新。虽然您必须指定前样本响应,但预测集所需的前样本创新为0。此外,预测期的回归分量需要预测或未来的预测数据;没有未来预测数据,预测当模型生成预测时,将回归组件从模型中删除。

虽然默认行为估计预测对于大多数工作流程来说都是合理的,一个好的实践是通过将样本的时间轴划分为样本前、估计和预测周期,并提供适当数量的观察来初始化模型。

考虑一个ARMAX(1,2)模型,该模型预测当前美国实际国民生产总值(GNPR),以现时工业生产指数(新闻学会)、就业(E)及实际工资(或者说是)作为外生变量。将样本的时间线划分为预样本期、估计期和预测期。将模型拟合到估计样本,并使用样本前的响应初始化自回归项。然后,预测GNPR速率从拟合模型。当你预测:

  • 在估计周期结束时指定响应作为初始化自回归项的预样本

  • 在估计周期结束时指定预测器数据作为初始化移动平均分量的前样例。预测从指定的前样本反应和预测数据推断所需的创新。

  • 通过指定未来预测数据,包括预测变量对预测响应的影响。

加载Nelson-Plosser数据集。

负载Data_NelsonPlosser

关于数据集的详细信息,显示描述

数据表包含年度度量,但数据集与时间基准无关。要将时间基础应用于数据,请进行转换数据表一个时间表。

DataTable = table2timetable(数据表,“RowTimes”datetime(数据表。日期,“格式”“yyyy”));

数据表,有些样本的开始日期开始于不同的年份。数据表通过前置足够的导序同步所有系列使所有级数具有相同数目的元素。

如果缺少至少一个观测数据,Econometrics Toolbox™ARIMA模型软件将从响应和预测数据中删除所有行(时间点)。这种默认行为会使时间轴分区复杂化。避免默认行为的一种方法是自己删除包含至少一个缺失值的所有行。

删除所有主要从数据中删除。

varnames = [“GNPR”“他们”“E”“福”];台= rmmissing(数据表(:,varnames));

通过将响应和预测变量转换为返回来稳定它们。

StblTbl = varfun (@price2ret(资源);StblTbl.Properties.VariableNames = varnames;T =大小(StblTbl, 1)总样本量
T = 61
GNPR = StblTbl.GNPR;X = StblTbl {: varnames(2:结束)};

转换到返回值将样本量减少1。

为了对数据拟合一个ARMAX(1,2)模型,估计必须初始化第一个响应的条件均值 y 1 通过使用前面的响应 y 0 以及之前的两个创新 ε 0 ε - 1 .如果您不指定前样本值,估计展望获得 y 0 它将样本创新设为0,这是他们的期望值。

为预样本、估计和预测样本创建指标向量。考虑一个5年的预测范围。

idxpresample = 1;idxestimate = 2:56;idxforecast = 57: T;

对数据拟合一个ARMAX(1,2)模型。指定样本前响应数据和估计样本外生数据。因为没有模型来推导样品前的创新,允许估计设置所需的样品创新0

Mdl = arima (1 0 2);y0 = GNPR (idxpresample);%预样本响应数据进行估计是的= GNPR (idxestimate);%估计响应数据X = X (idxestimate:);%估计样本外生数据Mdl =估计(Mdl,是的,“Y0”y0,“X”, x,“显示”“关闭”);

为了将ARMAX(1,2)模型预测到预测期,预测必须初始化第一个预测 y 57 通过使用前面的响应 y 56 以及前两项创新 ε 56 ε 55 .但是,如果您提供足够的响应和外生数据来初始化模型,那么预测为你推断创新。为了预测一个ARMAX(1,2)模型,预测需要在预测期之前来自外生数据的三个响应和两个观测。当你为预测提供样本数据时,预测只使用所需的最新观测结果。然而,本例仅指定必要的样本前观察量。

将拟合的ARMAX(1,2)模型预测到预测期。只在估计样本的末尾指定必要的观测值作为前样本数据。指定预测期外生数据。

Y0f = yes ((end - 2):end); / /结束%预采样响应数据进行预测X0f = XEst(((end - 1):end,:));%预取样外生数据进行预测XF = X (idxforecast:);%模型回归组件的预测期外生数据yf =预测(Mdl 5 y0f,“X0”X0f,“XF”、XF);

yf预测响应的5乘1向量是否表示估计样本的延续是的进入预测期。

绘制后半部分的响应数据和预测。

年=年(StblTbl.Time(30:结束));图;情节(年StblTbl.GNPR(30:结束),“b”“线宽”2);持有情节(年(end-4:结束),yf,“r——”“线宽”2);甘氨胆酸h =;Px = yrs([end - 4 end end end - 4]); / /结束py = h.YLim([1 1 2 2]);HP = patch(px,py,[0.9 0.9 0.9]);uistack(惠普、“底”);轴标题(“真正的国民生产总值比率”);传奇([“预测期”“观察”“预测”])

图中包含一个轴对象。标题为Real GNP Rate的轴对象包含3个类型为patch, line的对象。这些对象代表预测期,观测期,预测期。

另请参阅

对象

功能

相关的话题