Solved – Cross-correlation of two autocorrelated signals (removing autocorrelation with ARIMA)

arimaautocorrelationcross correlationr

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!

Best Answer

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