r - 在 R 中选择 ets() 和 auto.arima() 函数的最佳标准是什么?

标签 r forecasting ets

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

以下是 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/ 所述。 .

关于r - 在 R 中选择 ets() 和 auto.arima() 函数的最佳标准是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16601643/

相关文章:

java - 支持Renjin中的R预测

python - 由 Gluon-TS 示例生成的预测约为 0

r - ets:ets(时间序列,模型 = "MAM")中的错误:非季节性数据

在水平堆叠条形图中重新排序堆栈 (R)

从 R 包中删除/取消注册特定功能

r - 定期切换 Shiny 仪表板中的选项卡

machine-learning - 预测误差指标的差距是什么 : MAPE and WMAPE?

erlang - 数据文件和 ETS 表之间的平均大小比率是多少?

erlang - 使用 ets :foldl as a poor man's forEach on every record

R Shiny DT::renderDataTable 被覆盖的 "Processing..."横幅卡住