【问题标题】:A fast solution to obtain the best ARIMA model in R (function `auto.arima`)在 R 中获得最佳 ARIMA 模型的快速解决方案(函数 `auto.arima`)
【发布时间】:2019-06-21 13:52:53
【问题描述】:

我有一个由 2775 个元素组成的数据系列:

mean(series)
[1] 21.24862
length(series)
[1] 2775
max(series)
[1] 81.22
min(series)
[1] 9.192

我想通过使用包auto.arima的函数forecast获得最佳ARIMA模型:

library(forecast)
fit=auto.arima(Netherlands,stepwise=F,approximation = F)

但是我遇到了一个大问题:RStudio 运行了一个半小时没有结果。 (我开发了一个 R 代码来执行这些计算,在配备 2.80GHz Intel(R) Core(TM) i7 CPU 和 16.0 GB RAM 的 Windows 机器上使用。)我怀疑这是由于时间序列的长度。解决方案可能是并行化? (但我不知道如何应用它)。

无论如何,建议加快此代码?谢谢!

【问题讨论】:

    标签: performance parallel-processing arima


    【解决方案1】:

    预测包的许多功能都考虑到了并行处理。 auto.arima() 函数的参数之一是“并行”。

    根据包文档,“如果 [parallel = ] TRUE 并且 stepwise = FALSE,那么规范搜索是并行完成的。这可以显着提高多核机器的速度。”

    如果parallel = TRUE,它会自动选择使用多少'core'(对于笔记本电脑或台式机,通常是核心数* 2。例如,我有4个核心,每个核心有2个处理器= 8 个“核心”)。如果要手动设置核心数,也可以使用参数 num.cores。

    我建议您查看 Hyndman 撰写的关于该软件包的 e-book。它就像一本时间序列预测圣经。

    【讨论】:

    • 您在parallel 上关于auto.arima() 的陈述仅在纸面上是正确的,但在实践中并不正确。每当我使用parallel = TRUEstepwise = FALSE 时,我使用system.time()[[3]] 测量所需的时间会更长
    猜你喜欢
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    相关资源
    最近更新 更多