主要内容

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

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

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

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

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

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

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

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

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

加载Nelson-Plosser数据集。

负载数据采集器

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

数据表包含年度测量值,但数据集与时基无关。若要将时基应用于数据,请转换数据表根据时间表。

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

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

计量经济学工具箱™ 如果至少缺少一个观测值,ARIMA模型软件将从响应和预测数据中删除所有行(时间点)。此默认行为会使时间轴分区复杂化。避免默认行为的一种方法是删除包含至少一个缺少值的所有行。

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

varnames = [“GNPR”“IPI”“E”“WR”];Tbl=rmmissing(DataTable(:,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”,y0est,“X”,XEst,“显示”“关”);

为了将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向量是否表示估计样本的延续是的进入预测期。

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

年=年(标准时间(30:end));图形地块(年、标准地块GNPR(30:end),“b”“线宽”,2);保持在…上绘图(yrs(结束-4:end),yf,“r——”“线宽”,2); h=gca;px=年([end-4 end-4]);py=h.YLim([1 2]);hp=贴片(px,py,[0.9 0.9 0.9]);尤斯塔克(惠普),“底”);轴牢固的头衔(“实际国民生产总值率”);传奇([“预测期”“观察到”“预测”])

图中包含一个Axis对象。标题为Real GNP Rate的Axis对象包含3个patch、line类型的对象。这些对象表示预测期、观察期和预测期。

另请参阅

对象

功能

相关话题