FRM Exam Part II · Non-parametric Approaches
Bootstrap Historical Simulation for VaR and Expected Shortfall
Updated 11 October 2026 · Fact-checked
Bootstrap historical simulation resamples your historical returns with replacement to build many new samples of the same size. You compute VaR or expected shortfall on each sample, then average the results. The spread of those estimates gives a standard error and confidence interval, which plain historical simulation cannot give.
Understand Bootstrap Historical Simulation
Plain historical simulation takes one window of past returns, sorts them and reads off the loss at the chosen percentile. You get one VaR number. It has no built-in sense of how reliable it is, because it is one draw from history.
The bootstrap fixes this. You treat the observed returns as the best available picture of the true distribution. You draw n returns at random from your n observations, with replacement, so the same return can appear several times and some may not appear. This gives one bootstrap sample. You repeat this many times, for example 1,000 times.
For each bootstrap sample you calculate the VaR (or expected shortfall, ES). You now have 1,000 estimates. The bootstrapped estimate is usually the average of these. Their spread is a measure of estimation error. You can take their standard deviation as a standard error, or read percentiles of the estimates as a confidence interval.
The bootstrap is still non-parametric. It assumes no normal or other distribution. It also still assumes that returns are independent and identically distributed (i.i.d.), and that the past sample represents the future. It does not create tail data that is not in the sample. It only reuses what you have.
For ES, the bootstrap averages the tail losses in each sample. Averaging across many samples usually gives a smoother, more precise estimate than one pass over the data. Standard errors for ES can be obtained the same way.
Key formulas to remember
- Bootstrap sample
- Draw n observations from n historical returns, with replacement
- Each sample has the same size as the original data. Repeats are expected.
- Bootstrapped VaR estimate
- VaR_boot = (1 ÷ B) × Σ VaR_b, for b = 1 to B
- B is the number of bootstrap samples. VaR_b is the VaR from sample b.
- Bootstrapped ES estimate
- ES_boot = (1 ÷ B) × Σ ES_b, for b = 1 to B
- ES_b is the average loss beyond VaR in sample b.
- Bootstrap standard error
- SE = √[ Σ (VaR_b − VaR_boot)² ÷ (B − 1) ]
- This is the standard deviation of the B estimates. Dividing by B instead of B − 1 is also seen when B is large.
- Approximate confidence interval
- VaR_boot ± z × SE
- Use z = 1.96 for 95% two-sided. Alternatively, use percentiles of the sorted bootstrap estimates.
- Historical VaR position
- VaR at confidence c is the loss at the (1 − c) tail percentile; with n observations, about n × (1 − c) losses lie beyond it
- Interpolation conventions vary, so read the question's stated method.
How to solve Bootstrap Historical Simulation questions
Use this method for any question on bootstrap historical simulation, whether it asks for a definition, a calculation or an interpretation.
- 1Identify what is asked: a VaR or ES estimate, a standard error, a confidence interval, or a comparison with plain historical simulation.
- 2Note the data: sample size n, number of bootstrap samples B, confidence level and whether returns or losses are given.
- 3Remember the resampling rule: n draws, with replacement, from the original sample.
- 4For each sample, compute the risk measure as the question defines it: the loss at the (1 − c) percentile for VaR, or the average of losses beyond VaR for ES.
- 5Combine the B estimates: average them for the bootstrap estimate, and use their standard deviation for the standard error.
- 6Build the confidence interval if asked, using estimate ± z × SE or the percentiles of the bootstrap estimates.
- 7Interpret: a smaller standard error means a more reliable estimate. Remind yourself that i.i.d. and past-represents-future assumptions still hold.
Quickest way: Fast check for bootstrap MCQs
When to use it: Use when the question is conceptual or gives the bootstrap estimates and asks for the combined result or the standard error.
- Check the resampling: with replacement and the same size as the original. Reject options that say without replacement.
- If a list of VaR estimates is given, average them for the estimate.
- For standard error, find deviations from the mean, square them, divide by B − 1 and take the square root.
- Eliminate options claiming the bootstrap removes the i.i.d. assumption, creates new extreme losses, or assumes normality.
- Pick the option that says the bootstrap gives a more precise estimate and a measure of its uncertainty.
Common mistakes in Bootstrap Historical Simulation
Resampling without replacement
Students think of sampling as picking items from a list once.
Fix: Remember that without replacement you would just reorder the same data and get the same VaR every time. Replacement is what creates variation.
Saying the bootstrap needs a normal distribution
Students link VaR and standard error to parametric methods.
Fix: The bootstrap is non-parametric. It uses the empirical distribution and assumes no particular shape.
Believing the bootstrap produces losses worse than any in the data
Many samples sound like more information.
Fix: Every bootstrap draw comes from the original observations. The worst possible loss in any sample is the worst historical loss.
Treating the bootstrap as removing the i.i.d. assumption
Students think resampling handles volatility clustering.
Fix: The basic bootstrap assumes i.i.d. returns. If volatility clusters, it can mislead. Other approaches such as weighting are needed.
Confusing standard error of the VaR estimate with the volatility of returns
Both are called standard deviations.
Fix: The standard error is the standard deviation of the B VaR estimates, not of the returns.
Reporting only one bootstrap sample's VaR as the answer
Students stop after the first sample in a worked question.
Fix: Average the VaR across all samples to get the bootstrap estimate.
Worked examples
Example 1
A risk analyst runs five bootstrap samples from historical returns and gets 95% one-day VaR estimates of USD 2.0 million, 2.4 million, 2.2 million, 1.8 million and 2.6 million. What is the bootstrapped VaR estimate, and what is its standard error (use B − 1 in the denominator)?
Show the solution
- Add the estimates: 2.0 + 2.4 + 2.2 + 1.8 + 2.6 = 11.0.
- Average: 11.0 ÷ 5 = 2.2, so the bootstrapped VaR is USD 2.2 million.
- Deviations from 2.2: −0.2, 0.2, 0.0, −0.4, 0.4.
- Squared deviations: 0.04, 0.04, 0.00, 0.16, 0.16. Sum = 0.40.
- Divide by B − 1 = 4: 0.40 ÷ 4 = 0.10.
- Square root: √0.10 ≈ 0.316.
Answer: Bootstrapped VaR = USD 2.2 million; standard error ≈ USD 0.316 million.
Example 2
A bank has 500 daily returns. Using the bootstrap, it draws 500 returns with replacement for each of 1,000 samples and computes the 99% ES in each. The average ES is USD 4.5 million and the standard error is USD 0.25 million. Give an approximate 95% confidence interval and explain what the bootstrap has and has not fixed.
Show the solution
- The bootstrapped ES estimate is the average: USD 4.5 million.
- Use the normal approximation for the interval: estimate ± 1.96 × SE.
- 1.96 × 0.25 = 0.49.
- Lower bound: 4.5 − 0.49 = 4.01. Upper bound: 4.5 + 0.49 = 4.99.
- Interpretation: the bootstrap quantifies estimation error, but it still assumes i.i.d. returns and cannot show losses worse than those in the 500 observations.
Answer: Approximate 95% confidence interval for ES: USD 4.01 million to USD 4.99 million.
Exam tips
- Expect conceptual MCQs. Know the three keywords: with replacement, same size, repeated many times.
- Be ready to say what the bootstrap adds over plain historical simulation: a more precise estimate and a standard error or confidence interval.
- Watch for distractors that say the bootstrap assumes normality or fixes volatility clustering. Both are wrong.
- For a standard error question, check whether the options differ by using B or B − 1, and follow the question's stated convention.
- When the question asks about limits, mention the dependence on the historical window and the i.i.d. assumption.
Practice questions from Non-parametric Approaches
- A portfolio manager holds a position whose losses in a stress period were far worse than anything in the last 1,000 days of data. She compar…
- A portfolio manager uses age-weighted historical simulation with lambda = 0.95 to compute 95% VaR. After sorting losses from largest to smal…
- A risk analyst replaces equal weighting in a historical simulation with the age-weighted (BRW) approach using a decay factor lambda of 0.98.…
- A bank's 95% one-day historical simulation VaR from the original sample is USD 4.00 million. A bootstrap with many resamples yields a distri…
- A risk analyst estimates the density of daily portfolio returns from 500 historical observations. She replaces the usual histogram with a ke…
Bootstrap Historical Simulation in other exams
The same ground in other exams, if you are preparing for more than one or want another angle on it.
Bootstrap Historical Simulation: frequently asked questions
What is the difference between bootstrap and plain historical simulation?
Plain historical simulation uses the original data once and gives one VaR or ES number. The bootstrap resamples the data with replacement many times and averages the results. It also gives a standard error and confidence interval.
Does the bootstrap assume a normal distribution?
No. It is a non-parametric method and uses the empirical distribution of the observed returns. It does still assume the returns are i.i.d.
Can the bootstrap give a VaR worse than the worst historical loss?
No. Every draw comes from the original observations, so no bootstrap sample contains a loss beyond the worst one observed. Tail estimates are limited by the data you have.
How does the bootstrap help with expected shortfall?
You calculate the ES in each bootstrap sample and average them. This gives a smoother estimate than one pass, and the spread of the ES values gives a measure of its precision.