r - 解释 SARIMA 模型的 ACF 和 PACF 图

标签 r plot time-series

我是时间序列新手,使用了 Rob Hyndman 的 website 的每月臭氧浓度数据做一些预测。

在进行对数变换并按滞后 1 和 12 进行差分以分别消除趋势和季节性后,我绘制了 [在此图像中][2] 所示的 ACF 和 PACF。我走在正确的轨道上吗?我如何将其解释为 SARIMA?

PACF 图中似乎每 11 个滞后就有一个模式,这让我认为我应该做更多的差分(在 11 个滞后),但这样做会给我一个更糟糕的情节。 我非常感谢您的帮助!

编辑: 我摆脱了滞后 1 处的差异,只使用滞后 12,并且 this这是我通过 ACF 和 PACF 得到的。

从那里,我推断出:SARIMA(1,0,1)x(1,1,1) (AIC: 520.098) 或 SARIMA(1,0,1)x(2,1,1)(AIC:521.250) 会很合适,但 auto.arima 通常给我 (3,1,1)x(2,0,0) (AIC: 560.7) 和 (1,1,1)x(2,0,0) ( AIC: 558.09) 没有逐步和近似。

我对使用哪个模型感到困惑,但基于最低的 AIC,SAR(1,0,1)x(1,1,1) 会是最好的吗?另外,令我担心的是,没有一个模型通过 Ljung-Box 测试。有什么办法可以解决这个问题吗?

最佳答案

手动选择在预测数据集时表现良好的模型阶数非常困难。这就是 Rob 在他的 R 预测包中构建“auto.arima”函数的原因,以找出基于某些指标可能表现最佳的模型。

当您看到 pacf 图具有显着负滞后时,通常意味着您的数据差异过大。尝试删除 1 阶差异并保留 12 阶差异。然后继续做出你最好的猜测。

我建议尝试他的 auto.arima 函数并向其传递一个频率 = 12 的时间序列对象。他在这里对季节性 arima 模型有很好的描述:

https://www.otexts.org/fpp/8/9

如果您想更深入地了解手动选择 SARIMA 模型订单,这是一本不错的读物:

https://onlinecourses.science.psu.edu/stat510/node/67

回应您的编辑: 我认为如果您澄清您的目标,这将对这篇文章有所帮助。您想实现以下哪一项目标?

  1. 找到残差满足 Ljung Box Test 的模型
  2. 产生最准确的样本预测
  3. 手动选择滞后阶数,以便 ACF 和 PACF 图显示不存在明显的滞后。

在我看来,#2 是最受欢迎的目标,所以我假设这就是您的目标。根据我的经验,#3 在样本中产生的结果很差。关于#1,我通常不关心残差中剩余的相关性。我们知道我们没有这个时间序列的真实模型,所以我认为没有任何理由期望一个在样本外表现良好的近似模型不会在残差中留下一些可能更复杂的东西,或者非线性等

为了向您提供另一个 SARIMA 结果,我通过我开发的一些代码运行了这些数据,发现以下方程在交叉验证期间产生的误差最小。

Final model is: 
SARIMA [0,1,1] [1,1,1]12 with a constant using the log normal of the time-series.

The errors in the cross validation period are:
MAPE = 16%
MAE = 0.46
RSQR = 74%

Results

这是残差的偏自相关图,供您引用。
PACF Plot for Residuals

据我了解,这在方法上与基于 AICc 选择方程大致相似,但最终是不同的方法。无论如何,如果您的目标超出样本准确性,我建议根据样本外准确性与样本内拟合、测试或绘图来评估方程。

关于r - 解释 SARIMA 模型的 ACF 和 PACF 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45316978/

相关文章:

r - stat_qq 设置组时去掉值

r - 在 R Markdown 中合并表格

python - matplotlib:如果我设置无花果高度,x 传说被切断

Python pandas 按日期列表选择行

r - 在 R 中将多元 XTS 转换为 TS

sql-server - 棘手的 : SQL Server-side aggregation of time-series data for charting

R - 使用 ggplot2 对函数中的条形图重新排序

r - 使用 dplyr 改变多个逻辑列,将它们组合在一个字符列中而不进行汇总

r - 传递参数列表以在 R 中绘图

r - 在 r 中的 for 循环中可视化和修改大量绘图