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

此示例展示了如何将时间线划分为预采样、估计和预测时间段,并展示了如何提供适当数量的观察值来初始化动态模型以进行估计和预测。

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

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

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

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

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

  • 在估计期结束时指定预测数据作为初始化移动平均组件的预样本。预测从指定的预采样响应和预测数据推断所需的创新。

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

加载Nelson-Plosser数据集。

负载Data_NelsonPlosser

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

数据表包含年度测量值,但数据集不确定时间基数。若要将时间基准应用于数据,请进行转换数据表一个时间表。

DataTable = table2timetable(数据表,“RowTimes”datetime (DataTable.Dates“格式”,“yyyy”));

在系列中数据表,一些样本的开始日期在不同的年份。数据表通过前置足够的前导来同步所有的系列使得所有的级数都有相同数量的元素。

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

删除所有主要s从数据通过应用列表删除。

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

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

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

转换为返回将减少一个样本大小。

为了使ARMAX(1,2)模型适合数据,估计必须初始化第一个响应的条件平均值吗 y 1 通过使用前面的响应 y 0 以及之前的两个创新 ε 0 ε - 1 。如果不指定预采样值,估计展望获得 y 0 它将presample的创新设置为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 = yest((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(惠普、“底”);轴标题(“真正的国民生产总值比率”);传奇([“预测期”“观察”“预测”])

另请参阅

||

相关的话题