Strange behavior of auto.arima in R-package forecast
我正在尝试使用R-package预测来拟合Arima模型(具有Arima函数)并自动选择合适的模型(具有auto.arima函数)。我首先用Arima函数估计了两个可能的模型:
1 2 3 4 | tt.1 <- Arima(x, order=c(1,0,1), seasonal=list(order=c(0,1,1)), include.drift=F) tt.2 <- Arima(x, order=c(1,0,1), seasonal=list(order=c(0,1,0)), include.drift=F) |
然后,我使用函数auto.arima为相同的数据自动选择合适的模型。就像上面的两个模型一样,我固定了d = 0和D = 1。此外,我将所有其他参数的最大值设置为1,没有使用选择标准的近似值,也没有使用逐步选择(请注意,我在此处使用的设置仅用于演示奇怪的行为,而不是我真正打算的设置)用)。我使用BIC作为选择模型的标准。这是函数调用:
1 2 3 4 | tt.auto <- auto.arima(x, ic="bic", approximation=F, seasonal=T, stepwise=F, max.p=1, max.q=1, max.P=1, max.Q=1, d=0, D=1, start.p=1, start.q=1, start.P=1, start.Q=1, trace=T, allowdrift=F) |
现在,我希望auto.arima从上面的两个模型中选择具有较低BIC的模型,或者在Arima上面未选择的模型中选择一个。此外,我希望当trace = T时auto.arima生成的输出与上述两个模型的Arima计算的BIC完全相同。对于第二个模型确实如此,但对于第一个模型则不是。对于第一个模型,由Arima计算的BIC是10405.81,但是模型(1,0,1)(0,1,1)的auto.arima的屏幕输出是Inf。因此,尽管比较Arima估算的两个模型时,第一个模型的BIC较低,但是第二个模型是通过auto.arima选择的。在第一个模型的情况下,有谁知道为什么Arima计算出的BIC与auto.arima计算出的BIC不对应?
这是auto.arima的屏幕输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ARIMA(0,0,0)(0,1,0)[96] : 11744.63 ARIMA(0,0,0)(0,1,1)[96] : Inf ARIMA(0,0,0)(1,1,0)[96] : Inf ARIMA(0,0,0)(1,1,1)[96] : Inf ARIMA(0,0,1)(0,1,0)[96] : 11404.67 ARIMA(0,0,1)(0,1,1)[96] : Inf ARIMA(0,0,1)(1,1,0)[96] : Inf ARIMA(0,0,1)(1,1,1)[96] : Inf ARIMA(1,0,0)(0,1,0)[96] : 11120.72 ARIMA(1,0,0)(0,1,1)[96] : Inf ARIMA(1,0,0)(1,1,0)[96] : Inf ARIMA(1,0,0)(1,1,1)[96] : Inf ARIMA(1,0,1)(0,1,0)[96] : 10984.75 ARIMA(1,0,1)(0,1,1)[96] : Inf ARIMA(1,0,1)(1,1,0)[96] : Inf ARIMA(1,0,1)(1,1,1)[96] : Inf |
以下是Arima计算得出的模型摘要:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | > summary(tt.1) Series: x ARIMA(1,0,1)(0,1,1)[96] Coefficients: ar1 ma1 sma1 0.9273 -0.5620 -1.0000 s.e. 0.0146 0.0309 0.0349 sigma^2 estimated as 867.7: log likelihood=-5188.98 AIC=10385.96 AICc=10386 BIC=10405.81 Training set error measures: ME RMSE MAE MPE MAPE MASE ACF1 Training set 0.205128 28.16286 11.14871 -7.171098 18.42883 0.3612059 -0.03466711 > summary(tt.2) Series: x ARIMA(1,0,1)(0,1,0)[96] Coefficients: ar1 ma1 0.9148 -0.4967 s.e. 0.0155 0.0320 sigma^2 estimated as 1892: log likelihood=-5481.93 AIC=10969.86 AICc=10969.89 BIC=10984.75 Training set error measures: ME RMSE MAE MPE MAPE MASE ACF1 Training set 0.1942746 41.61086 15.38138 -8.836059 24.55919 0.49834 -0.02253845 |
注意:我不允许提供数据。但是,如果有必要,我很乐意提供更多输出或运行对函数的修改后的调用。
编辑:我现在查看了auto.arima的源代??码,发现该行为是由对根的检查引起的,如果该模型未通过检查,则将根用于选择模型的信息标准设置为Inf。在auto.arima帮助中引用的论文证实了这一点(Hyndman,RJ和Khandakar,Y.(2008)"自动时间序列预测:R的预测程序包",《统计软件》,第26(3)页,第11页) 。对不起,我在这里提出问题之前应该已经阅读了这篇论文!
您的
在内部,