I want to get the cross-correlation of two time series x and y in R.

I have calculated an ARIMA model, and I can get the mod1$residuals from signal x. These residuals almost have no autocorrelation, so that's great.

xts <- ts(x,start=1,frequency=12) #convert to a time series
library(fpp)  #load forecasting package
mod1 <- auto.arima(xts)

I now did the same procedure on signal y.

My question is: is this correct? Or should I somehow deduct the mod1 (based on x) from y to de-trend it?

ccf(mod1$residuals, mod2$residuals)

Secondly, I am confused about the order of operations. Should I prewhiten the data before calculating the model?

I found this code:

prewhiten(x, y, x.model = ar.res,ylab="CCF", ...)

Should I estimate the mod1 first and then supply it to the function prewhiten? And are x and y the two time series? Many thanks!

  • $\begingroup$ Related to this. $\endgroup$ – Richard Hardy Feb 5 '16 at 7:39
  • $\begingroup$ I don't fully understand the answer you point to. Do I remove the arima model from both time series? And do I remove the same model or make two models? $\endgroup$ – dorien Feb 5 '16 at 9:54
  • $\begingroup$ I know I did not manage to provide a clarification there; I posted the link so that other users could see the background of the question. $\endgroup$ – Richard Hardy Feb 5 '16 at 10:02
  • $\begingroup$ Regarding terminology, you "estimate" rather than "calculate" model mod1 or ARIMA model. It could be nice to have this fixed in both your question and your answer. $\endgroup$ – Richard Hardy Feb 7 '16 at 20:04

Prewhitening seems like a good way to help interpret ccf. (see here)

Prewhitening basically estimates a model (such as ARIMA) on data1, then the residuals data2 and this model are used in a ccf function with data1 residuals. In the case of this question:

 print(prewhiten(y, model=mod1))

will display the ccf graph


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.