这是在R中选择ets()和auto.arima()函数的最佳标准



我正在使用预测包中的ets()和auto.arima()函数来预测r中的未来值,应该使用哪个标准来选择这两者之间的最佳模型?

下面是ets (data.ets)和auto的精度输出。arima (data.ar)。

> accuracy(data.ets)
   ME      RMSE       MAE       MPE      MAPE      MASE 
0.6995941 4.1325246 3.2634246 0.5402465 2.7777897 0.5573740 
> accuracy(data.ar)
    ME       RMSE        MAE        MPE       MAPE       MASE 
-0.8215465  4.3640818  3.1070931 -0.7404200  2.5783128  0.5306735 

,各模型的AIC如下

> ETSfit$aic
[1] 613.8103
> ARIMAfit$aic
[1] 422.5597

以下是ets和auto.arima的拟合模型

> ETSfit 
ETS(A,N,A) 
Call:
 ets(y = data.ts) 
Smoothing parameters:
alpha = 0.5449 
gamma = 1e-04 
Initial states:
l = 95.8994 
s=6.3817 -3.1792 6.8525 3.218 -3.4445 -1.2408
       -4.5852 0.4434 1.7133 0.8123 -1.28 -5.6914
sigma:  4.1325
 AIC     AICc      BIC 
613.8103 620.1740 647.3326
> ARIMAfit
Series: data.ts 
ARIMA(1,1,1)(0,1,1)[12]                    
Coefficients:
     ar1      ma1     sma1
  0.3808  -0.7757  -0.7276
s.e.  0.1679   0.1104   0.2675
sigma^2 estimated as 22.68:  log likelihood=-207.28
AIC=422.56   AICc=423.19   BIC=431.44

请帮助。

如果不知道每个模型中有多少参数,则很难比较样本内精度度量。此外,AIC值在这些模型类之间是不可比较的。

最简单的方法是使用一个不用于模型选择或估计的测试集,然后比较测试集上预测的准确性。

更复杂的版本是使用时间序列交叉验证,如http://otexts.com/fpp/2/5/所述。

您可以考虑使用两者的简单平均值,但是您应该基于样本外的性能来做出这个决定。

我今天刚刚读了一篇预测包的作者写的文章。他在一次预测比赛中使用了大约3000个系列的模型,发现当他对ets()和auto.arima()进行简单平均时,他得到了最好的结果。

在我打开链接后,我意识到那篇文章的作者已经回答了你上面的问题!

相关内容

  • 没有找到相关文章

最新更新