Autocorrelation in the presence of non-stationarity?

Does the autocorrelation function have any meaning with a non-stationary time series?

The time series is generally assumed to be stationary before autocorrelation is used for Box and Jenkins modeling purposes.

• if your series is non stationnary, the ACF will decline very slowly, to the point of being useless (it essentially a constant). What do you mean by 'have any meaning' ? – user603 Sep 13 '10 at 17:02
• If the time series is not stationary, often the 1st difference of the series will be stationary (for example, financial time series). – John Salvatier Dec 3 '10 at 22:18

@whuber gave a nice answer. I would just add, that you can simulate this very easily in R:

op <- par(mfrow = c(2,2), mar = .5 + c(0,0,0,0))

N <- 500
# Simulate a Gaussian noise process
y1 <- rnorm(N)
# Turn it into integrated noise (a random walk)
y2 <- cumsum(y1)

plot(ts(y1), xlab="", ylab="", main="", axes=F); box()
plot(ts(y2), xlab="", ylab="", main="", axes=F); box()
acf(y1, xlab="", ylab="", main="", axes=F); box()
acf(y2, xlab="", ylab="", main="", axes=F); box()

par(op)


Which ends up looking somewhat like this:

So you can easily see that the ACF function trails off slowly to zero in the case of a non-stationary series. The rate of decline is some measure of the trend, as @whuber mentioned, although this isn't the best tool to use for that kind of analysis.

In its alternative form as a variogram, the rate at which the function grows with large lags is roughly the square of the average trend. This can sometimes be a useful way to decide whether you have adequately removed any trends.

You can think of the variogram as the squared correlation multiplied by an appropriate variance and flipped upside down.

(This result is a direct consequence of the analysis presented at Why does including latitude and longitude in a GAM account for spatial autocorrelation?, which shows how the variogram includes information about the expected squared difference between values at different locations.)

One idea could be to make your time series stationary and then to perform ACF on it. One way to make a time series stationary is to compute the differences between consecutive observations. The ACF of the differenced signal should not suffer from the effects of trends or seasonality in the signal.