FRM Part 1 · Quantitative Analysis · Chapter QTA 13

Many quantities a risk manager needs cannot be worked out with a formula. The expected payoff of a complex option, the loss distribution of a portfolio with hundreds of dependent positions, the accuracy of an estimator in a small sample: these have no clean closed-form answer. Simulation solves them by brute force, generating thousands of artificial scenarios and reading the answer off the results. It is one of the most practical tools in modern risk management, and this chapter covers its two main flavors.
Monte Carlo simulation draws scenarios from a model, a data-generating process the analyst specifies, and averages the outcomes. Bootstrapping does something cleverer: it resamples the real historical data, so it needs no model of the distribution at all. The chapter builds both, shows how to make Monte Carlo more efficient with variance-reduction tricks, and, crucially, is honest about the limits: a simulation is only as good as its assumptions, and a bootstrap is only as good as its data.
Monte Carlo simulation approximates the expected value of a function by generating random scenarios and averaging the results. The idea rests on the Law of Large Numbers: the average of many independent draws converges to the true expected value, so a hard expectation can be estimated simply by simulating it many times. The procedure is a fixed five-step recipe, laid out in Exhibit 1.
| Step | Action |
|---|---|
| 1 | Generate random draws from the assumed data-generating process (DGP) |
| 2 | Apply the function or statistic of interest to each draw |
| 3 | Repeat steps 1 and 2 many times (b replications) |
| 4 | Estimate the quantity of interest (a mean, a quantile) from the results |
| 5 | Assess accuracy with the standard error; increase b if it is too large |
The quantity of interest is usually a moment or a quantile. A moment, such as an expected option payoff, is estimated by the simple average of the simulated function values. A quantile, such as a value at risk, is estimated by sorting the simulated outcomes and reading off the value at the right position. The same simulated draws can answer many questions at once, which is part of why the method is so flexible.
The quantile use is where Monte Carlo earns its keep in risk management. To find a portfolio’s value at risk, an analyst simulates thousands of scenarios for the underlying risk factors, revalues the whole portfolio in each scenario, and then reads the value at risk straight off the sorted distribution of simulated losses. No formula is needed, and the approach handles a portfolio of any complexity, including nonlinear instruments such as options whose losses do not move in a straight line with the factors. This is why simulation, rather than a closed-form formula, is the workhorse behind full-revaluation value at risk for complex books.
where g(xi) is the function evaluated at the i-th simulated draw and b is the number of replications. As b grows, this average converges to the true expected value by the Law of Large Numbers.
A simulation needs a stream of random numbers, but a computer cannot produce true randomness. Instead it uses a pseudo-random number generator, a deterministic algorithm whose output is so hard to predict that it behaves like a random sequence. The generator is started from a seed, and this one detail carries real practical weight: the same seed always reproduces the same sequence.
That reproducibility is a feature, not a bug. It lets a simulation’s results be replicated exactly, which matters for auditing and compliance; it lets two competing models be compared on the same random draws, isolating the difference between the models from the noise of different draws; and in a distributed simulation across many machines, seeding each with the same value ensures they share identical draws of the common risk factors. Generators typically produce uniform values between 0 and 1, which must then be converted into whatever distribution the model needs. The standard conversion is the inverse transform: feed a uniform value into the inverse of the target distribution’s CDF, and out comes a draw from that distribution.
where F−1 is the inverse CDF (the quantile function) of the target distribution F. A uniform value of 0.5 maps to the median, 0.95 to the 95th percentile, and so on, so the uniform draws are stretched into the shape of the target distribution.
A simulation needs draws from a standard normal. The generator produces a uniform value of 0.975. What is the corresponding normal draw?
Step 1. Apply the inverse standard normal CDF to the uniform value.
Answer: a normal draw of about 1.96, since 0.975 is the cumulative probability at the 1.96 standard normal quantile. A uniform of 0.5 would have mapped to 0, and 0.025 to −1.96. The inverse transform simply reads the uniform as a percentile and returns the value at that percentile, which is how a flat stream of uniforms becomes a bell-shaped stream of normals.
Because a simulated estimate is an average of random draws, it is itself a random variable with a standard error. And because the draws are independent, the Central Limit Theorem applies: the simulated average is approximately normal, centered on the true value, with a standard error equal to the draw-to-draw standard deviation divided by the square root of the number of replications.
where σg is the standard deviation of the simulated function values and b the number of replications. The error shrinks with the square root of b, the same slow rate seen for the sample mean, which has a sharp practical consequence.
A Monte Carlo estimate of an option price has a standard error of 0.20 using 10,000 replications. How many replications are needed to cut the standard error to 0.10?
Step 1. The standard error falls with the square root of b, so halving it requires quadrupling b.
Answer: 40,000 replications, four times as many, to halve the error. This square-root law is the central frustration of Monte Carlo: precision is expensive, and each additional digit of accuracy costs a hundredfold more draws. It is exactly why the variance-reduction techniques of the next section matter, they buy accuracy more cheaply than brute force.
Simulation is not only for pricing and moments. It is also the standard way to study how an estimator behaves in a finite sample, where the tidy large-sample results from the Central Limit Theorem may not yet hold. By repeatedly generating a fresh dataset of the relevant size and re-estimating the parameter each time, an analyst builds up the estimator’s actual finite-sample distribution, and can read off its bias, its variance, and its quantiles directly, rather than trusting an asymptotic approximation. This makes simulation a general-purpose microscope for the reliability of any statistical procedure.
Since raw replication is a slow way to buy accuracy, two variance-reduction techniques squeeze more precision from the same number of draws. Both work by injecting a helpful correlation into the simulation.
Antithetic variates generate the random inputs in mirrored pairs: for each uniform draw U, its partner is 1 − U. The two are negatively correlated by construction, and because the variance of a sum falls when its components are negatively correlated, averaging over the pairs gives a more precise estimate than averaging over the same number of independent draws. As a bonus, only half as many uniform draws are needed, since each produces two values. The technique helps when the function being simulated is monotonic, so that a high input and its low mirror produce offsetting outputs.
where ρ is the correlation between the paired outputs. When the pairs are negatively correlated (ρ < 0), the factor √(1 + ρ) is below 1, so the standard error is smaller than the independent-draw case.
A simulation draws a uniform value of 0.30. What is its antithetic partner, and why does pairing them help?
Step 1. The antithetic partner is one minus the draw.
Answer: the partner is 0.70. The two uniforms, 0.30 and 0.70, are on opposite sides of the middle, so when they are transformed into outcomes they tend to land on opposite sides of the mean, and their errors partly cancel. That built-in negative correlation is what lowers the variance of the average, giving more accuracy from the same computational effort.
Control variates take a different route. They add a second variable that is correlated with the quantity being estimated but whose true expected value is known analytically. Because the true answer for the control is known, the error the simulation makes on the control, its simulated value minus its known true value, can be measured, and that measured error is used to correct the estimate of the real target. A good control variate is cheap to compute and highly correlated with the target; the classic example is pricing an exotic option using a similar vanilla option, whose price has a closed-form Black-Scholes-Merton formula, as the control.
| Technique | How it works | Note |
|---|---|---|
| More replications | Increase b | Slow: error falls only as 1/√b |
| Antithetic variates | Mirrored pairs (U, 1−U), negatively correlated | Needs only b/2 draws; helps if g is monotonic |
| Control variates | Correlated variable with a known true mean | Best when the control is cheap and highly correlated |
Bootstrapping is the second flavor of simulation, and it takes a strikingly different approach. Instead of drawing from an assumed distribution, it resamples the observed data itself, drawing observations at random with replacement to build new samples that resemble the original. The name comes from the image of pulling oneself up by one’s own bootstraps: the data are used to simulate more data like themselves.
The advantage over Monte Carlo is decisive and worth stating clearly. Monte Carlo requires the analyst to specify a data-generating process, a full model of the distribution, and any error in that model contaminates the results. Bootstrapping requires no such model. By resampling the actual data, it automatically inherits whatever the true distribution looks like, its fat tails, its skew, its every quirk, without anyone having to describe them. This sidesteps the single biggest risk in Monte Carlo, a mis-specified distribution, which is why the bootstrap is so widely used for estimating value at risk and other tail-sensitive quantities.
An analyst has 6 observed daily returns, in order: 1%, −2%, 0%, 3%, −1%, 2%. Describe how one bootstrap sample of size 6 is created, and note a feature that distinguishes it from the original.
Step 1. Draw 6 observations at random with replacement from the six data points.
One draw might pick positions 4, 1, 4, 6, 2, 4, giving the sample: 3%, 1%, 3%, 2%, −2%, 3%.
Answer: the bootstrap sample reuses some observations (here the 3% appears three times) and omits others (the 0% and −1% never appear). Sampling with replacement is what allows this, and it is the whole mechanism: each resample is a new dataset built entirely from the observed values, so it carries their real distribution without any assumed model.
Two versions are used. The iid bootstrap resamples single observations at random, which is appropriate when the data are independent across time. The circular block bootstrap resamples contiguous blocks of observations rather than single points, which preserves the short-run dependence in the data; the block size is commonly set near the square root of the sample size, and the “circular” part wraps the end of the series back to the start so every observation can begin a block.
Powerful as it is, the bootstrap has clear failure modes, and knowing them is a stated objective. The first is dependent data. The iid bootstrap resamples observations in random order, which destroys any time-ordering, so if the data are serially dependent, through volatility clustering, autocorrelation, or trends, the plain iid bootstrap produces samples that do not behave like the real series. The fix is the block bootstrap, which keeps chunks of consecutive observations together and so preserves the dependence within each block.
The second failure is more fundamental. A bootstrap can only ever resample values that are already in the data. It cannot invent an outcome larger than the largest observed, so if the sample is small, or simply does not contain the kind of extreme event being studied, the bootstrap will systematically miss it. A bootstrap of a calm five-year sample cannot conjure a crash that never happened in those five years. The bootstrap is therefore only as good as the representativeness of its data, and it is weakest exactly where risk management cares most: the rare, severe tail.
Trusting a bootstrapped tail risk from a short, quiet sample. Because the bootstrap can only reshuffle observed outcomes, it will never produce a loss worse than the worst one in the data. A value at risk bootstrapped from a benign period looks reassuringly small precisely because the sample contains no disaster, not because disaster is unlikely. When the tail matters, the length and representativeness of the sample matter more than the resampling method.
The chapter ends with an honest accounting of what simulation cannot do, because a tool this flexible invites overuse. Two disadvantages stand out. Exhibit 3 also sets simulation and bootstrapping side by side.
First and most important, a Monte Carlo simulation is only as good as its data-generating process. Every result flows from the assumed distribution and dynamics, so if those assumptions are wrong, the simulation returns a confident, precise, and entirely misleading answer, garbage in, garbage out. The precision of a simulation, the tight standard error from a million replications, says nothing about whether the underlying model is right. Second, simulation is computationally expensive. Achieving high precision needs many replications, and exploring how a result changes across different assumptions multiplies the cost further. For both reasons the guiding rule is simple: when an exact analytical solution exists, use it; reserve simulation for the problems that genuinely have no closed-form answer.
| Monte Carlo | Bootstrapping | |
|---|---|---|
| Source of draws | An assumed data-generating process | The observed data, resampled with replacement |
| Needs a distribution? | Yes, must be specified | No, inherits the real distribution |
| Main risk | Mis-specified process | Unrepresentative or dependent data |
| Tail events | Can generate beyond the observed range | Cannot exceed the observed extremes |
Simulation and bootstrapping fail in opposite ways, and that is what makes them complementary. Monte Carlo can generate any scenario its model allows, including extremes never seen in history, but it is hostage to the model being right. The bootstrap never assumes a wrong model, but it can only replay what has already happened, so it is blind to unprecedented events. The choice is between the risk of a wrong assumption and the risk of an incomplete history, and a careful analyst weighs which is more dangerous for the problem at hand.
A Monte Carlo estimate has a standard error of 0.40 at 5,000 replications. Roughly how many replications are needed to reduce the standard error to 0.10?
The standard error falls with the square root of the number of replications, so cutting it to a quarter (0.40 to 0.10) requires 4² = 16 times as many replications: 16 × 5,000 = 80,000. Each halving of the error costs a fourfold increase in draws, so a fourfold reduction in error costs a sixteenfold increase. This steep cost is why variance-reduction techniques are worth the trouble.
A pseudo-random generator produces a uniform value of 0.25. Using the inverse transform, what standard normal draw does this correspond to, and what would 0.75 give?
Apply the inverse standard normal CDF. A uniform of 0.25 maps to about −0.67, the 25th percentile of the standard normal, and 0.75 maps to about +0.67, the 75th percentile. The two are mirror images because the normal is symmetric, which incidentally is why 0.25 and its antithetic partner 0.75 make a natural negatively-correlated pair. The inverse transform reads each uniform as a percentile and returns the matching value.
An analyst wants to estimate the loss distribution of a portfolio but is unsure whether returns are normal, Student’s t, or something else. Why might bootstrapping be preferable to Monte Carlo here?
Because bootstrapping does not require choosing a distribution at all. Monte Carlo would force the analyst to pick one, normal, Student’s t, or another, and a wrong choice would distort the whole loss distribution, especially the tails. The bootstrap resamples the actual historical returns, so it inherits their true shape, fat tails and skew included, without any assumption. It sidesteps exactly the specification risk the analyst is unsure about, provided the sample is long and representative enough.
A risk team bootstraps daily returns that show strong volatility clustering, using the plain iid bootstrap. What goes wrong, and what is the fix?
The iid bootstrap resamples single days in random order, which scrambles the time-ordering and destroys the volatility clustering, so the bootstrapped series looks far more well-behaved than the real one and understates the risk of turbulent runs. The fix is the block bootstrap, which resamples contiguous blocks of days rather than single days, keeping stretches of high- or low-volatility observations intact and so preserving the dependence in the data.
A Monte Carlo simulation follows five steps. First, generate a set of random draws from an assumed data-generating process. Second, apply the function or statistic of interest to those draws. Third, repeat the first two steps many times to build up a large collection of results. Fourth, estimate the quantity of interest, such as an average or a quantile, from that collection. Fifth, assess the accuracy by computing the standard error and increase the number of replications if the accuracy is not yet good enough. The method works because the average of many independent draws converges to the true expected value.
The simplest way is to increase the number of replications, but this is slow because the standard error falls only with the square root of the number of replications, so cutting it in half requires four times as many. More efficient are variance-reduction techniques that get more accuracy from the same number of draws. Antithetic variates add a negatively correlated mirror of each draw, and control variates add a correlated variable whose true mean is known analytically. Both shrink the variance of the estimate without simply brute-forcing more replications.
Both are variance-reduction techniques for Monte Carlo simulation. Antithetic variates generate the random inputs in mirrored pairs, using a uniform value and one minus that value, which are negatively correlated; because the variance of a sum falls when its parts are negatively correlated, the estimate is more precise, and only half as many independent draws are needed. Control variates add a second variable that is correlated with the quantity being estimated but whose true expected value is known in closed form; the known answer is used to correct the simulated one, cancelling much of the sampling error. A good control variate is cheap to compute and highly correlated with the target.
Bootstrapping generates simulated samples by resampling the observed data with replacement, rather than drawing from an assumed distribution. Its main advantage over Monte Carlo simulation is that it does not require specifying a data-generating process: it uses the real data directly, so the resampled data automatically inherit the true distribution’s features, including its fat tails, skewness, and other departures from normality, without the analyst having to model them. This sidesteps the biggest risk in Monte Carlo, that a mis-specified distribution produces misleading results.
Computers cannot produce truly random numbers, so they use pseudo-random number generators, deterministic algorithms that produce sequences of numbers that are hard to predict and behave like random ones. A generator is initialized with a starting value called a seed, and the same seed always reproduces the same sequence. This reproducibility is useful: it lets simulation results be replicated exactly, allows different models to be compared on the same random draws, and lets separate computers in a distributed simulation share the same random common factors by using the same seed. Generators typically produce uniform values, which are then transformed into other distributions.
The plain iid bootstrap fails when the data are dependent over time, because resampling single observations at random destroys the ordering and any serial dependence, such as volatility clustering; a block bootstrap that resamples contiguous blocks is needed instead. Bootstrapping also struggles when the sample is small or does not contain the extreme events of interest, because it can only reproduce values that are already in the data, so it cannot generate a crash larger than any in the observed sample. In short, the bootstrap is only as good as the representativeness of the data it resamples.
Simulation has two main drawbacks. First and most important, its results depend entirely on the assumed data-generating process; if the specified distribution or dynamics do not match reality, the simulation produces confident but unreliable answers, a garbage-in, garbage-out problem. Second, simulation is computationally expensive, especially when many replications are needed for precision or when the sensitivity of a result to different assumptions must be explored. For these reasons, an exact analytical solution should be preferred whenever one is available, and simulation reserved for problems that have no closed-form answer.
Loading comments...
Add your Thoughts: