A model for analyzing a series, which is the sum of a deterministic trend series and a stationary noise series is the random walk with drift model given by

\[y_t = \delta+y_{t-1}+w_t\]

for \(t = 1, 2,...\) with initial condition \(y_0 = 0\), and where \(w_t\) is white noise. The constant \(\delta\) is called the drift, and when \(\delta = 0\) it is called simply a random walk.

The equation from above may be rewritten as

\[y_t = \delta t + \sum_{j=1}^t w_j\text{,}\]

for \(t = 1,2,...\).

When \(\delta = 0\) the value of the time series at time \(t\) is the value of the series at time \(t-1\) plus a completely random movement determined by \(w_t\).

\[\Delta y_t = y_t-y_{t-1} = w_t\]

The \(w_{t}\) values can be interpreted as independent “shocks” which perturb the current state \(y_t\) by an amount \(w_{t}\) to produce a new state \(y_{t+1}\).

The graph below shows a random walk and a random walk with drift (\(\delta = 0.25\)) generated with R.

set.seed(250)
## random walk
w <- rnorm(n = 200, mean = 0, sd = 1) 
y <- cumsum(w) 
## random walk with drift
wd <- w +.25
yd <- cumsum(wd)
## plotting
plot.ts(yd, ylim = c(-5,55), 
        main = expression(paste("Random walk with " *sigma[w]* " = 1")), 
        col = 'blue')
lines(y, col = 'red')
legend('topleft', 
       legend = c(expression(paste(delta*' = 0.25')),
                             expression(paste(delta*' = 0'))),
       col = c('blue', 'red'),
       lty = 1)

The autocorrelation function of this model type typically shows a very slow decay.

library(ggfortify)
library(gridExtra)

p1 <- autoplot(acf(y, plot = F)) + 
  ggtitle('Serial Correlation of a random walk')

p2 <- autoplot(acf(yd, plot = F)) + 
  ggtitle('Serial Correlation of a random walk with drift')
grid.arrange(p1, p2, ncol = 1)