快速构建具有参数组合的模型
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
(假设 d
和 D
固定为 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
.
的辛勤工作
我正在尝试使用一组参数在 R 中构建 ARIMA 模型。 arima
函数的签名是:
arima(x,
order=(p, d, q),
seasonal=list(order=(P, D, Q), period=S)
)
我正在试验参数 p, q, P, Q
(假设 d
和 D
固定为 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
.