我有一些预测::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 zeroThx &亲切的问候
发布于 2018-03-15 13:03:22
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 listhttps://stackoverflow.com/questions/49299902
复制相似问题