How to update ARIMA model parameters with upcoming data?

967 Views Asked by At

I want to ask about ARIMA models. I am trying to forecast sales of more than 2000 products and that is why for each product, I use auto_arima function to find the model parameters. However, I want to ask is there any way to update the first output of auto_arima function together with the parameters. As I understood from these models, adding new data may change the parameters and old fitted model might not work well after adding new data. So, if is there any advice or methods that you want to share, I will be glad. Here, how the auto arima function makes the grid search.

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 
1

There are 1 best solutions below

0
On

A reasonable approach can be as follows:

  • Select the number of weeks in that may cover a few years (in this case 2 years) as training; this comes to around 106 weeks.
  • Taking consecutive 106 weeks as training data and the next week as testing data (e.g. weeks 1 - 106 as training & 107 as testing, weeks 2 - 107 as training & 108 as testing, etc...)
  • Aggregate/average over the accuracy results and choose the best model based on some criteria.
  • Use this chosen model to forecast with the expectations that it will outperform other approaches in the long-term.