# st: RE: Is it possible to create tornado diagrams in Stata?

 From "Forshee, Richard" To Subject st: RE: Is it possible to create tornado diagrams in Stata? Date Wed, 8 Apr 2009 18:05:03 -0400

```My apologies for the blank message.

Here is how I created a tornado diagram for a recent public
presentation.

clear

input input low high mean
1 1.6	2.2	1.9
2 1.5	2.3	1.9
5 2.9	0.01	1.9
3 1.0	2.9	1.9
4 0.5	3.2	1.9
end

label var input "Input"
label var low "Low value"
label var high "High value"
label var mean "Mean"

label define inputlbl ///
1 "Annual Donations in U.S." 2 "Seroprevalence" ///
5 "Sensitivity of Test" 3 "Exposures per Donation" 4
"Probability of Transmission"
label val input inputlbl

gen sens = high-low
sort sens

local ml1 = (2.2+1.9)/2
local mh1 = (1.6+1.9)/2
local ml2 = (2.3+1.9)/2
local mh2 = (1.5+1.9)/2
local ml3 = (2.9+1.9)/2
local mh3 = (1.0+1.9)/2
local ml4 = (3.2+1.9)/2
local mh4 = (0.5+1.9)/2
local ml5 = (2.9+1.9)/2
local mh5 = (0+1.9)/2

twoway ///
(rbar low mean input, horizontal) ///
(rbar mean high input, horizontal), ///
ylabel(, val angle(horizontal)) xsize(7.1) ysize(5.2) scheme(sj)
///
xtitle(" " "Predicted Cases of Transfusion-Transmitted T.
Cruzi") ///
title("Sensitivity of Results to Inputs") subtitle("Test Once
Scenario") ///
legend(label(1 "Low Input Values") label(2 "High Input Values")
rows(2)) ///
text(5 `ml5' "93.5%", box j(center)  margin(l+1 r+1 t+1 b+1)
fcolor(white) lcolor(white)) ///
text(5 `mh5' "99.99%", box j(center)  margin(l+1 r+1 t+1 b+1)
fcolor(white) lcolor(white)) ///
text(4 `ml4' "5%", box j(center)  margin(l+1 r+1 t+1 b+1)
fcolor(white) lcolor(white)) ///
text(4 `mh4' "0.8%", box j(center)  margin(l+1 r+1 t+1 b+1)
fcolor(white) lcolor(white)) ///
text(3 `ml3' "3", box j(center)  margin(l+1 r+1 t+1 b+1)
fcolor(white) lcolor(white)) ///
text(3 `mh3' "1", box j(center)  margin(l+1 r+1 t+1 b+1)
fcolor(white) lcolor(white)) ///
text(2 1.4 "1:28,600", box  margin(l+1 r+1 t+1 b+1)
fcolor(white) lcolor(white)placement(9) j(right)) ///
text(2 2.4 "1:18,200", box  margin(l+1 r+1 t+1 b+1)
fcolor(white) lcolor(white)placement(3) j(left)) ///
text(1 1.5 "13.4 million", box  margin(l+1 r+1 t+1 b+1)
fcolor(white) lcolor(white)placement(9) j(right)) ///
text(1 2.4 "19 million", box  margin(l+1 r+1 t+1 b+1)
fcolor(white) lcolor(white)placement(3) j(left))

Richard A. Forshee, Ph.D.
Senior Risk Assessment Expert
Office of Biostatistics & Epidemiology
FDA - Center for Biologics Evaluation and Research
1401 Rockville Pike HFM-210
Rockville, MD 20852

Phone: (301) 827-6042
Fax:     (301) 827-3529
E-mail: Richard.Forshee@fda.hhs.gov

-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu
[mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of Eldon
Spackman
Sent: Wednesday, April 08, 2009 4:48 PM
To: statalist@hsphsun2.harvard.edu
Subject: st: Is it possible to create tornado diagrams in Stata?

I am undertaking a one-way sensitivity analysis and would like to report
the effect of an input range on the result.  I have a table of a range
in results for each input and would like to display this graphically
using a tornado diagram.  Any suggestions of how this might be

Thanks.

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```