指定季节性ARIMA

3

我遇到了一些forecast::Arima语法问题。如果我知道季节性ARIMA模型在统计上是可行的,因为它是auto.arima函数的结果,那么我该如何修改下面的Arima函数,以使其具有与auto.arima结果相同的顺序:

library(forecast)

set.seed(1)
y <- sin((1:40)) * 10 + 20 + rnorm(40, 0, 2)
my_ts <- ts(y, start = c(2000, 1), freq = 12)

fit_auto <- auto.arima(my_ts, max.order = 2)
plot(forecast(fit_auto, h = 24))
# Arima(0,0,1)(1,0,0) with non-zero mean

fit_arima <- Arima(my_ts,
                   order = c(0, 0, 1),
                   seasonal = list(c(1, 0, 0)))
#Error in if ((order[2] + seasonal$order[2]) > 1 & include.drift) { : 
#  argument is of length zero

感谢您并致以良好的问候。
1个回答

4
seasonal的参数必须是一个数值向量,表示季节性顺序,或者是一个包含两个命名元素的列表:order,表示季节性顺序的数值向量,和period,表示季节性周期的整数。
你提供的只有季节性顺序的列表,所以Arima报错找不到period值。如果提供数值向量,则period会默认为frequency(my_ts),正如函数文档中所述。虽然仅仅给出数值或列表的顺序应该有相同的结果,但实际上并非如此。这只是这个函数的一个怪癖。
以下是可行的调用重写:
fit_arima <- Arima(my_ts,
                   order = c(0, 0, 1),
                   seasonal = c(1, 0, 0)) # vector, not a list

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接