Quant Memo

Paper Explained

The Stationary Bootstrap: Resampling Data That Has a Memory

The plain bootstrap destroys the time structure in financial data. Politis and Romano found a way to resample in blocks of random length that keeps it intact.

QM
Quant Memo

July 13, 2026

The paper

The Stationary Bootstrap

Dimitris N. Politis and Joseph P. Romano · 1994

Read the original →

Efron's bootstrap is one of the great ideas in statistics: to find out how much your estimate would wobble, just resample your own data thousands of times and watch it wobble. It works, it is simple, and it needs almost no assumptions.

Almost none. It needs one. It assumes your observations are independent.

Financial data violates this assumption so thoroughly that applying the plain bootstrap to a return series is not a minor approximation error. It is a bug that will systematically lie to you, in a direction that makes you overconfident.

Politis and Romano's 1994 paper is the fix.

The problem: shuffling the deck destroys the story

Here is what goes wrong. The plain bootstrap draws individual observations at random, with replacement. Applied to a daily return series, that means it grabs a Tuesday from 2011, then a Thursday from 2003, then that same Tuesday again, and staples them together into a new "history."

That new history is nonsense, and it is nonsense in a specific, dangerous way. Real financial returns have structure across time:

  • Volatility clusters. A wild day is usually followed by another wild day. Calm follows calm. This is one of the most robust facts in all of finance.
  • Returns are serially correlated, sometimes trending, sometimes mean-reverting, depending on horizon.
  • Regimes persist. Bull markets last months. Crises last months.

Random shuffling annihilates every bit of this. Your resampled histories will have no volatility clustering, no trends, no crises, just a bland, memoryless spray of returns. And because clustering and persistence are what create the long, ugly drawdowns that actually hurt, your bootstrapped worlds will be much tamer than reality.

The practical consequence: your confidence intervals come out too narrow, your standard errors come out too small, and your backtest looks more statistically significant than it deserves. The plain bootstrap on time series data does not just fail, it fails in the flattering direction, which is the worst kind of failure.

The key idea via analogy: resample sentences, not letters

The obvious fix, proposed before Politis and Romano, is the block bootstrap: instead of drawing single days, draw contiguous chunks. Grab a whole run of thirty consecutive days at a time and paste those together. Within each block, all the local structure (the volatility clustering, the trending) survives intact. You only break the story at the seams between blocks.

The analogy: if you want to generate fake text that resembles English, do not resample individual letters. You will get gibberish. Resample whole sentences. The sentences will not connect, but at least each one is grammatical.

The block bootstrap works, but it has an irritating property that bothered Politis and Romano. If your original series was stationary, meaning its statistical character does not depend on where in time you are looking, then your bootstrapped series should be stationary too. But a fixed-block bootstrap produces series that are not. The observations near the middle of a block behave differently from the ones at the seams, and where the seams fall depends on position. The resampled series has an artificial rhythm baked into it, tied to the block length.

That is not just aesthetically displeasing. It is a real source of bias.

The fix: make the block length random

Politis and Romano's solution is elegant and almost obvious in hindsight. Do not use a fixed block length. Use a random one.

Their procedure works like this. Start at a random point in your data. Then, at each step, flip a biased coin:

  • With some probability, keep going: take the next observation in the original series.
  • With the remaining probability, stop and jump: start a fresh block at a new random point.

That is it. The blocks that emerge have random lengths, drawn from a geometric distribution, and there is one parameter to set: the average block length, which you control through the coin's bias. A long average block length preserves more of the time structure. A short one gets you closer to the plain bootstrap.

Why does randomising the length matter? Because it makes the seams fall anywhere with equal probability. There is no privileged position in the resampled series. And the authors prove exactly what they were after: the resulting bootstrapped series is genuinely stationary, which is why the method is called the stationary bootstrap. The artificial positional rhythm of the fixed-block method disappears.

A useful detail: they also wrap the data around in a circle, so that the end of the series connects back to the beginning. This means every observation has an equal chance of being included, and the days near the edges of your sample are not systematically under-sampled.

Why it mattered

  • It made bootstrapping safe for financial time series. This is the practical point. Before this method, resampling return data required either accepting a known bias or hand-rolling a block scheme with awkward edge effects. The stationary bootstrap is the default tool now, and for good reason.
  • It is the engine inside the data-snooping tests. White's Reality Check and Hansen's Superior Predictive Ability test both need to generate artificial market histories that preserve realistic dependence. They use the stationary bootstrap to do it. Sullivan, Timmermann and White's century-long study of technical trading rules leans directly on this method. If Politis and Romano's paper did not exist, that entire literature would be built on sand.
  • It respects a deep principle. The insight that your resampling scheme should preserve the essential property of the data (here, stationarity) rather than accidentally destroy it, is a design principle that generalises well beyond this one method.
  • It is genuinely simple to implement. A geometric coin flip and an index wrap-around. Twenty lines of code. That simplicity is why it actually got adopted rather than admired.

The honest limitations

  • You still have to pick the average block length, and it matters a lot. Choose it too short and you destroy exactly the dependence you were trying to preserve, which puts you back where you started. Choose it too long and each resample is almost a copy of the original data, so you get too little variety and your uncertainty estimates become unstable. There is theory on how to choose it, and it involves estimating the very dependence structure you were trying to avoid modelling, which is a little circular. In practice people try several values and check that their conclusions do not swing wildly.
  • Stationarity is assumed, and markets are not stationary. The whole method rests on the data being stationary: the statistical rules do not change over time. Financial markets plainly break this. Regimes shift, structural breaks happen, the 1990s were not the 2020s. If your series is not stationary, no bootstrap, stationary or otherwise, is going to rescue you.
  • It preserves short-range memory, not long-range structure. Block resampling captures dependence that lives within a block. It cannot preserve slow-moving structure that spans years, like a long secular trend or a multi-year regime. If your strategy's performance depends on that kind of structure, the stationary bootstrap will misrepresent it.
  • Blocks still have seams. Randomising the block length removes the positional artefact, but every seam is still a place where two unrelated pieces of history are stapled together. The method makes those joins unpredictable rather than making them go away.

The one-line takeaway

Politis and Romano fixed the fatal flaw in applying the bootstrap to financial data, that shuffling individual days destroys volatility clustering and serial correlation, by resampling contiguous blocks of random length, which preserves the time structure while keeping the resampled series properly stationary.

Related concepts