如果自回归时间序列模型是非线性的,它还需要平稳性吗?

机器算法验证 时间序列 自回归的 非线性 平稳性
2022-02-06 17:33:45

考虑使用循环神经网络进行时间序列预测。与使用线性自回归的 ARMA 和 ARIMA 模型相比,它们基本上实现了一种广义的非线性自回归。

如果我们正在执行非线性自回归,时间序列是否仍然需要静止,我们是否需要像在 ARIMA 模型中那样执行差分?

还是模型的非线性特性使其能够处理非平稳时间序列?


换一种说法:ARMA 和 ARIMA 模型的平稳性要求(均值和方差)是因为这些模型是线性的,还是因为其他原因?

1个回答

如果您的模型的目的是预测和预测,那么简短的回答是肯定的,但平稳性不需要在水平上。

我会解释的。如果您将预测归结为最基本的形式,它将提取不变量。考虑一下:您无法预测正在发生的变化。如果我告诉你明天在每个可以想象的方面都与今天不同,你将无法做出任何预测

只有当您能够将某事从今天扩展到明天时,您才能做出任何类型的预测。我给你举几个例子。

  • 你知道明天平均气温的分布会和今天差不多在这种情况下,您可以将今天的温度作为您对明天的预测,天真的预测x^t+1=xt
  • 你观察到一辆车在 10 英里处以高速行驶v=60英里/小时。在一分钟内,它可能会在 11 英里或 9 英里左右。如果您知道它正在向 11 英里行驶,那么它将在 11 英里左右。鉴于它的速度和方向是恒定的。请注意,这里的位置不是静止的,只有速度是静止的。在这方面,它类似于像 ARIMA(p,1,q) 这样的差异模型或像这样的恒定趋势模型xtvt
  • 你的邻居每周五都喝醉了。他下周五会喝醉吗?是的,只要他不改变自己的行为
  • 等等

在每一种合理预测的情况下,我们首先从过程中提取一些不变的东西,并将其扩展到未来。因此,我的回答是:是的,如果方差和均值是您要从历史扩展到未来的不变量,那么时间序列需要是平稳的。此外,您还希望与回归变量的关系保持稳定。

只需确定模型中的不变量是什么,它是平均水平、变化率还是其他什么。如果您希望您的模型具有任何预测能力,这些事情需要在未来保持不变。

霍尔特温特斯示例

评论中提到了 Holt Winters 过滤器。它是平滑和预测某些类型的季节性序列的流行选择,它可以处理非平稳序列。特别是,它可以处理平均水平随时间线性增长的系列。换句话说,坡度是稳定的。用我的术语来说,斜率是这种方法从系列中提取的不变量之一。让我们看看当坡度不稳定时它是如何失效的。

在这个图中,我展示了具有指数增长和附加季节性的确定性序列。换句话说,斜率随着时间的推移变得越来越陡:

在此处输入图像描述

您可以看到过滤器似乎非常适合数据。拟合线为红色。但是,如果您尝试使用此过滤器进行预测,它会惨遭失败。真线是黑色的,如果在下一个图上符合蓝色置信界限,则为红色:

在此处输入图像描述

通过检查Holt Winters 模型方程很容易看出它失败的原因它从过去提取斜率,并延伸到未来。这在斜率稳定时效果很好,但当它持续增长时,过滤器无法跟上,它落后了一步,效果累积成一个不断增加的预测误差。

代码:

t=1:150
a = 0.04
x=ts(exp(a*t)+sin(t/5)*sin(t/2),deltat = 1/12,start=0)

xt = window(x,0,99/12)
plot(xt)
(m <- HoltWinters(xt))
plot(m)
plot(fitted(m))

xp = window(x,8.33)
p <- predict(m, 50, prediction.interval = TRUE)
plot(m, p)
lines(xp,col="black")

在此示例中,您可以通过简单地获取系列日志来提高过滤器性能。当你对指数增长的序列取对数时,你可以让它的斜率再次稳定,并给这个过滤器一个机会。这是示例:

在此处输入图像描述

代码:

t=1:150
a = 0.1
x=ts(exp(a*t)+sin(t/5)*sin(t/2),deltat = 1/12,start=0)

xt = window(log(x),0,99/12)
plot(xt)
(m <- HoltWinters(xt))
plot(m)
plot(fitted(m))

p <- predict(m, 50, prediction.interval = TRUE)
plot(m, exp(p))

xp = window(x,8.33)
lines(xp,col="black")