Sensitivity Analysis
Sensitivity Analysis
When we build a model we simplify the system studied, representing it by another system - the model.
In most cases, we do it by hypothesizing something about how individual processes and pieces of the
real system work, and then connecting these descriptions within a certain formalism - a mathematical
model in the case of computer simulations done with Stella or the like. While we have some confidence
in how we described the processes and pieces, we can only vaguely imagine how these elements will
operate when put all together. Therefore, the first thing we want to do is look at the whole's performance.
Usually, there are also some unknowns that we had to estimate or approximate when we put together
our model. We may not be quite sure about the rate of certain processes we describe by the parameters
in the model. We may not know the processes and how they may change in time or in response to
other factors. We may not know what are the exact initial conditions where we start our simulation. How
do all these uncertainties impact the overall model performance? What are the most crucial factors,
and which ones have only a marginal effect on the model output? This is the type of questions we
answer doing a sensitivity analysis of the model.
In most cases, the most straightforward way to check model sensitivity is to start changing some
element in the model and see how that affects model performance. For example, in Stella, there is a
built-in sensitivity analysis function. In the Run menu choose Sensi Specs.... This will open a dialogue
box:
Here you can choose the parameters and initial conditions that you wish to consider. Every Stella icon
(Stock, Flow, or Parameter) that is presented by a numeric value is offered on the left-hand side, and
you choose the subset you wish to analyze. For each of the chosen parameters, you should then specify
the numeric values that it will take on in the model run. There are three different ways to define the set
of parameter values that you wish to analyze.
The simplest one is the Incremental type of
variation. In this case you specify the number of
runs, the minimal, and the maximal values. The
values chosen are then evenly spaced over the
given range of the change. Once the SET button is
pressed the calculated values of parameters are
displayed in the right-hand list.
Once the parameters are specified you can start the simulation. Make sure that the Sensitivity On box
is checked before your press the OK button. If you now run the model it will go through multiple runs
for the different parameters chosen. To see the difference in the model output it is best to set the graphic
up as a comparative one.
Note that if you chose several parameters for the sensitivity test, you will not see the model go through
all the combinations of parameter values. Instead you will get only the number of runs that you specified,
the first run will be for the first value for all the chosen parameters, the second one will be for the second
value, and so on. This might be somewhat confusing and does not really tell you much about the
influence of individual parameters. In most cases it makes more sense to test the parameters one by
one to figure out how each of them affect the model performance. However it should be also noted that
changes in several parameters at the same time can result in dramatically different model variations
than one would expect watching the effect of changes in individual parameters. This synergetic effect
of parameters should not be overlooked, however a full sensitivity analysis requires testing for all kind
of combinations in parameter values which implies so many model runs that they are usually prohibitive
to perform.
To a certain extent Madonna can help analyze sensitivity to multiple parameters if you use its sliders
function. The sliders in Madonna are so much more useful than in Stella, because Madonna is so much
faster than Stella and reruns the model almost "on the fly" as you move the slider. As a result you can
almost see how the output changes as you move the sliders. It is easy to set up several of these sliders,
each for a different parameter and then start playing with them in all sorts of combinations, watching
how the model performance will change. Still, this can give you only an approximate idea about model
sensitivity to changes in multiple parameters. The full sensitivity analysis requires some special
programs that are unlikely to be implemented within the framework of the modeling software packages
like Stella.