0

Don Walpola wrote a good overview of the bootstrap techniques used for time series (https://stats.stackexchange.com/a/450894).

I searched through the literature, and did not find a single method taking advantage of the rank of a time series to create bootstraps with similar properties.

The idea is simple. Let's consider a time series $y_{n}$ with n $\in [1,N]$. Create $z_{n}$ a bootstrap with replacement of $y_{n}$ so that both time series share same ranks. That's it.

A short example in R with 5 bootstraps:

x <- 1:120 # months.
y <- cos(2*pi*(x-1)/12)+runif(x)+0.03*x # your favorite non-stationary time series
rank.y <- rank(y) # rank of your time series

col5 <- c('red','blue','green','yellow','pink')
plot(x,y,type='l')
for(i in 1:5)
{
  y.boot <- sample(y,replace=T)
  y.boot <- y.boot[order(y.boot)]
  y.boot <- y.boot[rank.y]
  lines(x,y.boot,type='l',col=col5[i])
}

This method looks more simple and efficient than a block bootstrap. Am I missing something?

Thanks !

1 Answers1

0

I found the terminology for what I am trying to do, it is very close to "maximum entropy bootstrap" (https://www.jstatsoft.org/article/view/v029i05).

One difference is that the bootstrap is performed on a larger sample that includes nearby values of the original time series, which solves the problem of repeating adjacent values.

This method is actually powerful for bootstrapping time series.