I am working with hourly water level data and I plan to forecast each day the next two weeks (on an hourly base meaning 14*24 = 336 forecasts each day). My regressor is an hourly weather forecast.
Here is an example how the data looks like (I am unfortunately cannot make the full dataset public for copyright reasons)
| forecasting_date | date | forecasting_step | temperature | air_pressure | y | | January 1, 2019, 7:00 | January 1, 2019, 8:00 | 1 | 5.1 | 1032 | 50.1 | | January 1, 2019, 7:00 | January 1, 2019, 9:00 | 2 | 5.15 | 1033 | 50.2 | | January 1, 2019, 7:00 | January 2, 2019, 8:00 | 25 | 4.1 | 1035 | 49.8 | | January 1, 2019, 7:00 | January 3, 2019, 8:00 | 49 | 1.2 | 1038 | 50.5 | | January 2, 2019, 7:00 | January 2, 2019, 8:00 | 1 | 4.5 | 1034 | 49.8 | | January 2, 2019, 7:00 | January 3, 2019, 8:00 | 25 | 0.2 | 1039 | 50.5 | | January 3, 2019, 7:00 | January 3, 2019, 8:00 | 1 | -0.5 | 1037 | 50.5 |
I predict for example January 3, 2019, 8 am, (where y takes the value 50.5) on
January 1, 2019, 7:00 based on a temperature forecast of 1.2 degree Celsius and an forecasted air pressure of 1032 hPa.
Also on January 2, 2019, 7:00 based on the updated temperature forecast of 0.2 degree Celsius and a new air pressure forecast of 1034 hPa, I need to do a prediction for each hour of January 3.
Again on January 3, 2019, 7:00 I forecast again 8 am on that day based on the early morning temperature forecast of -0.5 degree Celsius (air pressure 1037 hPa).
Some information to the variables above:
forecasting_date is the date of the forecast
date is the date to be forecasted
forecasting_step is what it’s name says
temperature is the forecast of the temperature at time date based on forecasting date
air_pressure is the forecasted air_pressure
y is the time series to be forecasted (the value y takes on the point of time of date). y takes always for one ‘date’ always the same value.
When the original time series which is the base for column y has a length of $n$, my regressor matrix $X$ (including temperature and air pressure) has a length of $(14*n) \times 2$. This is because there is each day an hourly weather forecast available for the next 14 days.
My background lies more in classical regression tasks than in time series analyses. My thirst thought is to compare one model for all forecasting steps with single model for each forecasting step (or for example for each day to be predicted in the future). I therefore want to compare next the predictive performance between these two modelling approaches:
- One (pooled) ARIMA model for all 336 forecasting steps
- 336 ARIMA models; one for each hour to be modeled (or one for each day 12 or 24 forecasting steps)
I have two questions:
- Can I train an ARIMA model with the auto.arima() function of the forecasting package with such a dataset where multiple regressor forecasts are available for each date? I tried to feed the matrix above with temperature and air_pressure as regressors but the results quite bad compared to a simple linear regression.
- If so, how can I statistically compare both approaches (a pooled model against 336 individual models)?
- Are there are time series model which can handle such data? I have some ideas how to do that with regression approaches but I am asking here specifically about time series approaches.