美文网首页
时间序列笔记-auto.arima()自动定阶

时间序列笔记-auto.arima()自动定阶

作者: 新云旧雨 | 来源:发表于2019-08-19 16:58 被阅读0次

笔记说明

在datacamp网站上学习“Time Series with R ”track
“Forecasting Using R”课程 做的对应笔记。
学识有限,错误难免,还请不吝赐教。
学习的课程为“Forecasting Using R”,主要用forecast包。
课程参考教材Forecasting: Principles and Practice
课程中数据可在fpp2包得到

本次笔记可以作为之前ARIMA模型笔记的补充:时间序列笔记-ARIMA模型

auto.arima()函数

在之前学习ARIMA模型的笔记中我们通过查看序列的ACF/PACF图来帮助定阶。其实实际应用中往往不是那么容易就能通过ACF/PACF图来识别出ARIMA模型的阶数。forecast包中的auto.arima()可以自动尝试不同的阶数组合并挑选出可能的最优模型。可以帮助我们进行定阶。
auto.arima(y, ic = c("aicc", "aic", "bic"), stepwise = TRUE, trace = FALSE, allowdrift = TRUE, lambda = NULL)
最简单的情况下,只需要提供训练数据y一个参数就可以运行。这里我列了一些其他的参数:

  • ic 选择最优模型的判断标准 默认是AICc
  • stepwise 默认为TRUE,采用“stepwise selection”会使运行更快,但有可能漏掉实际上表现更好的阶数组合
  • trace 是否报告尝试过的ARIMA模型结果
  • allowdrift 模型是否考虑漂移项(drift)即模型表达式中的常数项
  • lambda 指定建模前对原始序列做Box-Cox转换的lambda值,若lambda="auto" 则利用BoxCox.lambda函数自动确定lambda值,若为NULL则不进行转换

更多参数设定可参看文档:https://www.rdocumentation.org/packages/forecast/versions/8.8/topics/auto.arima

实例

使用的数据h02 包含澳大利亚每月皮质激素类药物的销售量

autoplot(h02)

原数据有方差逐渐增大的趋势,尝试用log转换使方差稳定:

h02 %>% log() %>% autoplot()

下面用auto.arima()自动定阶、建立模型,进行残差分析并生成2年的预测值
fit <- auto.arima(h02, lambda=0)

summary(fit)

checkresiduals(fit)

# Plot 2-year forecasts
fit %>% forecast(h=24) %>% autoplot()

函数自动定阶选择的是阶数为(2,1,1)(0,1,2)12 的季节性ARIMA模型。summary()报告的模型信息这里省略
残差分析图:


预测值:

相关文章

网友评论

      本文标题:时间序列笔记-auto.arima()自动定阶

      本文链接:https://www.haomeiwen.com/subject/mmxesctx.html