如何根据 ACF 和 PACF 选择合适的 ARIMA 模型?

机器算法验证 时间序列 有马 模型选择
2022-04-10 15:09:30

我是 ARIMA 模型的新手,我正在玩 R 试图找到一个好的模型……但到目前为止,我的情节还没有接近看起来像白噪声……

你能给我一些关于这些 ACF 和 PACF 情节的建议吗?

原始时间序列的 ACF 与数据一阶差分的 ACF 对比:

原始时间序列的 ACF 与数据一阶差分的 ACF 的比较

原始时间序列的 PACF 与数据一阶差分的 PACF 相比:

原始时间序列的 PACF 与数据一阶差分的 PACF 的比较

2个回答

视觉效果表明您的数据可能是每小时数据,这意味着根据数据类型可能会产生每日影响。每日效应通常包括星期几效应、每周效应、假日效应等,当然还有可能的异常值/水平变化/时间趋势。你为什么不发布你的数据和它的类型,也许我可以提供进一步的帮助。查看 acf 图(症状)以推断“原因”可能很有用,但很多时候不足以识别有用的模型。当数据具有除非常简单的 ARIMA 之外的固有结构时,依靠 BIC 和 AIC 等简单统计数据可能会令人困惑(几乎总是!)。非常简单的数据经常出现在致力于提出简单模型识别工具的教科书中,但在现实世界中几乎没有。

在 Math 对 BIC 等可行替代方案的有趣请求后编辑:

除了 AUTOBOX(基于我的论文主题),它使用内置的启发式显示分步过程,我可以在这里提供一些顶级指导。有一个免费版本(包括 R 版本),它允许使用数百个教科书数据集而无需任何承诺。这个免费功能非常有教育意义,有助于扩大人们对模型识别可能存在的陷阱和方法的认识。

总之,ARIMA(任何模型!)识别是一个迭代过程,而不是一次性完成。您可以假设没有异常值并形成随后检测异常值的模型的不合时宜的观点表明可能(可能)次优化,因为您的第一个假设已被证明是错误的。现代方法需要一种综合/同时/全局方法,该方法产生一个结合内存 (ARIMA) 和所需虚拟变量的整体模型。给你举个例子。首先识别可能的脉冲/电平变化/本地时间趋势/季节性脉冲,然后从这个暂定模型中获取残差,然后识别 ARIMA 。现在形成一个复合/混合模型并验证/测试误差中的剩余结构,其中可能包括 ARIMA 修改和附加虚拟变量以及对时变参数/和/或时变/相关误差方差的可能处理。其次,可以使用反自相关过程http://www.eco.uc3m.es/~jgonzalo/teaching/timeseriesMA/IdentificationWei.pdf提供一个合理的初始 ARIMA 模型,并从那里进行必要的扩充。另一个非常有用的方法是 EACF 或 Extended ACF关于 ARMA 时间序列,eacf(扩展自相关函数)到底是什么?. 前面提到的 AUTOBOX 使用这两者的混合体来初步识别模型,然后再迭代到具有统计意义且简约的解决方案。

因此模型识别是一个迭代的、自检的过程。

由于该系列的 ACF 随着滞后的增加而接近于零,因此积分阶必须为 0,即您有 ARIMA(p,0,q)。(在这里我可能会有点谨慎,因为您可能有积分顺序,例如,以防您对远程依赖过滤器感兴趣)。d12<d<0

另一方面,由于 ACF 在零以下和零以上的波动,您的数据中有一些反对意见。PACF 在将近 30 次滞后后接近于零,因此 q 可能低于 30。但要说一些关于 p 的事情并不容易。您是否尝试过使用像 BIC 这样的信息标准?

您能否分享您的数据来源或谈谈它们代表什么?