Monte Carlo Simulation

What Is a Monte Carlo Simulation?

Monte Carlo simulations are used to model the probability of different outcomes in a process that cannot easily be predicted due to the intervention of random variables. It is a technique used to understand the impact of risk and uncertainty in prediction and forecasting models.

A Monte Carlo simulation can be used to tackle a range of problems in virtually every field such as finance, engineering, supply chain, and science. It is also referred to as a multiple probability simulation.

Key Takeaways

  • A Monte Carlo simulation is a model used to predict the probability of different outcomes when the intervention of random variables is present.
  • Monte Carlo simulations help to explain the impact of risk and uncertainty in prediction and forecasting models.
  • A variety of fields utilize Monte Carlo simulations, including finance, engineering, supply chain, and science.
  • The basis of a Monte Carlo simulation involves assigning multiple values to an uncertain variable to achieve multiple results and then averaging the results to obtain an estimate.
  • Monte Carlo simulations assume perfectly efficient markets.

Monte Carlo Simulation

Understanding Monte Carlo Simulations

When faced with significant uncertainty in the process of making a forecast or estimation, rather than just replacing the uncertain variable with a single average number, the Monte Carlo Simulation might prove to be a better solution by using multiple values.

Since business and finance are plagued by random variables, Monte Carlo simulations have a vast array of potential applications in these fields. They are used to estimate the probability of cost overruns in large projects and the likelihood that an asset price will move in a certain way.

Telecoms use them to assess network performance in different scenarios, helping them to optimize the network. Analysts use them to assess the risk that an entity will default, and to analyze derivatives such as options.

Insurers and oil well drillers also use them. Monte Carlo simulations have countless applications outside of business and finance, such as in meteorology, astronomy, and particle physics.

Monte Carlo Simulation History

Monte Carlo simulations are named after the popular gambling destination in Monaco, since chance and random outcomes are central to the modeling technique, much as they are to games like roulette, dice, and slot machines.

The technique was first developed by Stanislaw Ulam, a mathematician who worked on the Manhattan Project. After the war, while recovering from brain surgery, Ulam entertained himself by playing countless games of solitaire. He became interested in plotting the outcome of each of these games in order to observe their distribution and determine the probability of winning. After he shared his idea with John Von Neumann, the two collaborated to develop the Monte Carlo simulation.

Monte Carlo Simulation Method

The basis of a Monte Carlo simulation is that the probability of varying outcomes cannot be determined because of random variable interference. Therefore, a Monte Carlo simulation focuses on constantly repeating random samples to achieve certain results.

A Monte Carlo simulation takes the variable that has uncertainty and assigns it a random value. The model is then run and a result is provided. This process is repeated again and again while assigning the variable in question with many different values. Once the simulation is complete, the results are averaged together to provide an estimate.

Calculating a Monte Carlo Simulation in Excel

One way to employ a Monte Carlo simulation is to model possible movements of asset prices using Excel or a similar program. There are two components to an asset's price movement: drift, which is a constant directional movement, and a random input, which represents market volatility.

By analyzing historical price data, you can determine the drift, standard deviation, variance, and average price movement of a security. These are the building blocks of a Monte Carlo simulation.

To project one possible price trajectory, use the historical price data of the asset to generate a series of periodic daily returns using the natural logarithm (note that this equation differs from the usual percentage change formula):

Periodic Daily Return = l n ( Day’s Price Previous Day’s Price ) \begin{aligned} &\text{Periodic Daily Return} = ln \left ( \frac{ \text{Day's Price} }{ \text{Previous Day's Price} } \right ) \\ \end{aligned} Periodic Daily Return=ln(Previous Day’s PriceDay’s Price)

Next use the AVERAGE, STDEV.P, and VAR.P functions on the entire resulting series to obtain the average daily return, standard deviation, and variance inputs, respectively. The drift is equal to:

Drift = Average Daily Return Variance 2 where: Average Daily Return = Produced from Excel’s AVERAGE function from periodic daily returns series Variance = Produced from Excel’s VAR.P function from periodic daily returns series \begin{aligned} &\text{Drift} = \text{Average Daily Return} - \frac{ \text{Variance} }{ 2 } \\ &\textbf{where:} \\ &\text{Average Daily Return} = \text{Produced from Excel's} \\ &\text{AVERAGE function from periodic daily returns series} \\ &\text{Variance} = \text{Produced from Excel's} \\ &\text{VAR.P function from periodic daily returns series} \\ \end{aligned} Drift=Average Daily Return2Variancewhere:Average Daily Return=Produced from Excel’sAVERAGE function from periodic daily returns seriesVariance=Produced from Excel’sVAR.P function from periodic daily returns series

Alternatively, drift can be set to 0; this choice reflects a certain theoretical orientation, but the difference will not be huge, at least for shorter time frames.

Next, obtain a random input:

Random Value = σ × NORMSINV(RAND()) where: σ = Standard deviation, produced from Excel’s STDEV.P function from periodic daily returns series NORMSINV and RAND = Excel functions \begin{aligned} &\text{Random Value} = \sigma \times \text{NORMSINV(RAND())} \\ &\textbf{where:} \\ &\sigma = \text{Standard deviation, produced from Excel's} \\ &\text{STDEV.P function from periodic daily returns series} \\ &\text{NORMSINV and RAND} = \text{Excel functions} \\ \end{aligned} Random Value=σ×NORMSINV(RAND())where:σ=Standard deviation, produced from Excel’sSTDEV.P function from periodic daily returns seriesNORMSINV and RAND=Excel functions

The equation for the following day's price is:

Next Day’s Price = Today’s Price × e ( Drift + Random Value ) \begin{aligned} &\text{Next Day's Price} = \text{Today's Price} \times e^{ ( \text{Drift} + \text{Random Value} ) }\\ \end{aligned} Next Day’s Price=Today’s Price×e(Drift+Random Value)

To take e to a given power in Excel, use the EXP function: EXP(x). Repeat this calculation the desired number of times (each repetition represents one day) to obtain a simulation of future price movement. By generating an arbitrary number of simulations, you can assess the probability that a security's price will follow a given trajectory.

Special Considerations

The frequencies of different outcomes generated by this simulation will form a normal distribution, that is, a bell curve. The most likely return is in the middle of the curve, meaning there is an equal chance that the actual return will be higher or lower than that value.

The probability that the actual return will be within one standard deviation of the most probable ("expected") rate is 68%, while the probability that it will be within two standard deviations is 95%, and that it will be within three standard deviations 99.7%. Still, there is no guarantee that the most expected outcome will occur, or that actual movements will not exceed the wildest projections.

Crucially, Monte Carlo simulations ignore everything that is not built into the price movement (macro trends, company leadership, hype, cyclical factors); in other words, they assume perfectly efficient markets.