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.
Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. It only takes a minute to sign up.
Sign up to join this communityDoes 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.
@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.