Percentile and BCa Bootstrap Intervals
Two ways to turn a pile of resampled statistics into a confidence interval — the percentile method just reads off the middle 95% directly, while the BCa method corrects for bias and skew that the plain percentile method can miss.
Prerequisites: Bootstrap and Resampling, Confidence Intervals
You've computed a strategy's Sharpe ratio from two years of daily returns and want a confidence interval around it — but the Sharpe ratio has no simple textbook formula for its sampling distribution, especially with non-normal, autocorrelated returns. The bootstrap sidesteps this by resampling: draw thousands of pseudo-datasets from your own data, recompute the Sharpe ratio on each, and use the spread of those thousands of values to build an interval. The only remaining question is exactly how to turn that pile of resampled statistics into an interval — and that's where the percentile and BCa methods differ.
An analogy: a straw poll versus a corrected poll
Imagine surveying a crowd's height by re-surveying random subsets of the same crowd over and over, recording each subset's average. The plain percentile method just sorts all those resampled averages and reports the middle 95% directly — simple and often good enough. But if your original sample happened to be skewed (more short people than the true population, by chance), the resampled averages inherit that skew, and the plain percentile interval quietly carries the bias along. The BCa (bias-corrected and accelerated) method is a smarter poll-reader: it checks how far the original estimate sits from the center of the resampled distribution, and shifts the interval's endpoints to correct for that offset.
The idea, one symbol at a time
Given bootstrap resamples, each producing a statistic (e.g., a Sharpe ratio computed on resample ), the percentile interval at level is simply
the and empirical quantiles of the bootstrap values. In plain English: sort all your resampled Sharpe ratios and read off the values at the 2.5th and 97.5th percentiles for a 95% interval. The BCa interval uses the same sorted values but shifts which percentiles get used, based on two correction terms: a bias-correction , measuring what fraction of bootstrap values fall below the original estimate (should be about half if unbiased, often isn't), and an acceleration , measuring how the estimator's standard error changes as the true parameter changes. In plain English: BCa cuts at percentiles shifted to account for the resampled distribution being off-center or lopsided relative to the truth, instead of always cutting at exactly 2.5/97.5.
Worked example 1: percentile interval from a toy resample
Suppose, from a small illustrative set of bootstrap Sharpe ratios (sorted): . For a rough 90% interval (dropping roughly the bottom and top 1 of 20 values, i.e., the 5th and 95th percentiles): lower bound (near the smallest), upper bound – (near the largest). Reading directly off the sorted list this way, with no adjustment, is the entire percentile method — no formula beyond sorting and indexing.
Worked example 2: when BCa shifts the answer
Now suppose the original point estimate, computed once on the real (unresampled) data, is . Looking at the 20 sorted bootstrap values above, notice 8 of them (0.3 through 0.5, roughly) fall below 0.55, i.e., 40% rather than the 50% you'd expect if the bootstrap distribution were centered exactly on the original estimate. This 40%-vs-50% mismatch is exactly what measures, and it's nonzero here — signaling the resampled distribution is shifted slightly above the original estimate. BCa uses this (plus the acceleration term) to shift the percentile cut-points — instead of cutting at the 5th/95th percentiles of the sorted values, it might cut at, say, the 3rd/92nd percentiles, narrowing the interval from the high end and widening it slightly from the low end to correctly re-center the interval around 0.55 rather than around the resampled distribution's own, slightly-shifted center.
The explorer above shows how resampled statistics pile up into a distribution — this is precisely the raw material both methods work from; percentile reads the sorted pile directly, BCa adjusts which points in that pile get used as endpoints.
What this means in practice
Bootstrap confidence intervals are the standard way to attach uncertainty to statistics like Sharpe ratios, drawdown percentiles, or factor betas that lack clean textbook formulas for their sampling distribution. The plain percentile method is simpler and usually fine for roughly symmetric, unbiased statistics; BCa matters most for statistics known to be skewed or biased in small samples — Sharpe ratios and variance-like quantities being classic examples.
Both methods build a confidence interval from the spread of a statistic recomputed on thousands of bootstrap resamples. The percentile method reads the interval directly off the sorted resampled values; the BCa method shifts which percentiles get used to correct for bias and skew in how those resampled values are centered relative to the original estimate.
Both bootstrap interval methods assume the resampling scheme itself is valid for your data — for correlated or time-dependent data like daily returns, naively resampling individual days with replacement (an i.i.d. bootstrap) destroys the autocorrelation structure and can produce a confidence interval that is far too narrow. Use a block bootstrap for dependent data before applying either the percentile or BCa correction; correcting for bias while ignoring dependence fixes one problem while leaving a larger one untouched.
Related concepts
Practice in interviews
Further reading
- Efron & Tibshirani, An Introduction to the Bootstrap, ch. 14
- DiCiccio & Efron, 'Bootstrap Confidence Intervals', Statistical Science