如何用即将到来的数据更新ARIMA模型参数



我想问一下ARIMA模型。我试图预测2000多种产品的销售额,这就是为什么对于每种产品,我都使用auto_arima函数来查找模型参数。但是,我想问一下,是否有任何方法可以将auto_arima函数的第一个输出与参数一起更新。正如我从这些模型中了解到的那样,添加新数据可能会改变参数,而添加新数据后,旧的拟合模型可能无法正常工作。所以,如果你有什么建议或方法想分享,我会很高兴。这里,自动arima函数是如何进行网格搜索的。

ARIMA(0,1,0)(0,0,0)[0] intercept   : AIC=1669.310, Time=0.03 sec
ARIMA(1,1,0)(0,0,0)[0] intercept   : AIC=1639.205, Time=0.28 sec
ARIMA(0,1,1)(0,0,0)[0] intercept   : AIC=inf, Time=0.63 sec
ARIMA(0,1,0)(0,0,0)[0]             : AIC=1667.315, Time=0.20 sec
ARIMA(2,1,0)(0,0,0)[0] intercept   : AIC=1613.004, Time=0.28 sec
ARIMA(3,1,0)(0,0,0)[0] intercept   : AIC=1597.313, Time=0.88 sec
ARIMA(4,1,0)(0,0,0)[0] intercept   : AIC=1598.531, Time=0.88 sec
ARIMA(3,1,1)(0,0,0)[0] intercept   : AIC=inf, Time=0.87 sec
ARIMA(2,1,1)(0,0,0)[0] intercept   : AIC=inf, Time=0.58 sec
ARIMA(4,1,1)(0,0,0)[0] intercept   : AIC=inf, Time=0.91 sec
ARIMA(3,1,0)(0,0,0)[0]             : AIC=1595.395, Time=0.50 sec
ARIMA(2,1,0)(0,0,0)[0]             : AIC=1611.042, Time=0.20 sec
ARIMA(4,1,0)(0,0,0)[0]             : AIC=1596.627, Time=0.58 sec
ARIMA(3,1,1)(0,0,0)[0]             : AIC=1584.516, Time=0.87 sec
ARIMA(2,1,1)(0,0,0)[0]             : AIC=1582.662, Time=0.62 sec
ARIMA(1,1,1)(0,0,0)[0]             : AIC=1583.646, Time=0.50 sec
ARIMA(2,1,2)(0,0,0)[0]             : AIC=1584.618, Time=0.93 sec
ARIMA(1,1,0)(0,0,0)[0]             : AIC=1637.235, Time=0.28 sec
ARIMA(1,1,2)(0,0,0)[0]             : AIC=1585.298, Time=0.85 sec
ARIMA(3,1,2)(0,0,0)[0]             : AIC=1586.302, Time=1.09 sec
Best model:  ARIMA(2,1,1)(0,0,0)[0]          
Total fit time: 12.986 seconds 

合理的方法如下:

  • 选择可能持续几年(在本例中为2年(的周数作为培训;这大约是106周
  • 将连续106周作为训练数据,将下一周作为测试数据(例如,第1-106周作为训练,第107周作为测试,第2-107周作为训练和第108周作为测试等(
  • 对精度结果进行汇总/平均,并根据某些标准选择最佳模型
  • 使用这个选定的模型进行预测,并期望它在长期内会优于其他方法

最新更新