我是否必须将季节性影响和趋势添加回 ARIMA 预测?

机器算法验证 r 时间序列 有马 季节性 趋势
2022-03-24 19:36:07

我是时间序列分析的新手。ARIMA用来预测我的每月数据。很抱歉我不能在这里发布我的数据,例如,您可以转储数据以供使用。

auto.arima()用来建立我的模型和forecast预测。这两个函数都是从forecast库中加载的。据我了解,在建立模型之前,我们必须从数据中去除趋势和季节性影响,对吧?所以,我的问题是:我们是否必须将它们添加回预测值?如果我们这样做,那怎么做?或者预测值已经计入趋势和季节?

你能给我看一个关于这个情节的例子吗?非常感谢你的帮助。

编辑

我在这篇文章中添加了一些情节。

我的资料

这是我的数据的样子

分解

然后,我分解它。从这张图中,我可以看到它具有季节性效应,没有趋势,剩余量很大。不好吗,剩下的?

然后,我使用函数去除季节性影响seasadj(),将调整后的数据放入 中auto.arima(),并进行预测。然后,这就是我得到的:

使用调整后的数据进行预测

阅读您的答案后,我尝试将原始数据放入 中auto.arima(),并得到以下预测:

使用原始数据进行预测

那么,一切都好吗?我做错什么了吗?而且我认为我应该采用第二个预测,这样我就不必重新考虑季节性影响?我对吗?

1个回答
  1. 不,您不需要拟合 ARIMA 模型之前移除趋势和/或季节性。

    这些模型可以自己处理某些类型的趋势和某些类型的季节性,或者通过包含外部回归器(xreg参数,您可以包含更复杂的相关影响,如移动假期、非多项式趋势、趋势中断等) .

    包括这些回归量在直观上类似于“首先去除趋势和季节性,然后是 ARIMA”(带 ARIMA 误差的回归模型),但在一个拟合步骤中就可以有效地完成。

  2. 是的,如果您在拟合 ARIMA 模型之前删除了趋势和季节性,则需要“重新添加”以获取原始序列的预测;也就是说,您需要对趋势和季节性进行预测,以添加回您对其余部分的预测在某些情况下,季节性的“预测”是准确的(例如,移动假期的未来日期),这使得它更容易。

    如果您通过某些未定义这些组件动态的过程(例如用于季节性调整的 X11 程序)删除了趋势或季节性,则没有规范的方法可以做到这一点;您需要估计一个新模型来预测这些组件。

编辑:这是一个经典系列(AirPassengers)的简单 R 示例,该系列具有趋势和季节性,可以通过标准(季节性)ARIMA 模型合理地捕捉到,无需额外的回归器:

library(forecast)

mod <- auto.arima(AirPassengers)
fc <- forecast(mod, h=12)

plot(fc)

预报