关于使用递归神经网络进行时间序列预测的思考。与使用线性自回归的ARMA和ARIMA模型相比,它们基本上实现了一种广义的非线性自回归。
如果我们正在执行非线性自回归,那么时间序列是否仍需保持平稳,是否需要以与ARIMA模型相同的方式进行微分?
还是模型的非线性特征使其具有处理非平稳时间序列的能力?
换句话说,ARMA和ARIMA模型的平稳性要求(均值和方差)是由于这些模型是线性的,还是因为其他原因?
关于使用递归神经网络进行时间序列预测的思考。与使用线性自回归的ARMA和ARIMA模型相比,它们基本上实现了一种广义的非线性自回归。
如果我们正在执行非线性自回归,那么时间序列是否仍需保持平稳,是否需要以与ARIMA模型相同的方式进行微分?
还是模型的非线性特征使其具有处理非平稳时间序列的能力?
换句话说,ARMA和ARIMA模型的平稳性要求(均值和方差)是由于这些模型是线性的,还是因为其他原因?
Answers:
如果模型的目的是进行预测和预测,则简短的回答是“是”,但平稳性不必处于水平。
我会解释。如果将预测归结为最基本的形式,它将是不变式的提取。考虑一下:您无法预测正在发生的变化。如果我告诉大家明天在每个可以想到的方面都会与今天不同,您将无法做出任何预测。
只有当您能够从今天扩展到明天时,您才能做出任何形式的预测。我举几个例子。
在每种合理的预测情况下,我们首先从流程中提取出恒定的内容,并将其扩展到未来。因此,我的回答是:是的,如果方差和均值是您要从历史延伸到未来的不变量,则时间序列必须是固定的。此外,您还希望与回归变量的关系也稳定。
只需确定模型中的不变性是平均水平,变化率还是其他。如果您希望模型具有任何预测能力,则这些事情将来需要保持不变。
评论中提到了Holt Winters过滤器。它是平滑和预测某些季节性序列的流行选择,并且可以处理非平稳序列。特别是,它可以处理平均水平随时间线性增长的序列。换句话说,坡度是稳定的。用我的术语来说,斜率是这种方法从系列中提取的不变式之一。让我们看看当斜坡不稳定时它如何失效。
在此图中,我显示了具有指数增长和加性季节性的确定性序列。换句话说,随着时间的推移,坡度会越来越陡峭:
您可以看到过滤器看起来如何很好地适合数据。拟合线为红色。但是,如果尝试使用此过滤器进行预测,那么它将失败。真实线是黑色,如果在下一个图上符合蓝色置信度范围,则红色为实线:
通过检查Holt Winters模型方程式可以很容易地看出失败的原因。它从过去提取坡度,并延伸到未来。当斜率稳定时,此方法效果很好,但是当其持续增长时,过滤器就无法跟上,仅落后一步,结果累积为不断增加的预测误差。
R代码:
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")
在此示例中,您可以通过简单地记录序列来提高过滤器性能。当取指数级数增长的对数时,可以再次使其斜率稳定,并给此过滤器一个机会。例子如下:
R代码:
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")