# Sensitivity Testing

Often the precise values of model parameters or stocks will not be known. When you build a model, you will use the information available to you to create an estimate for a parameter value, but there will always be some degree of uncertainty in this estimate. Sensitivity analysis allows you to rapidly explore the repercussion of this uncertainty to see how robust your results and findings are to changes in parameter values. Sensitivity testing works by carrying out multiple simulations of your model using different initial values. It then aggregates the results of the simulation and presents a concise report on the potential simulation outcomes.

To use sensitivity testing, replace one or more of the values in your model with random variables. For instance if you had a stock where your best estimate for the initial value was 100 and you determined you could model an estimate for the true initial value using a random variable with a standard deviation of 7, you would set the initial value of the stock to be the following:

RandNormal(100, 7)

You may then run the sensitivity testing analysis algorithm to repeat the simulations many times, each time the value of the stock will take on a different initial value and you may see how the resulting simulation paths change (this is a classic Monte Carlo algorithm). The following is an illustration of the results that can be obtained by carrying out a sensitivity analysis. The regions that contain the densest 50%, 75%, 95% and 100% of simulation results are clearly marked. A table of these same results is also available for export to Excel or other analysis programs.

It is important to know that setting the value of a constant
parameter is not as easy as it is with a stock. If you just place the random
function in the parameter’s equation, the parameter will take on a different
value each time step of each simulation. If you want to have the parameter take
on a constant random value for each simulation, you need to use Insight Maker’s *Fix*
function like so:

Fix(RandNormal(100, 7))

The first parameter to the *Fix* function is the
source function that will be aggregated, the second optional argument is the period of
how frequently to sample from this source (-1 means only sample a single time at
the start of the simulation), and the last value is a unique identifying string
that should be changed each time you use the *Fix* function in your
model.