I confess that Monte Carlo methods confused and to a certain extent intimidated me for a long time. It was one of the last modeling techniques I ever learned because of this reason. I do not think I was alone, either. I think this is because of the way we often discuss Monte Carlo.
Why We Make Monte Carlo Simulations Sound Difficult
It’s human nature to occasionally give a bit of exaggerated importance to skills and knowledge you have that others may not. Likewise we sometimes make things sound more difficult or complicated than is necessary. Just about everyone does it from time to time – I’m certainly guilty as well.
I think a result of this is that for many people, Monte Carlo analysis is first explained using either overly complicated models or models that should be simple but are designed in a convoluted manner. Or, its just explained by someone who doesn’t understand the method very well themselves, even if they honestly believe otherwise.
I consider myself a novice in this area – and that is not a statement made out of humility. There is so much I have not done.
Monte Carlo has been applied in almost every quantitative field. You can estimate Pi with it. You can use it across the field of engineering. You can model investment risks with it. You can model investment returns with it. You can use it to help study nuclear weapons and radiation shielding (this is the application that gave rise to the first Monte Carlo simulations, courtesy of Stanislaw Ulam who was working at Los Alamos at the time). You can design more convincing artificial intelligence in video games. You can create one using just a few lines of code in almost any higher level programming language – or create one that is literally thousands of lines long. You can look at one parameter, or hundreds, thousands. You can run a hundred simulations, or a thousand, or a million.
It is an incredibly useful technique. For this reason it is often applied to topics that are fairly complicated and thus require the power of Monte Carlo. The concept of Monte Carlo simulation itself however, is not complicated. When distilled into a basic form, it’s really quite simple.
My point is that Monte Carlo simulations are like any other modeling concept we will discuss here at the 440 knowledge base – it can be as simple or as complicated as you want it to be. I will endeavor to write about MC in such a way that every step of every simulation I demonstrate is clear enough that anyone – from any professional or academic background – could understand the method and reproduce it. I will constantly return to these articles to revise for clarity, add additional examples, and link to other online resources that explain the concepts as well as I do or better.
Monte Carlo simulations are similar in some ways to more common “what-if” analysis. The notable difference is that they are stochastic or pseudo-stochastic. Stochastic just means something that is randomly determined. What-if analysis, such as data tables in excel, provide us with the outputs of our model assuming a series of changes. Consider an equation for the slope of a line: y = 2x+1
A what-if if analysis might begin with a list of X values and give us the corresponding Y value for each value of X. If X is equal to one, then the equation will return a Y value of three. If X is zero, Y will be equal to one.
Monte Carlo would likewise be looking at possible results for our Y value, but instead of using a user defined list of X values it would use some form of random or pseudo-random process to select X values. In both cases, we’re testing our model to see what happens when we change an input variable, the variable X.
Monte Carlo’s main advantage is that since it is stochastic, we can use random number generators that may adhere to certain guidelines or characteristics. We can then run many, many simulations – and from all of those simulations we can get a pretty good idea about what outcomes are likely, and quantify that likelihood.
All we need to begin to design a Monte Carlo simulation is the following:
- Some function or process that takes an input(s) and creates an output
- A range or series of possible or likely values for the input(s)
- A pretty visualization
Number three is technically not required but I’m leaving it there anyway. A pretty visualization is important for sharing the results of a Monte Carlo. By the way, when I say a chart or table is pretty, I mean that it easily communicates information to its audience and is easy on the eyes.
Let’s work with a simple example. We’ll try a couple of approaches without truly using a Monte Carlo simulation first, then we’ll do a simple version of the real thing to illustrate the value it adds to an analysis. See Part II.