Sensitivity Theory

Sensitivity analysis is the systematic investigation of the reaction of the simulation outputs to extreme values of the model’s input.

As opposed to experimental design where more than one variable can be changed at a time, in sensitivity analysis we study the effect of changes in values of one variable (at a time) on an objective function (for example, investigating the effect of changing porosity on cumulative water production for a production horizon of 10 years).

Calculation Methods

Given a set of inputs for a particular equation or model, the process is as follows.

1. Specify a baseline, lower limit, and upper limit for each input.

2. Use the baseline values for all of the inputs and plug them in to the model. Record this value, which gives us the baseline value of the output being investigated.

3. Enter the lower limit for one input and the baseline values for all of the remaining inputs in to the model. Record this value. This value gives us one of the extremes of the output as affected by the particular input.

4. Enter the upper limit for the same input and the baseline values for all of the remaining inputs in to the model. Record this value. This value gives us the other extreme of the output as affected by the particular input.

5. Continue steps 3) and 4) for all remaining inputs.

When step 5) is complete, all of the data has been collected and can be plotted or displayed as desired, such as in a tornado plot or spider plot.

Let us use an example to illustrate this concept. Assume we have a simple model governed by the following equation.

a = x2 + 2y – z

Our investigated output will be a, and our inputs will be x, y, and z. Following step 1) from above, we will define the baseline value, lower limit, and upper limit for each input:

Input Baseline Lower Limit Upper Limit

x

10

5

15

y

20

10

30

z

15

9

21

Next, let us determine the baseline of the output, a:

abaseline = 102 + 2(20) 15 = 125

Next, we will determine the extremes of a as affected by the lower and upper limits of x, y, and z:

axL= 52 + 2(20) 15 = 50

axU = 152 + 2(20) 15 = 250

ayL = 102 + 2(10) 15 = 105

ayU = 102 + 2(30) 15 = 145

azL = 102 + 2(20) 9 = 131

azU = 102 + 2(20) 21 = 119

Now that we have determined all of the extreme outputs as affected by each input, we can populate a table with these values:

Input Baseline Lower Extreme Upper Extreme

 

Values for a

x

125

50

250

y

125

105

145

z

125

119

131

We are now ready to analyze this data by displaying it in either a tornado plot or a spider plot.

Tornado Plots

Traditionally, the results of a sensitivity analysis are illustrated in a tornado plot. A tornado plot is simply a stacked bar chart that displays the range of an investigated output as affected by the variation in each individual input. The various inputs are stacked on the vertical axis, and are sorted based on how strongly they affect the output value; the larger the swing, the more sensitive the output variable is to the variation of the input variable. Using the example generated above (where a = x2 + 2y z), the tornado plot can be seen below.

It becomes immediately evident the value of a is most sensitive— by a large margin— to the variation in x, followed by y and then by z.

Spider Plots

The spider plot is another useful visual tool in observing the sensitivity of an output to its inputs. To build a spider plot, we must first determine the magnitude of the output range (the "sensitivity") affected by each input. Using the example above (where a = x2 + 2y z), let us determine these ranges:

Input Baseline Lower Extreme Upper Extreme Range ("Sensitivity")
 

Values for a

x

125

50

250

200

y

125

105

145

40

z

125

119

131

12

A spider plot consists of as many axes as there are inputs, spaced evenly around the origin. Each axis represents a different input and is scaled exactly the same. The sensitivity of each input is then plotted on its respective axis and are connected by straight lines, creating a sort of "spider-web" effect, which can be seen below:

Plotting the range (or sensitivity) of an output variable in response to the variation in the input variables creates a surface on the spider-web. The bigger the impact of an input variable, the closer the surface is to that input variable’s apex.

A uniquely powerful feature of spider plots compared to tornado plots is their ability to simultaneously show the impact of several inputs on multiple outputs, rather than investigating one output at a time. This is accomplished simply by creating more "webs" on the plot, which can be distinguished based on the color or texture of their lines.

Beginning from the example above, let us introduce a new output parameter, b. Let us assume that b is governed by the following equation:

b = 4x 4y + 3z

Following the same procedure as for a, we come up with the following ranges of b:

Input Baseline Lower Extreme Upper Extreme Range ("Sensitivity")
 

Values for b

x

5

-15

25

40

y

5

-35

45

80

z

5

-13

23

36

Now we can plot the sensitivity of both a and b on a single spider plot to get the following:

With the spider plot, it can be quite easy to see the overall picture of the sensitivity of all outputs to all inputs of a particular model.