快速构建具有参数组合的模型

Build a model with parameters combinations in fast way

我正在尝试使用一组参数在 R 中构建 ARIMA 模型。 arima函数的签名是:

arima(x,
      order=(p, d, q),
      seasonal=list(order=(P, D, Q), period=S)
)

我正在试验参数 p, q, P, Q(假设 dD 固定为 1)。

假设每个参数都是一个向量:

p = c(1, 2, 3)
P = c(1, 2, 3)
q = c(2, 3, 4)
Q = c(2, 3, 4)

如何使用参数组合构建 ARIMA 模型?我知道嵌套循环是最直观的方法,但我想还有更多 R 风格的方法。

您可以将所有参数放入一个数据结构中

params<-data.frame(p,P,q,Q,d=1,D=1,S=4)

然后就可以使用lapply遍历行,with在每一行的环境中执行。

lapply(1:nrow(params),function(i) with(params[i,],
  arima(x,order=c(p, d, q),seasonal=list(order=c(P, D, Q), period=S))))

如果您指的是 p,P,q,Q 的所有可能组合,则将参数设置为 expand.grid(p=p,P=P,q=q,Q=Q)。但是,请参阅 forecast 中的 auto.arima 了解逐步方法。

我强烈建议查看 forecast 包,尤其是 auto.arima 函数。真的很棒。包的作者甚至有一本教科书,您可以购买或 read online.

另外,我要补充一点,您 运行 使用@A 会遇到麻烦。 Webb 方法 – 从编程的角度来看,这并不是说它不好,但 arima 会进行检查以确保所提出的模型在统计上是稳定的。因此,您要么必须 edit(arima) 删除该行,要么提前进行测试以确保您不建议使用非固定参数集,或者将整个内容包装在 tryCatch 中.这些都是我自己做的。最简单的方法最终是利用已经投入 auto.arima.

的辛勤工作