预测时间序列:平稳与非平稳

机器算法验证 时间序列 预测 平稳性
2022-04-04 10:46:10

假设我有一个非平稳时间序列,并且可以使用一阶差分将该序列转换为平稳序列。如果我想使用 ARIMA 预测这个序列,那么使用原始非平稳序列进行预测和使用现在平稳差分序列进行预测之间有什么区别?也就是说,我可以期望平稳序列的预测比非平稳序列的预测更准确吗?

我知道使用固定序列进行预测的一个优势将具有产生预测间隔的优势(这取决于固定序列的假设)。

2个回答

[W]使用原始非平稳序列进行预测与使用现在平稳差分序列进行预测之间有什么区别?

(在这里,我故意省略了可以使用一阶差分将序列转换为平稳序列的条件,并且 OP 尤其对使用 ARIMA 进行预测感兴趣。)

非平稳数据的问题在于,对于大多数时间序列模型,在使用非平稳数据时违反了模型假设。这导致估计器不再具有良好的属性,例如渐近正态性,有时甚至是一致性。因此,如果您将需要平稳序列的模型应用于非平稳序列,您可能会得到对模型参数的较差估计,从而导致较差的预测。

(现在让我重新添加资格。)

使其平稳并且可以通过 ARIMA 模型相当好地近似的积分级数,可以采用三种方法:xtΔxt

  1. 强制平稳并估计原始序列 ) 模型。p,0,qxt
  2. 强制或允许进行第一次差分,以便最终得到原始数据 ) 模型。p,1,qxt
  3. 手动对序列进行差分,然后对差分序列 ) 模型。p,0,qΔxt

选项 1. 是唯一一个明显自找麻烦的选项,因为它在存在非平稳数据的情况下强制平稳。选项 2. 和 3. 基本相同,区别在于您是在模型外部手动区分还是作为模型内的初始步骤。xt

[C]我是否期望平稳序列的预测比非平稳序列的预测更准确?

如果您想到一个集成级数及其一阶差分平稳版本时会有更高的准确度,但这有关系吗?认为通过关注而不是可以获得更准确的预测可能会产生误导。当感兴趣的基本过程保持不变时,考虑准确性的提高可能是最自然的,例如,由于对相同过程使用更好的近似而提高了准确性。同时,如果您更改基础对象(从变为xtΔxtΔxtΔxtxtxtΔxt),在以下意义上,增益并不是真正的增益。这有点像从 100m 和 10m 射击目标。从 10m 开始你会更准确,但这不是很明显和无关紧要吗?

如果您想到两个不相关的系列,其中第一个是积分而第二个是静止的,您可能会期望从长远来看,您将获得更高的预测精度对于在短期内,如果的方差相比较小,这可能不会成立x1,tΔx2,tΔx2,tΔx1,tΔx2,t

我知道使用固定序列进行预测的一个优势将具有产生预测间隔的优势(这取决于固定序列的假设)。

实际上,无论序列是集成的还是平稳的,您都可以获得预测区间。如果您使用其一阶差分对集成时间序列进行建模,您将获得预测区间并在形成集成序列的预测区间时将它们累积添加。这就是为什么综合序列的预测区间线性扩展而平稳序列的预测区间比线性扩展慢(可以在时间序列教科书中找到插图)。

在你的情况下没有区别。ARIMA(p,1,q) 与差分序列上的 ARMA(p,q) 相同。ARIMA 可以模拟非平稳系列,ARMA 不能。因此,对于 ARMA,您在将系列输入之前先进行差分。

查看如何在MATLAB 网站上定义 ARIMA(p,D,q) 模型,例如: 其中是差分算子 - 滞后算子函数。

ϕ(L)(1L)Dyt=c+θ(L)εt,
LLDyt=ytDϕ(L),θ(L)

下面是 ARIMA(1,0,1) 遵循这个定义的样子:

ytϕ1yt1=c+εt+θ1εt1

和 ARIMA(1,1,1):

(ytyt1)ϕ1(yt1yt2)=c+εt+θ1εt1

上的 ARMA(1,1) 相同当您知道,即差分运算符时,更容易看到。Δyt=ytyt1(1L)yt=Δyt

如果您想知道为什么 ARIMA 可以对非平稳序列建模,那么在最简单的 ARIMA(0,1,0) 上最容易看到:看一下期望值: 序列的期望值是非平稳的,它有一个时间趋势,所以你可以调用虽然它是趋势平稳的。yt=yt1+c+εt

E[yt]=E[yt1]+c=e[y0]+ct,