# Forecasting high-frequency electricity data with multiple seasonalities

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.

Problems:

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)

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.

## 1 Answer

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.