Monte Carlo Simulation

advertisement
Monte Carlo Simulation
Applications of Monte Carlo methods have increased manifold in the
econometrics literature. In these studies, data are generated using computerbased pseudorandom number generators, i.e., computer programs that generate
sequences of values that appear to be strings of draws from a specified
probability distribution. In fact, these sequences are deterministically generated,
hence the term pseudo-random. A typical algorithm is based on a set of
machine-specific constants and an initial “seed” value. A sequence of seed
values is calculated recursively as a function of the constants, with each
sequence uniquely determined by the initial value. The value of the pseudorandom number itself is calculated by dividing the current value of the seed by
one of the constants commonly referred to as the modulus. If the desired
distribution is something other than the standard uniform, a distribution-specific
transformation is performed.
The following example of a once widely used pseudo-random number generator,
known as a linear congruential generator (LCG), generates a standard uniform
variate, x ~ U[0,1], based on a set of constants {A,B,M}:
0. Initialize seed 0 .
1. Update the seed according to: seed j  Aseed j 1  B (mod M ) .
2. Calculate x j  seed j / M .
3. Move x into memory.
4. Return to step 1.
The modulus function, A mod M, is the integer remainder after A is divided by M.
For example, 11 mod 3=2. The larger is M, the longer “period” before the
sequence begins to repeat itself. The seed sequence is essentially a difference
equation, since given the initial seed, x j is a function of x j 1 . Values for A and M
are typically chosen to avoid a draw of zero for seedj. Dividing the current value
of the seed by M ensures a value for the random variate between zero and one.
For example, suppose the seed is initialized at 1234567 and
{A,B,M}={2,147,483,648,16,807, 2,147,483,655}. The generator will produce
millions of pseudo-random draws from U[0,1] before repeating. The first hundred
values produced by this random number generator are:
Excel MonteCarlo_chart.xls
The pseudo-random number generator is the engine behind Monte Carlo
simulation. For a given model specification and a given set of exogenous inputs,
Monte Carlo simulation can be used to evaluate the risk to the forecast due to
variation in the dependent variable that cannot be explained by the model, as
well as the random variation in the model parameters. By assumption, the model
errors are considered to be draws from a normally distributed random variable
with a mean of zero. For purposes of the simulation, the model parameters are
also considered to be random variables that are distributed as multivariate
normal. The standard deviation of the regression errors, and the means and
standard deviations of the parameter distribution are derived from the regression
analysis.
In order to simulate values for the dependent variable, a random number
generator is used to generate a value for the model error and values for the
parameters from each of the above probability distributions. Based on these
draws and values from the input data set, which for purposes of the simulation is
assumed to be fixed, the model is solved for the dependent variable. This
"experiment" is typically repeated tens or even hundreds of thousands of times,
yielding a similar number of simulated values for each observation of the
dependent variable. The means and standard deviations of these simulated
values can be used to construct a prediction interval and provide the starting
point for creating a density forecast typically portrayed by a fan chart.
Download