July 22, 2002  |  Ruth Shaull
9 Comment(s)

Is anyone familiar with something called a tornado plot? Any recommendations on written sources about them?

• Scott Zetlan says:

A quick search for “Tornado plot” on Google turned up this link (a PDF; the second page of the document has an example). Full results can be found here.

Basically, it’s a plot that shows the variability of an outcome (often, net present value calculations) as the result of several factors. Variability is displayed using relative lengths of bars across a range. The factors are listed in order of contribution to the degree of uncertainty of the outcome, resulting in a vaguely tornado-shaped diagram.

Either that, or it’s anything that diagrams the path, activities, or attributes of tornadoes.

• Edward Tufte says:

Sometimes 2-space “statistical confidence” intervals have, I suppose, a dual tornado look. The tornado metaphor does not seem to go beyond a superficial 2-space analogy.

And a tornado, weatherwise, is a beautiful complex twisting moving funnel (in 3-space over time) presumably described by an elaborate set of fluid-dynamics equations. So flatland analogies miss what makes a tornado a tornado.

• Ruth Shaull says:

Thanks for the information. The sensitivity analysis example was the information for which I was looking. (Though I find weather tornados more fascinating.)

• Kent Karnofski says:

These plots are useful for showing a multiple one-way sensitivity analysis; does anybody know how to make one? Matlab, Excel, R?

Thanks,
Kent
.

I’m not a big excel charting expert, but it seems fairly easy to achieve using the stacked-
bars chart type/template.
Playing around a bit with it yielded this result (link to excel file on my website).
I’ve pasted an example taken from the pdf linked in a previous post within the excel file
for comparison.
I’m sure someone with better excel skills can make it loke somewhat decent.

Regards,

Mariano

• Edward Tufte says:

A test of many designs for statistical graphics: show the graphical display and, in parallel, the data matrix behind the graphic. Has the graphic contributed anything compared to the table?

Then compare the data matrix to data tables in the sports page or financial page of a good newspaper. The newspaper tables allow us to see the sorts of performance tables that millions of newspaper readers look at every day.

For small data sets (100 to 300 numbers), quite often tables outperform graphics. Graphics start doing well for immense data sets (see, for good examples, the high-resolution graphics often published in leading scientific journals such as Nature and Science).

• David Tellet says:

The program Crystal Ball is a simulation add-on to Excel and can do the sensitivity analysis and produce tornado charts. It makes some assumptions as to starting points etc, but works well for one dimension (or is it two?). Crystal Ball can go further by producing decision tables showing the influence of two decision variables on an outcome. I find this more informative – often the trends are evident just by looking at the resultant data table.

David

• Robert D. Brown III says:

Tornado plots are *ranked* one-way sensitivity measures of the various uncertainties U that are treated in a decision model on an objective function O for various decision alternatives that are exercised to optimize O.

Suppose one recognizes 2 unique ways to combine decision alternatives (We can call these decision alternative combinations a strategy) in order to create cash flow, and the better of the two strategies will be chosen by the corresponding maximum net present value of
those cash flows (NPV will be the objective function). Furthermore, suppose that 7 uncertainties are recognized that affect the cash flows, and these uncertainties have different distributions according to which strategy is being tested.

Using the following pseudo-code, you can calculate the one-way 80th percentile confidence sensitivity of each uncertainty on the objective function NPV for each strategy chosen.

–Start code

f := {.1,.9} –the 80th percentile fractile set, p10 & p90.

repeat with j from 1 to 2 –a counter for the 2 strategies

–>repeat with i from 1 to 7 –a counter for the 7 uncertainties

—–>repeat with k in f –step through the fractile set

Calculate the p50 of the NPV of cash flow j with uncertainty i set to its kth fractile holding
all other uncertainties at their p50

—–>end repeat

–>end repeat

end repeat

–End code

After you have collected the p50 NPVs for each uncertainty varied as such, rank order the uncertainties by absolute variation of the NPVs within a strategy and graph them as Mariano Belinky demonstrates in his *.xls file. You should always show the tornados of each strategy side-by-side.

The real power of tornado charts is that they clearly demonstrate critical uncertainties. In the tornado charts, critical uncertainties are those that cause the measured value of a strategy for a given uncertainty to overlap the measured value of an alternate strategy for
a another uncertainty. The interpretation of this is that the critical uncertainty is one that could cause regret in choosing one strategy over another. If one recognizes a critical uncertainty, it provides guidance for the decision-maker(s) to determine how much should be spent to gain more information to clearly resolve which strategy to pursue. This is easily determined with a standard value-of-information calculation.

The pseudo-code above is the standard way people in the decision analysis community develop tornado charts, and I think it is the way CrystalBall (a plugin for Excel) and most other DA modeling environments do this. It is a quick and dirty method to gain this
ranked one-way sensitivity measure of uncertainty on objective function. However, you should be aware of a couple of problems with this method and my suggestions for overcoming them.

[1] It is statistically incorrect to operate on the p50s of a distribution. In other words, p50(A) + p50(B) ? p50(A+B) except when then distributions are symmetric. This goes for most other mathematical functions, too, such as multiplication, division, and
exponentiation. One should use the means instead. If there are no correlations or dependencies among the uncertainties use this pseudo-code instead: Calculate the mean of the NPV of cash flow j with uncertainty i set to its kth fractile holding all other uncertainties at their means.

[2] If there are correlations and dependencies among the uncertainties, forcing them to stay at either a p50 or mean while it’s coordinated uncertainty varies from it’s p10 to p90 will almost certainly underestimate the sensitivity of the objective function to its uncertainties. This could cause you to miss critical uncertainties. To avoid this, use this pseudo-code instead: Calculate the mean of the NPV of cash flow j with uncertainty i set to its kth fractile allowing all other uncertainties to float through their correlated sample space.

The only DA modeling environment of which I am aware that will allow this is Analytica (http://www.lumina.com). Analytica is not a spreadsheet nor a plugin for a spreadsheet. It is an object-oriented modeling environment that uses the concepts associated with influence
diagrams to create models. It is much more powerful than spreadsheets (Why would you use spreadsheets anyway? They are the PowerPoint of quantitative analysis. See http://www.lumina.com/ss1/SpreadsheetErrors.htm or most other attempts to use procedural line code for modeling. If anyone is interested in tornado chart code for Analytica, please send me an email, and I’ll send you a sample model file.