this is my first ever question on a website i use frequently!

This time series has given me much trouble over the last couple of days even after extensive googling, I suppose with TS theres no two series that look the same, hence my confusion!

I have the following ACF and PACF plots for my data:

enter image description here

After modelling NUMEROUS models in R (ARMA(p,q), with all combinations of p=0,1,2,3,4 and q=0,1,2,3,4) and looking at their theoretical acf plots, it seems R's auto.arima gave the best model with p=q=2.

But in my work, i don't want to just say i used R and inferred nothing from the ACF plots haha!

I understand that the slightly significant PACF at lag 1 indicates an AR component(?) and that as both plots 'slope off' it suggests a ARMA(p,q) model, but is there anything else im missing????

Also; the ts (in my eyes) seems seasonal: enter image description here

However ironically, no amount of differencing makes a difference, the plot still looks the same no matter what d equals. (R also tells me its not seasonal)

In short:

  1. What does the ACF plots tell me (main)
  2. Am i right in not differencing the data

Thanks a bunch!!! (feels good to finally posting a question - next stage is answering one lol)

(also a quick extra question for you keenos, when forecasting, what R package is best for visualising confidence intervals and simulations etc.)

Feel like i might as well throw more in here: These are my two plotted fitted values and future predictions (red being non-seasonal, green being seasonal): enter image description here Sorry its a bit messy.

The sum square of the residuals for the non seasonal model is 159799.8 And for the seasonal one 291955, suggesting the non-seasonal is better...?.?.?.


  • $\begingroup$ Can you edit your post to include your data, by pasting in the result of dput() applied to your series? $\endgroup$ – Stephan Kolassa Apr 26 at 11:20
  • $\begingroup$ Of course!! Thankyou!!! Hope this works $\endgroup$ – StatMan Apr 26 at 11:22
  • $\begingroup$ What time granularity is your data? $\endgroup$ – Stephan Kolassa Apr 26 at 11:29
  • $\begingroup$ Its monthly, if that answers your question ! $\endgroup$ – StatMan Apr 26 at 11:39

The ACF plot shows a seasonality with a period of about 12 (note the sinusoidal pattern). So the first plot to do is a seasonplot.


seasonplot 12

However, that does not look very promising.

So, let's look at your time series plot once more. We do see the seasonality, but we also see that the peaks alternate between being high and low. So there does not only seem to be a yearly seasonality, but one of length 2 years as well. So let's look at a seasonplot for a period of 24 months:


seasonplot 24

This looks much more regular than the one above. So let's work with a frequency argument of 24. If we now fit a model using auto.arima(), R indeed gives us a seasonal ARIMA model:

model <- auto.arima(ts(foo,frequency=24))


I would rather trust auto.arima() to create a forecast based on minimizing AIC, than trying the older Box-Jenkins approach of trying to parse (P)ACF plots. Note that forecast() gives you nice prediction intervals. Take a look at ?forecast.Arima (note the capitalization). Finally, note that in-sample fit is not a good guide to out-of-sample accuracy. Instead, consider using a holdout sample.

  • $\begingroup$ You HEROOOOoooo! i was trying a difference of 24 months but maybe i just didnt trust it. Fantastic. $\endgroup$ – StatMan Apr 26 at 12:00
  • $\begingroup$ Just a side note - the question asks me to write down the formula for model found; when doing this and writing Z_{t} as the white noise, do i state what i found as the white noises standard deviation?? ie. do i write Z_{t} ~ N(0, sd(model$res)) next to the model, or do i just leave it out and assume its unknown? (if you understand this question lol) Thanks a bunch anyway! $\endgroup$ – StatMan Apr 26 at 12:09
  • $\begingroup$ You would typically write out that $Z_t\sim N(0, \hat{\sigma}^2)$, where the estimate for $\hat{\sigma}$ comes out of auto.arima(). $\endgroup$ – Stephan Kolassa Apr 26 at 13:49

Trying a list of arima which assume that there are no deterministic structure is frequently inadequate as the correlogram should be calculated from residuals using a model that controls for intervention administration, otherwise the intervention effects are taken to be Gaussian noise, underestimating the actual autoregressive effect. See @AdamO's reflections here @Interrupted Time Series Analysis - ARIMAX for High Frequency Biological Data?.

In a similar ( but different way ) trying to parse/match the original acf/ccf to a set of models (using mid 60's procedures) is also flawed for the same reason ( untreated deterministic structure)

This explains why the following paradigm works well because it integrates both ARIMA (memory) and latent deterministic structure while validating homogeneity/constancy of model parameters and model error variance over time.


  • $\begingroup$ I see, so basically don't just assume models that have similar looking acfs are accurate. Think about the data!! (added) $\endgroup$ – StatMan Apr 26 at 16:38
  • $\begingroup$ equivalently examine the data to identify structure be it a combination of arima , level shifts, local time trends , seasonal pulses , pulses and possible breakpoints in parameters or model error variance over time. $\endgroup$ – IrishStat Apr 26 at 16:48

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.