for a school project I need to forecast high-frequency data using different methods of my choice.

Data: I have hourly data on day-ahead electricity prices and a few other variables (hourly power generation from wind, PV, gas etc. power plants) from the past 8 years. I assume there are daily, weekly and annual seasonalities (see the ACF/PACF plots below).

Goal: Forecasting day-ahead electricity prices. There is no guideline of how much data to use for building/training the models, and also the forecast window is not specified.

Ideas: I know that a variety of models (multi-agent, fundamental, reduced-form, statistical, computational models) are used in Electricity Price Forecasting.

Due to the limited scope of the project, I plan to focus on statistical and computational models. More precisely, I intend to use auto.arima from the forecast package to build an ARIMA model which will serve as a benchmark for other models that I hope can handle multiple seasonalities well: ARIMAX (load and wind/PV generation as external regressors), Exponential Smoothing (STL+ETS), BATS and TBATS. I intend to try an ANN model with nnetar as well.


  1. Choice of training data length and forecasting window: Since the computation in R can take some time, I started to build models with one year (8760 obs.) respectively 3 months (2016 obs.) of training data, and then forecast one week (168 obs.). Are these reasonable choices? Should I use more data to build the models and forecast longer or shorter periods?

  2. By analyzing ACF and PACF of the differenced day-ahead TS, I am not able to reconstruct the ARIMA model suggested by auto.arima (for an msts with seasonalities 24 and 168). By looking at the ACF and PACF plots, I see a strong daily seasonality (significant lags at 24, 48 etc) ACF of differenced Day-Ahead TS PACF of differenced Day-Ahead TS

Weirdly, auto.arima suggests an ARIMA(5,1,1) model with non-zero mean for the one year training data. Why does it not choose a seasonal model? Should I specify only one seasonality (daily or weekly) instead of both? For the 3 month training data, auto.arima chooses an (1,1,1)(0,1,0)[168] model.


Hourly data is best handled by incorporating daily sums as a predictor series into an ARMAX model. Where the daily forecasts have been generated taking into account holiday effects , seasonal effects , day-of-the-week effects , day-of-the=month effects et al.

ARIMA models get confused when weekends are different from weekdays and holidays/events have an effect what is often useful is a combined model containing both deterministic structure and memory i.e. exogenous and endogenous . The problem with ARIMA or SARIMA models for hourly/daily data is that the model structure is all endogenous (autoregressive) while it should be a combination of memory and determinisic effects.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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