I'm attempting to forecast 24-month hydroelectric generation at various river systems in the United States. Because river flows -- which is the primary driver behind hydro generation -- are mean-reverting and seasonal, and since I'm not a hydrologist, a SARIMA model seemed a reasonable place to start.
That said, I was hoping some of you could kindly shed some light on the following methodology for evaluating candidate models:
- Create a list of reasonable SARIMA(p, d, q)x(P, D, Q)12 models
- For each model in the List:
- Fit model (I'm using SARIMAX in the Python statsmodels library)
- Check that all regression coefficients are statistically significant
- Check that residuals are normally distributed (Jarque-Bera)
- Check that residuals do not show autocorrelation (Ljung-Box with Lag = 2*M = 24)
- Check that residuals do not exhibit heteroskedasticity (break-variance)
- If the model passes tests 2) through 5), add the model to a list of "feasible" models
- Select the model with the lowest AIC among feasible models.
- Create a 24-month prediction interval from such model*
I've been scouring the internet (including these forums) for some time but have yet to see anyone apply all these tests simultaneously (a lot of people seem to simply minimize AIC or BIC without running the above tests). Am I being too conservative? What can I do to improve the robustness / reliability of my models?
*If the set is empty (i.e., no candidate model passes the aforementioned tests), attempt a square-root transformation of the data, run execute prediction on the model, and back-transform (square) the predicted output.