I have highly seasonal data, (it's energy consumption) with mostly 24 hour and 168 hour (=1 week) periods and I have applied differencing by 168 hours (diff(time_series,lag=168)) to obtain something more stationary

Plot of differenced

because I don't see how I can fit any model on a series which has this many seasonalities (there is also a less obvious 12 hour period). Now I have plotted the acf and pacf and I was wondering about how to interpret these:



Lag=0 is not included because I used forecast::Acf. So on the pacf the obvious outliers are for lag=1,3 and 168.

I don't know if we can say that there is geometric or exponential decay in any of the correlograms, so any comments are welcome.

  • $\begingroup$ how many observations do you have ? $\endgroup$
    – IrishStat
    Apr 26, 2019 at 18:42

2 Answers 2


Selecting ARIMA p,d,q paramerters for hourly data with 24 hour cycle lays out a strategy for building 24 daily models and then using daily predictions from each of these models to predict hourly values. Pay particularly close attention to this reference Forecasting data with multiple seasonality and https://autobox.com/cms/index.php/blog/entry/forecasting-at-an-hourly-level.

In summary there is more to forecasting than simply weighting the past (SARIMA) when latent factors ( holidays, level shifts , local time trends ) along with possible predictor series like temperature are critically important to detect and incorporate. Methods that extract latent deterministic structure are in effect pseudo-causal.

Relying on the past of the output series alone is equivalent to "drivers that navigate using only the rear-window " rather than both the rear-window and the front window.


ARIMA, ACF and PACF are not useful for data with . I strongly recommend you look at models that were designed for this use case, like and .

Don't try to specify these models by hand (as you could specify ARIMA orders by looking at the ACF/PACF plots in the obsolete Box-Jenkins method). Instead, use a good implementation like the one in the forecast package for R.

  • $\begingroup$ In IrishStat's answer he talks about ARIMA, so you think this is not a good approach? $\endgroup$
    – H. Walter
    Apr 29, 2019 at 6:24
  • $\begingroup$ You can incorporate additional predictors into an ARIMA model, yielding an ARIMAX model, or run a regression with ARIMA errors (there is a difference). Yes, you can in principle model data with multiple seasonalities in this way. It just gets rather complicated, especially interpreting ACF/PACF plots, and if you just put in tons of dummies, you will get an overparameterized model. Better to use splines or harmonics. By which time you already almost have a TBATS model, so better to use that straight away. $\endgroup$ Apr 29, 2019 at 6:38
  • $\begingroup$ Also: ARIMA deals with seasonality by (possibly repeated) seasonal differencing. In each difference, you essentially throw away one seasonal cycle's worth of data. $\endgroup$ Apr 29, 2019 at 6:39
  • $\begingroup$ Here is a metaphor: yes, you can use a hammer to drive a screw into a wall. It's possible. But a hammer is made for nails, and there are better tools to address screw challenges. Like a screwdriver. In the exact same way, there are better models to address multiple-seasonalities than trying to make ARIMA work. I recommend the original TBATS publication by De Livera, Hyndman & Snyder (2011). $\endgroup$ Apr 29, 2019 at 6:41
  • 1
    $\begingroup$ Box-Jenkins modelling is not obsolete ...it just has been updated to deal with "data complications" . Identifying a minimally sufficient set of seasonal dummies is not necessarily an overparameterization just a possible "better paramaterization" $\endgroup$
    – IrishStat
    Oct 4, 2019 at 15:23

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.