I am running a ARIMA model on my data. I have weekly data from Jan 2021. When I run 12 weeks forecast, the ARIMA gives the best parameter values (0,0,0) indicating that the data is white noise. But when I use the same data and run a 8 weeks forecast, the best parameter values are (4,0,4), which means data isn't white noise.
Could someone please let me know how is forecast duration making the data white noise?
So here's how I am running my forecasting:
Data runs from Jan 2021 to July 2024.
Training data: Jan 1, 2021 to Feb 11, 2024.
Test Data: Feb 18, 2024 to May 6, 2024.
I loop over large sets of p,d,q values using:
params = {
'p' : [0,1,2,3,4,5],
'd' : [0,1,2,3,4,5],
'q' : [0,1,2,3,4,5]
}
for vals in product(*params.values()):
comb = dict(zip(params.vals)
then I pass comb
into my function that performs ARIMA.
After the above step, I select the best p,d,q values based on lowest RMSE scores based on test vs forecast values. and pass them onto the out to the next 12 weeks forecast:
Now training data: Jan 1, 2021 to May 13, 2024 test data: May 13, 2024 to July 29, 2024
itertoos
product
. It will go through different combinations of p,d,q values and the combination that gives lowestRMSE
, I referred as "best parameter values" $\endgroup$itertools
, but if you are doing grid search over a large number of possible combinations of p, d, q, then you might as well be overfitting on the test set, so the model choice is not necessarily sensible. $\endgroup$