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:

  1. One (pooled) ARIMA model for all 336 forecasting steps
  2. 336 ARIMA models; one for each hour to be modeled (or one for each day 12 or 24 forecasting steps)

I have two questions:

  1. 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.
  2. If so, how can I statistically compare both approaches (a pooled model against 336 individual models)?
  3. 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.

A similar but not identical question has been asked here. The answer refers however to regression approaches. I also found these questions here and here and the respective answers very helpful.


1 Answer 1

  1. Of course you can but I suggest you to go with ARIMAX because when having hourly data, you won't be able to reach seasonnality effect so go with dummy variables for season effect for example or target a certain period of the time.

1.bis I don't know why you want to fit 336 ARIMA models for each hour ? You just do 1 model and then you do a prevision for t+h where h = 336.

  1. One ARIMAX and one linear regression basically, you compared both modeling with an error criterion like MAPE for example.

  2. ARIMAX is your best option here, but you could try VAR with water level, pressure and temperature (VECM if they are integrate).

But first of all, before doing ARIMAX, you should question about stationarity of your time series before even considering modeling ARIMA(X).

  • $\begingroup$ Thanks for your answer and apologizes for my late reply. What I do not understand is how to fit an ARIMA or ARIMAX data with my overlapping regressor set. For each hour in the time series, there are 14 entries in the regressor matrix. How do I specify, for example, an auto.arima() function in this case? My time series is basically stationary. There is no (significant) trend and a stable seasonality from day to night and over the year (ignoring a slow climate change-related pattern). I want to test 336 ARIMA(X) models against one because e.g. the regressor because much more noisy over time. $\endgroup$ Commented Jul 28, 2019 at 11:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.