How to Carry Out

Systematic Sensitivity Analysis via

Gaussian Quadrature and GEMPACK

Channing Arndt and K. R. Pearson

GTAP Technical Paper No. 3

April, 1998

Channing Arndt, Department of Agricultural Economics, Purdue University, 1145 Krannert Building, West 

Lafayette IN, 47907-1145, USA. Email: arndt@agecon.purdue.edu

Ken Pearson, Centre of Policy Studies and Impact Project, Monash University, Clayton Vic 3168, Australia and 

Department of Mathematics, La Trobe University. Email: Ken.Pearson@BusEco.monash.edu.au

GTAP stands for the Global Trade Analysis Project which is administered by the Center for Global Trade 

Analysis, Purdue University, West Lafayette, Indiana, USA 47907-1145. For more information about GTAP, 

please refer to our Worldwide Web site at: http://www.agecon.purdue.edu/gtap/, or send a request to 

conner@agecon.purdue.edu
How to Carry Out

Systematic Sensitivity Analysis via

Gaussian Quadrature and GEMPACK

Channing Arndt and K. R. Pearson

GTAP Technical Paper No. 3

Abstract

In economic simulation, results often hinge crucially on values of key exogenous inputs (the 

values of the parameters of the model and the shocks applied). Computational burden has, 

in the past, hindered systematic investigation of the impacts of variations in these key 

exogenous inputs. In this document, practical methods for conducting systematic sensitivity 

analysis for any model implemented using the GEMPACK suite of software are

documented.

The procedures described here are based on GTAP Technical Paper number 2 which sets 

out the theory behind the Gaussian quadrature methods on which the automated procedure 

is based. The procedures allow modellers to obtain estimates of the means and standard 

deviations of any endogenous variables of their model. The model only needs to be solved a 

relatively modest number of times (usually only 2N times if N exogenous inputs are

varying); this is considerably fewer than the number of solves required by Monte Carlo 

methods. The procedure documented here fully automates solving the model as often as is 

necessary; once the user sets it up and starts it running, no further intervention is required. 

The document spells out the assumptions which must be made about the distribution of the 

exogenous inputs for the methods described to be valid.

Five examples of systematic sensitivity computations are presented and the accompanying 

software allows modellers to work through these examples while reading the document. 

This should leave readers fully prepared to analyse the sensitivity of results for any model 

implemented in GEMPACK. 
ii

Table of Contents

1. Introduction 1

1.1 Motivation 1

1.2 Basic Steps 2

1.3 Overview of this document 3

1.4 On What Machines Can This Procedure Be Used? 4

2. Illustrative Examples 5

2.1 Example A - SSA for Parameters 5

Examples A1 and A2 - Varying ESUBVA by sector 5

Example A3 - Varying ESUBVA by Region and Also Varying ESUBD 6

2.2 Example B - SSA for Shocks 6

2.3 Doing SSA for These Examples 6

3. SSA When Parameters are Varying 7

What You Need to Prepare 7

3.1 Modifying the TABLO Input File 7

Example A3 8

3.2 How to Carry Out the Calculations 9

Example 9

Examples A1 and A2 10

3.3 Preparing Parameter Values Files 10

3.4 The Command file P3.CMF 11

Examples A1 and A2 12
iii

3.5 Output Files Containing Sensitivity Results 13

4. SSA When Shocks are Varying 14

4.1 Which Data to Base Shock SSA Calculations On 14

Example 15

Results Easier to Interpret When SSA is Based on Pre-simulation Data 16

Running SSA as Deviations May Be Quicker 16

4.2 Examples B1 and B2 16

4.3 What You Need to Prepare 17

4.4 How to Carry Out the Calculations 17

Example 18

4.5 Preparing Shock Values Files 18

4.6 The Command file P3.CMF 18

Which Data to Start from 19

Solution and Log files 19

Shocks 20

4.7 Output Files Containing Sensitivity Results 20

4.8 Interpreting Shock SSA Results 21

Examples B1 and B2 21

5. How to Create Master Parameter Values and Master Shock Values Files 22

5.1 Syntax of Parameter and Shock Values Files Input to SAWMF 23

5.2 Example of Parameter Values files for SAWMF 25

Examples A1 and A2 25

Example A3 26

5.3 Example of Shock Values files for SAWMF 27

Examples B1 and B2 27
iv

Restriction on SAWMF in deviation shocks case 28

5.4 How Many Solves? 28

5.5 An Example of a Master Parameter Values File 29

5.6 Syntax of Master Parameter Values File 30

Example of Start of Master Parameter Values File 30

5.7 Syntax of Master Shock Values File 31

6. Correspondence Between Percent-Change SSA Results and Levels 34

Mean when percentage changes in X are calculated by GEMPACK 34

Mean when changes in X are calculated by GEMPACK 35

Standard Deviation when percentage changes in X are calculated by GEMPACK 35

Standard Deviation when changes in X are calculated by GEMPACK 36

7. Installing and Using the Associated Files 38

8. References 39

Appendix 1. The Steps for SSA when Parameters Vary 40

Appendix 2. The Steps for SSA when Shocks Vary 43
How to Carry Out Systematic Sensitivity 

Analysis via Gaussian Quadrature and 

GEMPACK

1. Introduction

This document tells you how you can use the automated systematic sensitivity analysis procedure 

developed for use with GEMPACK. The procedure was developed for applications with the 

GTAP model. However, it is fully general; the following discussion applies for any model developed 

in GEMPACK. 

This introductory section is structured as follows. Firstly, we present the motivation for conducting 

systematic sensitivity analysis. Secondly, we give an overview of the basic steps involved in

conducting systematic sensitivity analysis (SSA). Finally, we give an overview of the rest of this 

document.

Special thanks go to Paul Preckel and Eric DeVuyst whose work in the area of numerical integration 

and its application to economic problems [see DeVuyst and Preckel (1997)] made this paper

possible. We are also grateful to Tom Hertel for helpful discussions about various parts of the 

topics in this paper and to Jill Harrison for valuable feedback on a preliminary version of this paper 

and for pointing out the need for Appendices 1 and 2.

1.1 Motivation

In economic simulation, results often hinge on values for key exogenous parameters. The values of 

these parameters are often not known precisely (for example, they may have been econometrically 

estimated) and we wish to know how variations in the values of these parameters affect model 

results. For example, in the GTAP model, an analysis of the impacts of technical change in the 

manufacturing sector in Japan on U.S. real wage rates found that, for some values of substitution 

parameters between the components of value added, the impact was positive while, for other values 

of the substitution parameters, the impact was negative. [See Arndt and Hertel (forthcoming) for 

details.]

Model results may also depend on the values of shocks to exogenous variables. These shocks may 

not be known precisely (for example, they may involve educated guesses about the future). In such a 

case, we wish to know how variations in these shocks affect model results. For example, in

projection scenarios to the year 2005, varying rates of TFP growth for all regions had limited impact 

on growth in Chinese exports of light manufactures. The growth in light manufactures production 
2

and exports in China was, however, significantly affected by the relative rate of accumulation in labor 

and capital in China and in the rest of the world economy. (See Arndt PhD Dissertation (1996a) for 

details.)

The moral from these two tales is that, if critical exogenous inputs (parameters or shocks) in a model 

are uncertain, then they should be modelled as such. Results might hinge critically on the values for 

key exogenous inputs or they might prove robust to most reasonable combinations of these inputs. 

The automated procedure discussed below renders practical systematic analysis with respect to key 

exogenous parameters or shocks.

1.2 Basic Steps

There are three basic steps in conducting systematic sensitivity analysis using the methodology

described here.

1) Develop distributions for the key exogenous inputs.

2) Develop discrete approximations to the above distributions.

3) Solve the model for each point in the discrete distribution and weight the results appropriately.

The weighted sum of results from each solve provides a good approximation to the mean of model 

results. The weighted sum of the square of the difference between results from individual model 

evaluations and mean results approximates the variance.

When you use the method described here to carry out systematic sensitivity analysis, you can obtain 

estimates of the mean and standard deviation for every one of the endogenous variables of your 

model. For example, you may find that, for plausible variations in certain parameters of your model, 

the percentage change in the output of food in USA and the EU have mean values of 3.5 and 0.5 

respectively and standard deviations of 0.2 and 0.7 respectively. In such a case you would feel quite 

confident of the USA result (certainly confident that it is positive) but less confident of the EU result 

(not being even confident of the sign).

The automated procedure documented here allows you to compute the means and standard

deviations with only a relatively modest number of solves of the model. If you vary the values of N 

parameters or N shocks, you usually only need to solve the model 2N times. (For example, to see 

the effects of varying the values of 5 different parameters, you usually only need to solve the model 

10 times.) This number of solves is considerably fewer than for other methods. [For example, 

Monte Carlo methods require you to solve the model hundreds or thousands of times - see Arndt 

(1996b).] The procedure documented here fully automates solving the model as often as is required. 
3

You set it up (following the instructions in this document) and start it running; you do not need to 

intervene at all after that.

As the analyst, you are responsible for developing a distribution for key exogenous inputs. For 

instance, parameters estimated econometrically have associated variance (and potentially

covariance) estimates. You might assume that the estimated parameter values and their associated 

variance/covariance matrix describe the first two moments of the distribution for the parameter 

value. Alternatively, you might impose a distribution, such as normal or triangular. Or, if numerous 

observations on the exogenous parameters exist, means, variances, and higher order moments might 

be estimated directly.

An automated GEMPACK procedure for drawing order three discrete approximations to the above 

distributions in the independent symmetric case exists. These discrete approximations are called 

quadratures. Dependence amongst random exogenous parameters can be treated rather easily

though that procedure is not automated. If the distributions are asymmetric or you wish a higher 

order approximation, alternative means for obtaining the discrete approximation exist - see Arndt 

(1996b). However, they are computationally burdensome and not currently amenable to

automation.

Specifically, the procedures documented here use the Gaussian quadratures given by Stroud (1957) 

and Liu (1996). See Arndt (1996b) for an introduction to these.

We highlight again that the automated procedure described here produces only approximations to 

the true mean and standard deviation of model results. In general, the procedure produces no 

estimate of the accuracy of these approximations. However, as discussed in Arndt (1996b), the 

results are often surprisingly accurate, given the relatively modest number of times the model is 

solved.

1.3 Overview Of This Document

In section 2 we introduce some examples of SSA. Included are examples of SSA with respect to 

behavioural parameters and of SSA with respect to shocks. We refer to these examples in later 

sections to illustrate various points. In particular, once you have installed the software associated 

with this automated SSA procedure on your PC (section 7 has instructions), you can work through 

these examples yourself as you read through this document.

In section 3, we tell you how to carry out SSA when the values of model parameters are varied. An 

example of this would be viewing values for Armington trade parameters as random. 
4

In section 4, we tell you how to carry out SSA when the values of shocks are varied. An example of 

this would be viewing rates of capital accumulation in a projections scenario as random inputs.

Section 5 tells you how to use the automated procedure for producing an order 3 discrete

approximation to the distribution of your exogenous inputs (parameters or shocks). In particular, 

this tells you how to run the program which converts means and standard deviations into the different 

inputs for the different solves of the model required to calculate the sensitivity results. The procedure 

only works when your parameters or shocks are distributed in certain ways, as spelled out in section 

5.

Section 6 is a more technical section which explains the correspondence between percentage 

changes, the typical GEMPACK output, and means and standard deviations in the levels.

Section 7 describes the PC files distributed in association with this procedure and how to install and 

use them on your PC. These files are the ones you will use when you carry out this procedure for 

one of your applications.

Section 8 contains references.

Appendix 1 sets out the steps (and their order) for SSA when parameters vary. Appendix 2 

contains the same information when shocks vary. These appendices are intended to be the “how to 

do it” guides. When you are ready to carry out SSA yourself, we suggest that you being with the 

relevant appendix and follow the steps set out there. These will refer you back into the relevant 

parts of the main document.

1.4 On What Machines Can This Procedure Be Used?

The automation provided in the files in SSA.ZIP which are associated with this document are 

designed to be used on 80386/80486/pentium PCs which have the DOS-Lahey source-code or 

executable-image version of Release 5.1 or later of GEMPACK installed. Instructions for installing 

and using the files and software associated with this automated SSA procedure are given in section 

7.

In principle, the procedures described here could easily be carried out on any other computer which 

has a source-code version of GEMPACK installed but, at present, no fully automatic version of 

these procedures has been developed for other machines.
5

2. Illustrative Examples

The automated procedure documented here allows you to vary several parameters or to vary

several shocks, but it does not allow you to vary both parameters and shocks at the same time.

We carry through this document two main examples of this procedure, as described below. The first 

example illustrates the case where we want to know sensitivity of the results with respect to changes 

in some of the parameters. The second example illustrates the case where we want to know 

sensitivity with respect to the shocks.

2.1 Example A - SSA For Parameters

This example is taken from Arndt and Hertel (1996) which reports sensitivity of a simulation with 

respect to changes in the values of the parameters which determine substitution between the factors 

of production. The model is GTAP and the data base is version 2 of the GTAP data with all regions 

except USA and Japan aggregated into ROW and with the commodities aggregated to just two 

sectors, namely "manufacturing" (containing all manufacturing sectors including minerals and mining) 

and "services" (which contains all other sectors including agricultural goods). In each of these two 

sectors, labor and capital are combined to produce a value-added aggregate. Their substitutability is 

governed by the CES parameter called ESUBVA in the standard GTAP94.TAB TABLO Input file 

for the model. Capital is a sluggish factor with a very small elasticity of transformation. Hence, in the 

applications, capital is essentially sector specific. The simulation in question considers the impact of 

Hick's Neutral technical change in Japanese manufactures on the US real wage. In the original 

simulation a one-percent productivity-enhancing technical change is given to the Japanese

manufacturing sector.

Examples A1 and A2 - Varying ESUBVA By Sector

In each sector the relevant parameter is assumed to vary following a symmetric triangular distribution 

with mean value taken from that in the aggregated GTAP data for this 3-region, 2-commodity model 

and with minimum value 0.1. The mean values, minimum and maximum values are thus as shown 

below. [Because the distribution is assumed to be symmetric, the maximum is as far above the mean 

as the minimum is below it.]

Sector Minimum value Mean value Maximum value

Manufacturing 0.1 1.22 2.34

Services 0.1 1.33 2.56
6

This is essentially the same distribution assumed for these parameters in Arndt and Hertel (1996). In 

the sections below, we show you how to compute SSA results in this case using the two alternative

quadratures (Stroud's and Liu's - see section 5) made available in this automated procedure. We 

call these Examples A1 and A2 respectively. Arndt and Hertel employed a Liu quadrature in their 

analysis.

Example A3 - Varying ESUBVA By Region And Also Varying ESUBD

We also carry through a variation of the above example in which we allow ESUBVA to vary by 

region (as well as sector) and in which the parameter called ESUBD in GTAP94.TAB is allowed to 

vary for the two traded commodities manufactures and services. [ESUBD is the Armington

parameter determining substitutability between domestic and imported commodities.]

Note that in the standard GTAP model ESUBVA varies only by sector and not by region. Thus, 

allowing ESUBVA to vary by region requires appropriate modification of GTAP94.TAB.

In the rest of this document we show how you can carry through these examples to calculate and 

report mean and standard deviations for the various endogenous variables of interest in this

simulation.

2.2 Example B - SSA For Shocks

We also carry through an example of SSA calculations with respect to variations in shocks. We take 

the same model as in Example A above, and consider a simulation whose shocks are positive 

technical change in the manufactures sector in all 3 regions (USA, Japan and ROW). In this example 

B, we show you how to calculate SSA results for variations in the sizes of these shocks. We show 

you how to carry out these calculations in two ways (to be described later in section 4.2) which we 

call Examples B1 and B2 respectively.

2.3 Doing SSA For These Examples

The necessary files for carrying out these examples are provided with the files for automating this 

SSA procedure. The files for Examples A1, A2, A3, B1 and B2 are in PKZIP file SSA-EX.ZIP 

and files DO-EXA.TXT and DO-EXB.TXT contain detailed instructions for these.

We encourage you to carry out at least some of these examples before you try your own SSA 

calculations. To do so, first install the SSA programs and files as described in section 7. Then put 

SSA-EX.ZIP into a suitable directory (for example, a new one) and PKUNZIP all the files in them. 

Then follow the instructions in the DO*.TXT files.
7

3. SSA When Parameters Are Varying

This documents the procedure for calculating the sensitivity of a particular simulation with respect to 

variations in certain of the parameters of the model. The basic methodology is to run several

simulations each one with different values of the parameters in question.

What You Need to Prepare

Basically just three things, 

(i) a suitably modified TABLO Input file (reading the parameters to be varied from a 

different logical file) and associated TABLO-generated program or GEMSIM

Auxiliary files,

(ii) the Parameter Values file for input to SAWMF, and

(iii) the Command file for carrying out one simulation.

Once you have the Parameter Values file you can run SAWMF (see sections 3.3 and 5 below for 

details) to produce the Master Parameter Values file required by the SSA procedure. Preparing the 

Command file (see section 3.4 below for details) is much like preparing one for any simulation. 

Detailed advice for preparing the three things above is given in the rest of section 3. See also 

Appendix 1 to see the order in which these items are done.

All other files required by the procedure are provided when you install the associated files following 

the instructions in section 7 below. Of course you must also supply data files etc as required by 

your model.

3.1 Modifying the TABLO Input File

You must introduce a new logical file from which all the parameters whose values are varying are 

read. This must be a TEXT file. The current READ statements for these parameters must be omitted 

(or commented out) and new READ statements reading the values from this new logical file must be 

added. These READ statements must be in a block, one after the other. They must be in the same 

order as the information about the parameters at the top of the Parameter Values file. Once you 

have modified the TABLO Input file, you must run TABLO and produce either the associated 

TABLO-generated program (executable image) or associated GEMSIM Auxiliary files. 
8

In Examples A1 and A2, we use a modified TABLO Input file GTAP-A1.TAB starting from the 

standard GTAP94.TAB TABLO Input file for GTAP. The parameter ESUBVA has one argument 

which ranges over the set PROD_COMM of produced commodities. In the aggregation in question 

this set consists of the 3 commodities manufactures (M@M in the notation used in the associated 

GTAPSETS file), services (SVCES) and capital goods (CGDS). In the SSA the value of

ESUBVA("CGDS") is not to change - it is fixed at zero - and only the values of

ESUBVA("M@M") and ESUBVA("SVCES") are to vary. Accordingly we have introduced a new 

logical file called GTAPPARM_SSA into GTAP-A1.TAB and replaced the statement

READ ESUBVA from file GTAPPARM ;

by the statement (the set CGDS_COMM just contains commodity CGDS)

READ (all,i,CGDS_COMM) ESUBVA(i) FROM FILE GTAPPARM ;

added the new logical file GTAPPARM_ssa via the statement

FILE (TEXT) GTAPPARM_ssa 

 # File containing parameters are doing ssa with respect to. # ;

and inserted (at the end of the usual reads of the parameters) the statements

READ (all,i,TRAD_COMM) ESUBVA(i) FROM FILE GTAPPARM_ssa ;

write esubva to terminal ;

to instruct the program to read the manufactures and services values of ESUBVA from this new 

logical data file GTAPPARM_ssa. The SSA procedure puts different values in the related actual file 

each time it solves the model. [The Master Parameter Values file contains these different values.] 

The above Write to the terminal is not required; we put it in so that the LOG file for each solve 

contains the ESUBVA values used.

The GTAPPARM file PARK220.DAT must be modified to only contain the CGDS value of

ESUBVA. We have called the modified file PK220-A1.DAT; this file is contained in SSA-EX.ZIP 

(see section 7).

Example A3

Here GTAP94.TAB must be modified to add a region subscript to ESUBVA. The READ

statements for ESUBVA now read

READ (all,i,CGDS_COMM)(all,r,REG) ESUBVA(i,r) FROM FILE GTAPPARM ;

READ (all,i,TRAD_COMM)(all,r,REG) ESUBVA(i,r) FROM FILE GTAPPARM_ssa ;
9

The full TABLO Input file for this example is GTAP-A2.TAB which can be found in SSA-EX.ZIP 

(see section 7). The usual GTAPPARM parameters data file PARK220.DAT is modified to contain 

just the values of ESUBVA(CGDS,REG) for all three regions (all zero); the modified version is 

PK220-A2.DAT (see SSA-EX.ZIP).

3.2 How to Carry Out the Calculations

Once you have prepared the three things described above (following the advice below), you carry 

out the sensitivity calculations via a command of the form

SSA P1 P2 P3 P4 p P6

where

· P1 tells which Master Parameter Values file to use - its name must be SSPV<P1>.DAT

· P2 tells which program (e.g. TP1010, GEMSIM etc) to run to carry out each simulation,

· P3.CMF is the name of the Command file to use for each simulation,

· P4 is the name of the output LOG file (for the whole sensitivity calculations); this should not be 

confused with the LOG file for each simulation run (as specified in P3.CMF), and

· P6 is the name of the directory in which the SSA files and software are installed (for example, 

C:\SSA).

The "p" in this command (which can be upper or lower case) tells SSA that you are varying

parameter values (rather than shocks).

Example

SSA 1 TP1010Z SS_PV1 SSA_3.LOG p C:\SSA

would take SSPV1.DAT as the Master Parameter Values file, would run the TABLO-generated 

program TP1010Z to carry out each simulation, would take instructions from the Command file 

SS_PV1.CMF, would write Sensitivity job progress information to the LOG file SSA_3.LOG, and 

would expect the SSA files to be in directory C:\SSA
10

Examples A1 and A2

In Example A1, the command could be1

SSA A1 GEMSIM SS-A1 SSA-A1.LOG p C:\SSA

This takes SSPVA1.DAT as the Master Parameter Values file, runs GEMSIM to carry out the 

simulations, uses Command file SS-A1.CMF for the SSA simulations, writes SSA progress to file 

SSA-A1.LOG and expects the SSA files to be in directory C:\SSA.

In SSA-EX.ZIP we have put this command into the DOS batch file SSA-A1.BAT to make it easy 

to repeat the run simply by typing in "SSA-A1" rather than the longer line shown above.

For Example A2 the command could be

SSA A2 GEMSIM SS-A1 SSA-A2.LOG p C:\SSA

[Here the same Command file SS-A1.CMF can be used as for Example A1 but the different 

Master Parameter Values file SSPVA2.DAT (produced using Liu's quadrature rather than Stroud's) 

is used.]

3.3 Preparing Parameter Values Files

The Parameter Values file contains data giving information about the distribution of each

parameter which is varying. For each varying parameter, you specify its mean value and either its 

minimum value or else its standard deviation. Instructions for preparing Parameter Value files are 

given in section 5 below. The Parameter Values files for Examples A1, A2 and A3 are shown in full 

in section 5.2.

Once you have prepared the Parameter Values file, you run the program SAWMF (see section 5 

below for details) to produce what we call the Master Parameter Values file. This contains the 

different sets of parameter values the SSA procedure will use for the different simulations it carries 

out to calculate the means and standard deviations of the endogenous variables. For example, in 

Example A1, the SSA procedure requires that the model be solved 4 times. The Master Parameter 

 

1

 You should not type this command in on your computer yet, even if you have downloaded the SSA example 

files (see section 8). The steps for carrying out the examples there (including Examples A1 and A2) must be 

carried out in a certain order: see the detailed instructions in the files DO-EXA.TXT and DO-EXB.XT. In 

particular several preliminary steps are necessary before the SSA command shown in the main text can be 

executed. (See Appendix 1 for the steps and the order in which they are usually carried out.)
11

Values file contains 4 different pairs of values for ESUBVA for the manufactures and services 

sector.

The name of the Master Parameter Values file must be SSPV<P1>.DAT where <P1> is the first 

argument in the call to SSA. Thus the number of characters in <P1> must be at most 4 because of 

DOS's limit of 8 characters before the '.' in file names. The procedure SSA.BAT tests for this and 

stops with an error if this does not hold.

3.4 The Command File P3.CMF

This Command file spells out all details of the simulation.

In particular it must spell out which data to start from. The new logical file from which the values of 

the parameters being varied are read (according to the modified TABLO Input file) must be linked 

to the hard-wired name SS_PVAL.DAT via a file statement. That is, the Command file MUST 

contain a statement 

file <logical-name> = ss_pval.dat ;

where <logical-name> is the logical FILE name used in the TABLO Input file as the place where the 

parameters to vary are read from.

The other actual file names are as on the original Command file which ran the simulation whose 

sensitivity with respect to parameters you are currently investigating.

The Command file P3.CMF must have a line

Solution file = p3 ;

where "p3" is the same as the name of the Command file. For example, if the Command file is 

PV1.CMF then this must contain the line

Solution file = pv1 ;

The names <P1> and <P3> in the command in section 3.2 above must not contain more than 7 

characters in total. [See the section about "Output Files" for the reason for this. SSA.BAT tests for 

this.]

It is recommended that your Command file contain a statement

log file = <file-name> ;
12

This LOG file will contain information about the current (or last) run of the simulation. This name 

must be different from the name (called P4 above) for the overall LOG file. (The obvious choice for 

the LOG file name in the Command file is <P3>.LOG where the Command file is <P3>.CMF). If 

your sensitivity job crashes doing a simulation, the current version of this LOG file will tell you what 

went wrong. 

All other parts of the Command file (closure, shocks etc) should be the same as on the original 

Command file which ran the simulation whose sensitivity with respect to parameters you are

currently investigating. 

Examples A1 and A2

These both use the same modified Command file SS-A1.CMF. It contains the statement

auxiliary files = tp-a1;

since these must be from the condensed version of GTAP-A1.TAB (rather than the usual TP1010 

as the condensed version from GTAP94.TAB). It also contains the statements

file gtapPARM = pk220-a1.dat;

file gtapPARM_ssa = ss_pval.dat;

rather than "file gtapPARM = park220.dat;" as found in the Command file for the original simulation 

whose sensitivity we are calculating, and the statements

Solution File = ss-a1 ;

Log File = ss-a1.LOG ;

(the first as required and the second to give a LOG file for each solve of the model which can be 

looked at if any such solve crashes). Note that the LOG file name for each solve of the model SSA1.LOG is different (only slightly) from the name of the SSA progress LOG file which is SSAA1.LOG (see Example A1 under "How to Carry Out the Calculations").

Note that you should solve these SSA simulations with the same accuracy (that is, using the same 

method and same number of steps) as you solved the original simulation.
13

3.5 Output Files Containing Sensitivity Results

The means and standard deviations are reported for all endogenous variables. These results are set 

out as if they were the results of a simulation. The means are stored in both a Solution and a 

GEMPIE Print file called

<P3><P1>M.SL4 and <P3><P1>M.PI5

while the standard deviations are held in files called

<P3><P1>D.SL4 and <P3><P1>D.PI5

For example, from the command

SSA 1 TP1010Z SS_PV1 SSA_1.LOG p

the means will be on files

SS_PV11M.SL4 and SS_PV11M.PI5

while the standard deviations will be on files

SS_PV11D.SL4 and SS_PV11D.PI5

We suggest that you use the .PI5 versions for looking at/printing and may wish to use the .SL4 

versions to convert (via SLTOHT) into spreadsheets etc.

Note from this that the total of the number of characters in <P3> and <P1> must not exceed 7 (or 

else you will not be able to distinguish between the means and standard deviation results because of 

DOS's limit of 8 characters in file names). The procedure SSA.BAT tests for this and stops with an 

error if this does not hold. 
14

4. SSA When Shocks are Varying

This section documents the procedure for calculating the sensitivity of a particular simulation with 

respect to different shocks.

The basic methodology is to run several simulations with different values for the shocks (these values 

selected from within the ranges the shocks are varying in - the exact values chosen depend on the 

quadrature used). The automated SSA procedure carries out these simulations and reports the mean 

and standard deviation of the endogenous variables.

4.1 Which Data to Base Shock SSA Calculations On

Recently, Arndt (1996a) analyzed the impacts of rapid growth in Asia on global production and 

trade patterns in the year 2005. Since all projections are random variables, SSA was conducted 

with respect to forecasted growth in GDP and the capital stock. In addition, between 1992 (the 

base year for version 3 data) and 2005, tariff cuts agreed to in the Uruguay round of the GATT 

were expected to be implemented. Due to the number and size of the shocks, a fine grid was 

required to obtain adequate accuracy. With this fine grid, the model took approximately four hours 

to solve using a Pentium processor at 90 MHZ.

Even a limited number of solves can take a long time at four hours per solve. Therefore, rather than 

run the model repeatedly from the 1992 base data, the model was solved at mean values for all 

shocks. Sensitivity analysis was conducted from this updated data. The updated data already 

contained the impacts of Uruguay round policy changes and growth effects that were not considered 

in the SSA analysis (such as population growth). By running from updated data, the number of 

exogenous variables shocked was greatly reduced. In addition, the shocks actually applied to GDP 

growth and rates of capital accumulation in the SSA procedure on the updated data were generally 

of smaller magnitude than those that would be required from base data. 

Due to the smaller number of shocks and the smaller magnitude of the shocks applied to GDP 

growth and rates of capital accumulation, a less fine grid could be applied while acceptable solution 

accuracy was maintained. Under this approach, each solve from updated data took less than half an 

hour. Total time required for the SSA procedure was cut from about one week to about one day.

SAWMF gives you the option to generate SSA shocks from base data or from updated data. 

Thus, when shocks vary, you must first decide whether you are going to carry out the SSA

calculations
15

· starting from the original (that is, the pre-simulation) data. In this case we say that the SSA 

results are based on the original data.

· starting from the updated data (updated after an initial simulation in which the shock given is, in 

each case, the mean value for the shock to this particular variable or component of a variable). 

In this case we say that your SSA results are deviations from the updated data. 

A second example will help to make this distinction clear.

Example

Suppose that in the original simulation, one variable with two components was shocked with shocks 

of 5% and 3% respectively. Suppose that you wish to calculate the sensitivity of the results with 

respect to shocks which have a symmetric triangular distribution about the above values (as means) 

and with minimum values 3.5% and 2% respectively.

You have two choices for running the sensitivity calculations. Firstly, you could give shocks starting 

from the pre-simulation data base. These shocks would be in the range 3.5% to 6.5% for the first 

component and in the range 2% to 4% for the second component. [Using SAWMF (see section 5 

below) you could produce a Master Shock Values file to be used in this way.]

The second alternative (the "deviations" method) is to start from the post-simulation data base 

(produced by an initial simulation in which shocks equal to the mean shocks of 5% and 3% have 

been given) and to give smaller shocks (in the range approximately -1.5% to +1.5% for the first 

component and -1% to +1% for the second component). [You can also use SAWMF (see section 

5 below) to produce a Master Shock Values file containing such shocks.] When you do, the means 

produced by the sensitivity analysis procedure must be interpreted as movements from the initial 

simulation; for example, you would expect the means to be close to zero.2

Suppose, for example, the result from the initial simulation for a particular endogenous variable was 

3% and the sensitivity analysis calculations carried out using this second alternative produced a mean 

of 0.05 and a standard deviation of 0.2. Then, in relation to the pre-simulation values, this 

endogenous variable's mean result is approximately 3.05% (the original 3 plus the mean of 0.05) and 

the standard deviation of this result is approximately 0.2. More precisely, the mean is

(1+0.03)*(1+0.0005)*100 - 100 = 3.0515%

 

2 Nonzero mean values are the result of non-linearities in the model. Large mean values in the deviations case 

indicate the presence of significant non-linearities in model results as functions of the random exogenous 

shocks. In some instances, large means have interesting interpretations. [See Arndt (1996a) for more details.]
16

and the standard deviation is 0.2*(1+0.03) = 0.206.

Results Easier to Interpret When SSA is Based on Pre-simulation Data

The advantage of the former (basing SSA on the pre-simulation data) is that the results don't need 

any special interpretation - the means and standard deviations produced by the SSA calculations 

can be taken at their face value. 

The disadvantage of running SSA as a deviation from the updated data is that the results require 

careful interpretation since, for each endogenous variable, you need to look at its value in the original 

simulation and its SSA mean and standard deviation before you can tell how it varies over the range 

of shocks being considered - see the examples above for this.

Running SSA as Deviations May Be Quicker

The disadvantage of basing SSA calculations on the pre-simulation data is that the shocks to be 

applied are often larger than in the original simulation (where mean value shocks are given) and so to 

solve each SSA simulation accurately requires at least as many steps as for the original simulation.

The advantage of running SSA calculations as deviations from the updated data (after mean shocks 

have been given) is that the shocks to be applied in the SSA simulations are often significantly 

smaller than in the original simulation (for the first component in the example above, the range is -1.5 

to +1.5 in the deviation case but 3.5 to 6.5 in the non-deviation case). This means that often 

sufficiently accurate solutions for the SSA simulations can be obtained in fewer steps (hence taking 

less time) than for the original simulation. Since the SSA calculations require several solves of the 

model, this time saving may be significant (and possibly outweighs the interpretation difficulty in the 

deviation case).

4.2 Examples B1 and B2

These examples were introduced in section 2.2 above where the basic simulation was described. In 

particular shocks given to the three technical change variables ao("M@M",REG) are to vary in these 

SSA calculations, The mean values of the shocks are 5% (USA), 4% (JPN) and 3.5% (ROW). 

These shocks are assumed to be varying symmetrically and independently with triangular

distributions with minimum values 3%, 2% and 2% respectively. [Hence the shocks to

ao("M@M","USA") are in the range 3% to 7 %, those to ao("M@M","JPN") range between 2% 

and 6% while those to ao("M@M","ROW") range between 2% and 5%.]
17

In Example B1, SSA calculations are based on the original data, while in Example B2 the SSA 

calculations are done as deviations from the updated data. Of course these two examples are just 

calculating the same thing in two different ways.

4.3 What You Need to Prepare

Basically just two things,

(i) the Shock Values file for input to SAWMF , and

(ii) the Command file for carrying out one simulation.

Once you have the Shock Values file you can run SAWMF (see sections 4.5 and 5 below for 

details) to produce the Master Shock Values file required by the SSA procedure. Preparing the 

Command file (see section 4.6 below for details) is much like preparing one for any simulation. 

[Note that, unlike the Parameters case in section 3 above, you do not need to prepare a special 

version of the TABLO Input file for you model.] Appendix 2 sets out the steps required and the 

order in which they should be carried out. 

All other files required by the procedure are provided when you install the associated files following 

the instructions in section 7 below.

Of course you must also supply data files etc as required by your model as well as the executable 

program (e.g. TP1010.EXE) and associated Auxiliary files (e.g. TP1010.AXS and TP1010.AXT).

4.4 How to Carry Out the Calculations

Once you have prepared the two files described above (following the advice below), you carry out 

the sensitivity calculations via a command of the form

SSA P1 P2 P3 P4 s P6

where

· P1 tells which Master Shock Values File to use - its name must be SSHK<P1>.DAT;

· P2 tells which program (e.g. TP1010, GEMSIM etc) to run to carry out each simulation;

· P3.CMF is the name of the Command file to use for each simulation;
18

· P4 is the name of the output LOG file (for the whole sensitivity calculations); this should not be 

confused with the LOG file for each simulation run (as specified in P3.CMF); and

· P6 is the name of the directory in which the SSA software is installed (for example, C:\SSA).

The "s" in the command (which can be upper or lower case) tells SSA that you are varying shocks 

(rather than parameter values).

Example

SSA 1 TP1010 SS_SH1 SSA_1.LOG s C:\SSA

would take SSHK1.DAT as the Master Shock Values file, would run the program TP1010 to carry 

out each simulation, would take instructions from the Command file SS_SH1.CMF, would write 

Sensitivity job progress information to the LOG file SSA_1.LOG, and would expect the SSA

software to be in directory C:\SSA.

4.5 Preparing Shock Values Files

The Shock Values file contains data giving information about the distribution of each shock which 

is varying. For each varying shock, you specify its mean value and either its minimum value or else its 

standard deviation. Instructions for preparing Shock Value files are given in section 5 below. The 

Shock Values files for Examples B1 and B2 are shown in full in section 5.3.

Once you have prepared the Shock Values file, you run the program SAWMF (see section 5 below 

for details) to produce what we call the Master Shock Values file. This contains the different sets 

of shock values the SSA procedure will use for the different simulations it carries out to calculate the 

means and standard deviations of the endogenous variables. For example, in Example B1, the SSA 

procedure requires that the model be solved 6 times. The Master Shock Values file contains 6 

different sets of the three shocks to ao("M@M",REG), one for each region.

The name of the Master Shock Values file must be SSHK<P1>.DAT where <P1> is the first 

argument in the call to SSA. Thus the number of characters in <P1> must be at most 4 because of 

DOS's limit of 8 characters before the '.' in file names. The procedure SSA.BAT tests for this and 

stops with an error if this does not hold.

4.6 The Command file P3.CMF

This Command file spells out all details of the simulation.
19

Which Data to Start from

The Command file must specify which data each SSA simulation starts from. This depends on the 

choice you have made (see section 4.1 above for the two alternatives). If your SSA calculations are 

based on the original data, you must specify the names of the original data files. But if your SSA 

calculations are deviations from the updated data produced from a simulation in which the means of 

all the shocks are given.

In the SSA Command file SS-B1.CMF for Example B1, the relevant line is

file GTAPDATA = dat2-20.har ;

(indicating the original input-output and trade data) while in the SSA Command file SS-B2.CMF for 

Example B2, the relevant line is

file GTAPDATA = dat-exb.upd ;

indicating the updated input-output and trade data after the simulation in EXB.CMF which applies 

the means of the 3 shocks.

Solution and Log files

The Command file P3.CMF must have a line

Solution file = p3 ;

where "p3" is the same as the name of the Command file. For example, if the Command file is 

SHK1.CMF then this must contain the line

Solution file = shk1 ;

The names <P1> and <P3> in the command in section 4.4 above must not contain more than 7 

characters in total. [See the section about "Output Files" for the reason for this. SSA.BAT tests for 

this.]

It is recommended that your Command file contain a statement

log file = <file-name> ;

This LOG file will contain information about the current (or last) run of the simulation. This name 

must be different from the name (called P4 above) for the overall LOG file. (The obvious choice for 

the LOG file name in the Command file is <P3>.LOG where the Command file is <P3>.CMF). If 
20

your sensitivity job crashes doing a simulation, the current version of this LOG file will tell you what 

went wrong.

Shocks

The only way in which this Command file <P3>.CMF is not like any other one is in the shocks 

statements. Each of the shocks statement must be of the form

shock <variable> = file SHK_V1.SHK ;

shock <variable> = file SHK_V2.SHK ;

shock <variable> = file SHK_V3.SHK ;

and so on. Here the names "SHK_V1.SHK", "SHK_V2.SHK" and so on cannot be altered. These 

files should not exist originally; each is created for each different simulation by job SSA which 

calculates sensitivities.

4.7 Output Files Containing Sensitivity Results

The means and standard deviations are reported for all endogenous variables. These results are set 

out as if they were the results of a simulation. The means are stored in both a Solution and a 

GEMPIE Print file called

<P3><P1>M.SL4 and <P3><P1>M.PI5

while the standard deviations are held in files called

<P3><P1>D.SL4 and <P3><P1>D.PI5

For example, from the command

SSA 1 TP1010 SS_SH1 SSA_1.LOG s

the means will be on files

SS_SH11M.SL4 and SS_SH11M.PI5

while the standard deviations will be on files

SS_SH11D.SL4 and SS_SH11D.PI5
21

We suggest that you use the .PI5 versions for looking at/printing and may wish to use the .SL4 

versions to convert (via SLTOHT) into spreadsheets etc.

Note from this that the total of the number of characters in <P3> and <P1> must not exceed 7 (or 

else you will not be able to distinguish between the means and standard deviation results because of 

DOS's limit of 8 characters in file names). The procedure SSA.BAT tests for this and stops with an 

error if this does not hold.

4.8 Interpreting Shock SSA Results

This depends, of course, on whether your SSA calculations have been based on the original data or 

are deviations from the updated data.

Examples B1 and B2

Consider the ps("Labor","USA") results from Examples B1 and B2. You can check that these are

orig sim Example B1 Example B2

4.27764 4.28102 (mean) 0.003243 (mean)

0.85088 (SD) 0.81597 (SD)

[The original simulation results comes from Solution file EXB.SL4, the SSA results come from files 

SS-B1B1M.PI5, SS-B1B1D.PI5, SS-B2B2M.PI5 and SS-B2B2D.PI5 respectively.]

The striking thing is the small mean result 0.003243 in B2 compared to B1. Of course this result 

must be compounded with the original simulation result 4.27764 in order to compare it with the B1 

mean result of 4.28102. You can check that a 0.003243% increase on 4.27764% gives a total 

increase of 4.28098% which is remarkably close to the B1 mean result of 4.28102.

To reconcile the SD results requires a little care. The B2 SD result is a variation on the post-sim 

value of 1.0427764 (a 4.27764% increase if initial levels value is 1). Thus, it needs to be scaled up 

by this factor in order to compare it with the B1 SD result. Note that 1.0427764*0.81597 equals 

0.850874 which is satisfactorily close to the B1 SD result of 0.85088. 
22

5. How to Create Master Parameter Values and Master

Shock Values Files

The automated procedure described in this document automates the production of Master

Parameter Values and Master Shock Values files provided you are prepared to make certain

assumptions about the distributions of the parameters or shocks that are varying. Details are below.

It is possible to prepare Master Parameter Values and Master Shock Values files without making 

these assumptions. However this involves solving quite complicated optimisation problems and is 

outside the scope of this document. [Nonetheless, any such files can be used with the rest of the 

automated SSA procedures described in this document. Such files must conform to the syntax laid 

out in sections 5.6 and 5.7 below.]

The automated procedure lets you produce these Master Values files by running the program

SAWMF (Write Master File). When you use SAWMF to write these Master Values files, for each 

parameter or shock which is varying, you specify its mean value and either its standard deviation or 

its minimum value. These means and standard deviations or minimums are put into the Parameter 

Values file or the Shocks Values file you prepare (see sections 3.3 and 4.5 above) before running 

SAWMF.

When you use SAWMF to produce these Master Values files,

· you are assuming that the exogenous inputs (that is, the parameters or shocks which are varying) 

are varying symmetrically and independently;

· if you specify minimum values (rather than standard deviations) when running SAWMF, you are 

also assuming that each exogenous input has a triangular distribution.

The program SAWMF always produces a quadrature of order 3. This means that if the computed 

endogenous values of interest are well approximated (as functions of the varying parameters or 

shocks) by polynomials of degree 3 or less, the reported means and standard deviations will be 

good approximations to the true means and standard deviations. More details about the

consequences of using quadratures of different order (and the advantages of using quadratures of 

high order) can be found in Arndt (1996b).

In the shocks case, you must also indicate whether you intend to use the shocks written on the 

Master Shock Values file
23

(i) as shocks from the pre-simulation data base of the original simulation (the one whose 

sensitivity with respect to the shocks you are calculating), or 

(ii) as deviations from the post-simulation data base produced by the original simulation.

In the latter case, the means you specify on the input file to SAWMF (see below) must be the 

shocks from the original simulation and this file must contain minimum values for these shocks (not 

standard deviations). In this case, the shocks produced will have mean zero (since they are

deviations from the previous simulation).

You must also specify which quadrature you wish to use. The default (and the one normally

recommended) is Stroud's quadrature. The alternative is Liu's quadrature.

If you are using Liu's quadrature, a Gaussian Quadrature file containing a basic Liu quadrature (with 

mean zero and standard deviation one) is required. In the SSA package we have provided the file 

GQ15.DAT to meet this requirement. It can be used to produce Liu quadratures when up to 15 

parameter or shock values vary. If you want to vary more than 15 values, please use the Stroud 

procedure or contact Channing Arndt for an expanded basic Liu quadrature file.

5.1 Syntax of Parameter and Shock Values Files Input to SAWMF

Before you run SAWMF, you must prepare a file (the Parameter Values file or the Shock Values 

file) containing the means and either the standard deviations or the minimum values of each thing 

(parameter or shock) varying. The syntax of this file is described below. Examples of these files are 

given in sections 5.2 and 5.3 below.

This Values file input to SAWMF contains the mean values and either the minimum values or the 

standard deviations of the parameters or shocks in question.

The first line must be "p" (if parameters are varying) or "s" if shocks are varying. 

The second line must be "sd" if you are supplying standard deviations or must be "min" if you are 

supplying minimum values.

The third line must indicate the number <n1> of READ statements (if parameters are varying) or the 

number <n1> of "shocks" statements (if shocks are varying).

GEMPACK-style comments (begin a line with a single exclamation mark !) are allowed amongst the 

first 3 lines described above (and amongst the arrays of data described below). 
24

Then, for each of the <n1> things, there must be first an array giving the values of the means and 

then a second array giving the values of the standard deviations or minimum values, as appropriate. 

In the parameters case, the arrays of data must be of the same size and in the same order as the 

READ statements for them in the modified TABLO Input file used for the SSA calculations. Thus, in 

Example A3 where the values of ESUBVA(TRAD_COMM,REG) and ESUBD(TRAD_COMM) 

are varying, first comes the 2x3 array of means for ESUBVA followed by the array of SDs for 

ESUBVA; then comes the ESUBD means and finally the ESUBD SDs (see the full file in section 5.2 

below). [This is because the relevant READ statements are in the order shown in section 3.1 

above.]

In the shocks case, the sizes and order of the arrays must correspond to the statements specifying 

the shocks in the Command file used for the SSA simulation. The first array must be that for the 

components of the variable in the

shock <variable> = file SHK_V1.SHK ;

statement (see section 4.6 above) in this Command file. Next must come the array of standard 

deviations or minimum values for these components. Then comes the data corresponding to the 

variable in the

shock <variable> = file SHK_V2.SHK ;

statement followed by its standard deviation or minimum values, and so on. For example, suppose 

we are shocking components ao("mnfcs",REG) of variable "ao" for a 3-region aggregation and 

components to(XCOM,REG) of variable to, where set XCOM is defined in the TABLO Input file 

to consist of the two commodities "food" and "mnfcs". Suppose that REG consists of

(USA,EU,ROW). Then the "shocks" statements in the Command file might be 

shock ao("mnfcs",REG) = file SHK_V1.SHK ;

shock to(XCOM,REG) = file SHK_V2.SHK ;

In this case, the values of the means for ao("mnfcs",REG) would come first, then the standard 

deviations or minimums for this. Then would come the arrays of means for to(XCOM,REG) and 

lastly the standard deviations or minimums for this.

Each array must be in the form of a GEMPACK array of text data (including the "how much data 

information") as documented in Appendix C of GEMPACK document GPD-1. 
25

5.2 Example of Parameter Values files for SAWMF

Examples A1 and A2

In these examples, the two values of ESUBVA corresponding to manufactures and services are 

varying. These are assumed to be varying with mean values 1.22 and 1.33 respectively and with 

minimum values both 0.1 (see section 2.1 above). These are assumed to be varying symmetrically 

and independently with triangular distributions with the specified means and minimums. The 

Parameter Values file PVAL-A1.IN used as input to SAWMF for these examples is as shown 

below.

!

! This file contains mean and minimum values for SSA Examples A1 and A2

!

p ! Varying parameters (not shocks)

min ! Are supplying means and minimum values

1 !Varying parameter ESUBVA(TRAD_COMM) read in one READ statement

! Data for ESUBVA

2 ;

! means for ESUBVA(PROD_COMM,REG)

! M@M svces 

 1.22 1.33 

! minimum values for ESUBVA(PROD_COMM,REG)

2 ;

! M@M svces 

 0.1 0.1 

When running SAWMF for Example A1, respond as follows (see Stored-input file SAWM-A1.STI 

supplied with this example).

<carriage-return> ! take default program options

p ! varying parameters

pval-a1.in ! Parameter Values file with distribution of

parameters

s ! Use Stroud's formulas for quadrature

sspva1.dat ! Master Parameter Values file to use in SSA calcs

For Example A2 which uses Liu's quadrature, the last two responses are "L" and "SSPVA2.DAT".
26

Example A3

In this example, the six values of ESUBVA(TRAD_COMM,REG) corresponding to commodities 

manufactures and services and all 3 regions are varying (see section 2.1 above). These are assumed 

to be varying symmetrically and independently with distributions with the specified means and 

standard deviations (rather than minimums). The Parameter Values file PVAL-A3.IN used as input 

to SAWMF for these examples is as shown below.

!

! This file contains mean and SD values for SSA example A3

!

p ! Varying parameters (not shocks)

sd ! Are supplying means and standard deviations

2 ! params in 2 reads - ESUBVA(TRAD_COMM,REG) and ESUBD(TRAD_COMM)

! Next comes data for ESUBVA

2 3 col_order ;

! means for ESUBVA(TRAD_COMM,REG)

! M@M SERVICES

 1.22 1.33 ! USA

 1.22 1.33 ! JPN

 1.22 1.33 ! ROW

! SD values for ESUBVA(TRAD_COMM,REG)

2 3 col_order ;

! M@M SERVICES

 0.1 0.1 ! USA

 0.06 0.06 ! JPN

 0.12 0.12 ! ROW

! Next comes data for ESUBD

2 ;

10.0 12.0 ! means for ESUBD(TRAD_COMM)

2 ;

2.0 1.0 ! SD values for ESUBD(TRAD_COMM)

When running SAWMF for Example A3, respond as follows (see Stored-input file SAWM-A3.STI 

supplied with this example).

<carriage-return> ! take default program options

p ! varying parameters

pval-a3.in ! Parameter Values file with distribution of 

parameters

s ! Use Stroud's formulas for quadrature

sspva3.dat ! Master Parameter Values file to use in SSA calcs
27

5.3 Example of Shock Values files for SAWMF

Examples B1 and B2

In Examples B1 and B2, the three shocks are assumed to be varying symmetrically and

independently with triangular distributions with the means and minimum values specified in section 

4.2 above. The Shock Values file used as input to SAWMF in both these examples is SVALB.IN supplied with these examples. The file is shown below.

!

! This is file containing means and minimum values for SSA

! Examples B1 and B2 which are examples of SSA with respect to shocks

!

s ! This varies Shocks (not parameters)

min ! This contains means and minimum values

1 ! Just one "shocks" statement in the Command file

! Next come the means and then the minimum values for the

! shocks to ao("M@M",REG).

3 ;

! means

! USA JPN ROW

 5.0 4.0 3.5

3 ;

! Minimum values

! USA JPN ROW

 3.0 2.0 2.0

Although the Shock Values files are the same in Examples B1 (from original data) and B2

(deviations from updated data), the inputs to SAWMF are different (and hence the output Master 

Shock Values files are different) in the two cases.

The inputs to SAWMF for Example B1 are

<carriage-return> ! take default program options

s ! varying shocks

1 ! SSA shocks to be applied to pre-simulation data

sval-b.in ! Shock Values file with distribution of shocks

s ! Use Stroud's formulas for quadrature

sshkb1.dat ! Master Shock Values file to use in SSA calcs
28

The inputs to SAWMF for Example B2 are

<carriage-return> ! take default program options

s ! varying shocks

2 ! SSA shocks to be deviations from post-simulation data

sval-b.in ! Shock Values file with distribution of shocks

s ! Use Stroud's formulas for quadrature

sshkb2.dat ! Master Shock Values file to use in SSA calcs

Note that the response "1" or "2" distinguishes the two cases.

In the first (B1) case, the Master Shock Values file SSHKB1.DAT will contain shocks in the ranges 

3 to 7, 2 to 6 and 2 to 5 for the three components. In the second (B2) case, it will contain shocks in 

the ranges -2 to +2, -2 to +2 and -1.5 to +1.5 respectively.

[Note about the second case. If a shock of 4% is to be applied from the pre-simulation data base 

for the first component which is shocked by 5% in the original simulation, the deviation shock to be 

applied is not exactly -1% as you might think at first. Rather it has to be the appropriate shock to 

move the level of this variable from 1.05 times its pre-simulation value (an increase of 5%) to 1.04 

times this value (an increase of 4%); the appropriate shock is

 -1/1.05 = -0.952381%

SAWMF does these sorts of calculations.]

Restriction on SAWMF in Deviation Shocks Case

When running SAWMF for shocks in the deviation case, you must specify minimum values for the 

shocks; standard deviations are not allowed (since the deviation standard deviation could not be 

calculated in that case).

5.4 How Many Solves?

When you use Stroud's quadrature the automatic SSA procedure needs to solve the model 2*N

times where N is the number of parameters or shocks which are varying. [With Example A1, the 

procedure solves the model 4 times since 2 parameter values, namely ESUBVA for manufactures 

and services, are varying.]
29

When you use Liu's quadrature, the automatic SSA procedure will need to solve the model more 

often than for Stroud's quadrature. The table below shows how the number of solves depends on 

the number N of parameters or shocks which are varying.

Number varying (N) Number of solves

1 2

2 4

3 8

4-7 16

8-15 32

16-31 64

The general rule is that, provided N is at least 3, Liu's quadrature requires 2^K (two to the power 

K) solves where K is the smallest positive integer such that 2^K > 2N.

The smaller number of solves required in the Stroud case is the reason why Stroud's quadrature is 

the default in the program SAWMF.

When you run SAWMF, at the end of the run you are told how many solves of the model will be 

required.

5.5 An Example of a Master Parameter Values File

We show below the full Master Parameter Values file SSPVA1.DAT (produced by running

SAWMF as described in section 5.2 above) for Example A1. [We have left out a few blank lines 

and comment lines in the version shown below.]

You can see that the model needs to be solved 4 times. On the first solve, the parameters 

ESUBVA("M@M") and ESUBVA("SVCES") are given the values 1.22 and 2.04014 respectively. 

On the second solve they are given the values 0.573368 and 1.33 respectively. Each of the four sets 

is given weight 0.25.

! Master Parameter Values file SSPVA1.DAT for Example A1

p

 4

 1

 0.250000 

 2 real ;

 1.22000 2.04014

 0.250000 
30

 2 real ;

 0.573368 1.33000

 0.250000 

 2 real ;

 1.22000 0.619859

 0.250000 

 2 real ;

 1.86663 1.33000

! End of Master Parameter Values file SSPVA1.DAT for Example A1

You might like to also look at the Master Parameter Values file SSPVA2.DAT for Example A2 

which is based on Liu's quadrature. Although this also requires the model to be solved 4 times, the 

parameter values used are different from those above which come from Stroud's quadrature.

5.6 Syntax of Master Parameter Values File

This is a technical section which details the syntax required in a Master Parameter Values file. Of 

course, when SAWMF produces such a file, the file has the correct syntax. This section is really 

only relevant for those readers who are producing their own Master Parameter Values file directly 

(without running SAWMF). Other readers should skip this section.

The first 3 lines must be

p ! says parameters are varying rather than shocks

<n1> ! number of different sets of parameter values (ie number of different

! simulations to carry out), as given by Gaussian quadrature procedure

<n2> ! number of READ statements in TABLO Input file for the parameters varying

GEMPACK-style comments (begin a line with a single exclamation mark !) are allowed amongst the 

first 3 lines described above (and amongst the arrays of data described below).

Example of Start of Master Parameter Values File

Suppose that we are calculating sensitivity with respect to two parameters

ESUBVA(PROD_COMM,REG) and ESUBD(TRAD_COMM). [Normally ESUBVA only has 

one argument ranging over PROD_COMM but, as in Example A2, we may wish to investigate the 
31

consequences of allowing this to be region-specific also.] Then, for the 3x3 aggregation of GTAP, 

the Master Parameter Values file may be

p

64 ! As given by Gaussian quadrature

2 ! Are varying parameters (ESUBVA and ESUBD) read in 2 READ statements

The above assumes that the relevant READ statements in the TABLO Input file for reading

ESUBVA and ESUBD are in the order

READ ESUBVA from file ... ;

READ ESUBD from file ... ;

Then must follow <n1> sets of values each value preceded by its associated weight (as given by the 

Gaussian quadrature procedure). The weight must be on a line of its own, followed by the values for 

each parameter (each parameter starting on a new line). The arrays of data must be of the same size 

and in the same order as the READ statements for them in the modified TABLO Input file used for 

the SSA calculations. [That is, in the example above, the 12 values for parameter ESUBVA must 

come first in each case, and then the 3 values for variable ESUBD.]

In each case the values for a particular parameter must be written following the syntax arrays of text 

data (including "how much data information"), as set out in Appendix C of GPD-1.

5.7 Syntax of Master Shock Values File

This is a technical section which details the syntax required in a Master Shock Values file. Of 

course, when SAWMF produces such a file, the file has the correct syntax. This section is really 

only relevant for those readers who are producing their own Master Shock Values file directly 

(without running SAWMF). Other readers should skip this section.

The first 3 lines must be

s ! says shocks are varying rather than parameters

<n1> ! number of different shocks scenarios (ie number of different simulations

! to carry out), as given by Gaussian quadrature procedure

<n2> ! number of "shocks" statements in Command file for shocks which vary
32

GEMPACK-style comments (begin a line with a single exclamation mark !) are allowed amongst the 

first 3 lines described above (and amongst the arrays of data described below).

Example. If we are calculating sensitivity with respect to shocks given to variable ao("food",REG) 

and to variable to(NSAV_COMM,REG) these lines may be

s

123 ! as given by Gaussian quadrature procedure

2 ! if a 2 "shocks" statements

Then must follow <n1> sets of values each value preceded by its associated weight (as given by the 

Gaussian quadrature procedure). The weight must be on a line of its own, followed by the shocks 

values for each variable (each variable starting on a new line). The shocks for the variables must be 

in the same order as that specified in section 5.1 for Shock Values files. [That is, in the example 

above, the 3 shocks for variable "ao" must come first in each case, and then the 21 shocks for 

variable "to".] Each array of data specifying shocks to some or all components of one variable must 

be as for a text array of data (including the "how much data information") as specified in Appendix C 

of GPD-1.

Example. Suppose we are shocking components ao("mnfcs",REG) of variable "ao" for a 3-region 

aggregation and components to(XCOM,REG) of variable to, where set XCOM is defined in the 

TABLO Input file to consist of the two commodities "food" and "mnfcs". Suppose that REG consists 

of (USA,EU,ROW). Then the "shocks" statements in the Command file must be 

shock ao("mnfcs",REG) = file SHK_V1.SHK ;

shock to(XCOM,REG) = file SHK_V2.SHK ;

and the Master Shocks Values file may be

s

4

2

0.25 ! (first weight)

3 ; ! how much data info for ao("food",REG)

0.2 -0.2 0.0 ! (first set of shocks for "ao")

2 3 col_order ; ! or 6 ; ! how much data info

-0.3 0.3 ! (first set of shocks for to(XCOM,"USA")

-0.2 0.2 ! (first set of shocks for to(XCOM,"EU")

-0.1 0.1 ! (first set of shocks for to(XCOM,"ROW")
33

0.25 ! (second weight)

3 ;

-0.2 0.2 0.1 ! (second set of shocks for "ao")

2 3 col_order ;

0.3 -0.3 ! (second set of shocks for to(XCOM,"USA")

-0.2 0.2 ! (second set of shocks for to(XCOM,"EU")

0.1 0.1 ! (second set of shocks for to(XCOM,"ROW")

0.25

3 ;

0.1 0.1 0.1

2 3 col_order ;

-0.3 0.3 ! (third set of shocks for to(XCOM,"USA")

0.2 -0.2 ! (third set of shocks for to(XCOM,"EU")

-0.1 0.1 ! (third set of shocks for to(XCOM,"ROW")

0.25 ! (fourth and last weight)

3 ;

0.0 0.2 -0.1 ! (fourth and last set of shocks for "ao")

2 3 col_order ;

-0.3 0.3 ! (fourth set of shocks for to(XCOM,"USA")

-0.2 0.2 ! (fourth set of shocks for to(XCOM,"EU")

0.1 -0.1 ! (fourth set of shocks for to(XCOM,"ROW")

The weights and shocks values are as output by the Gaussian Quadrature procedure (which is not 

documented here).
34

6. Correspondence Between Percent-Change SSA Results

and Levels

When we do Systematic Sensitivity Analysis (SSA) based on a Gaussian Quadrature (GQ), we 

solve the model say N times. For each endogenous variable X of the model, let Xi (i=1,..,N) denote 

the N different levels solutions, and let X0 denote the original (i.e., pre-simulation) levels value of X.

When we use GEMPACK to do this SSA, each time we solve the model we calculate either the 

percentage change in X or the change in X. In the former case, when we solve the model the ith 

time, we calculate 

 100*(Xi-X0)/X0

In the latter case we calculate

 Xi-X0

Then, in doing the SSA calculations via GEMPACK, we calculate means and standard deviations of 

these percentage changes or changes. This document addresses the question as to how these relate 

to means and standard deviations calculated from the levels results.

Mean when percentage changes in X are calculated by GEMPACK

The GEMPACK SSA calculations calculate the mean of the percentage-change results for the N 

simulations. That is, they calculate

 SIGMA[ 100*(Xi-X0)/X0 ] / N

(where SIGMA stands for summation over the index i). A little algebra shows that this is the same 

as the percentage difference between the mean of the levels results and the pre-simulation value X0. 

That is, the above is equal to

 100 * { [SIGMA(Xi)/N] - X0 }/X0

Now, with a properly chosen GQ, the mean of the Xi's that we calculate is a good approximation to 

the true mean across the whole distribution for X. Hence we can see that what we calculate and 

report when we do this SSA via GEMPACK is an approximation to

 the percentage difference between the true mean of the levels 
35

 results for X and the pre-simulation value of X

In symbols, what we calculate is an approximation to

 100*[XBAR-X0]/X0

where XBAR denotes the mean of the distribution of X.

Mean when changes in X are calculated by GEMPACK

The GEMPACK SSA calculations calculate the mean of the change results for the N simulations. 

That is, they calculate

 SIGMA[ (Xi-X0) ] / N

A little algebra shows that this is the same as the difference between the mean of the levels results 

and the pre-simulation value X0. That is, the above is equal to

 [SIGMA(Xi)/N] - X0 

Now, with a properly chosen GQ, the mean of the Xi's that we calculate is a good approximation to 

the true mean across the whole distribution for X. Hence we can see that what we calculate and 

report when we do this SSA via GEMPACK is an approximation to

 the difference between the true mean of the levels 

 results for X and the pre-simulation value of X

In symbols,

 XBAR-X0

where XBAR denotes the mean of the distribution of X.

Standard Deviation when percentage changes in X are calculated by GEMPACK

The GEMPACK SSA calculations calculate the standard deviation of the percentage-change results 

for the N simulations. That is, they calculate SDG (standing for SD-GEMPACK) where

 SDG = (1/N)*SQRT{ SIGMA (pXi - mean(pXi results) )**2 }
36

where pXi denotes percentage difference between Xi and X0. From the analysis of the means 

above (in this percentage-change case), we know that

 mean(pXi results) = 100*[XBAR - X0]/X0

Thus we have

 N*SDG = SQRT{ SIGMA [term]**2 }

where

 term = 100*(Xi-X0)/X0 - 100*[XBAR - X0]/X0

 = [100/X0] * [(Xi - X0) - (XBAR - X0)]

 = [100/X0] * [Xi - XBAR]

Thus

 N*SDG = SQRT { SIGMA [ (100/X0)*(Xi-XBAR)]**2 }

 = [100/X0] * SQRT{ SIGMA (Xi-XBAR)**2 }

 = [100/X0] * N*SD

where SD is the standard deviation of the sample of the N levels values Xi of X. Thus we have the 

following connection between SD and SDG:

 SD = [X0/100]*SDG

The GEMPACK SSA calculations calculate SDG. To get the levels SD from this, we must multiply 

by X0 and divide by 100.

Note that, for a properly chosen GQ, SD calculated as SQRT{SIGMA[Xi-XBAR]**2} as above 

is a good approximation to the true SD for the full distribution of X.

Standard Deviation when changes in X are calculated by GEMPACK

The GEMPACK SSA calculations calculate the standard deviation of the change results for the N 

simulations. That is, they calculate SDG (standing for SD-GEMPACK) where

 SDG = (1/N)*SQRT{ SIGMA (dXi - mean(dXi results) )**2 }
37

where dXi denotes difference Xi-X0 between Xi and X0. From the analysis of the means above (in 

this change case), we know that

 mean(dXi results) = XBAR - X0

Thus we have

 N*SDG = SQRT{ SIGMA [term]**2 }

where

 term = (Xi-X0) - [XBAR - X0] = Xi - XBAR

Thus

 N*SDG = SQRT { SIGMA [Xi-XBAR]**2 } = N*SD

where SD is the standard deviation of the sample of the N levels values Xi of X. Thus in this case 

we see that 

 SDG = SD

That is, in this change case, the GEMPACK SSA calculations calculate the SD of the levels values 

of X. 

Note that, for a properly chosen GQ, SD calculated as SQRT{SIGMA[Xi-XBAR]**2} as above 

is a good approximation to the true SD for the full distribution of X.
38

7. Installing and Using the Associated Files

The files for the automated SSA procedure documented here are contained in the PKZIP files

SSA.ZIP, SSAP1.ZIP, SSAP2.ZIP and SSAP3.ZIP. Also relevant are the files for the examples 

used here (see section 2 above) to illustrate these procedures, which are in the PKZIP file SSAEX.ZIP.

The files in SSA.ZIP, SSAP1.ZIP, SSAP2.ZIP and SSAP3.ZIP must be put into a directory which 

is on the DOS PATH. We recommend creating a new directory (perhaps called \SSA) to hold 

these. The alternative is to put them into a directory (for example, the one holding your GEMPACK 

files) which is already on the PATH. In either case, change directory into the relevant directory and 

extract all the files via the command

pkunzip ssa

pkunzip ssap1 (etc)

If you have created a new directory you must add it to the PATH by editing your

AUTOEXEC.BAT file (adding to the PATH line) and then rebooting.

Note that whatever directory you install the SSA.ZIP, SSAP1.ZIP. SSAP2.ZIP and SSAP3.ZIP 

files in is the one you must pass to SSA.BAT as parameter P6 (see sections 3.2 and 4.4 above).

The PKZIP files mentioned above will normally be available on the

• GEMPACK Web site http://www.monash.edu.au/policy/gempack.htm and/or

• the GTAP Web site http://www.agecon.purdue.edu/gtap/

If you cannot find them there, please contact Ken Pearson about obtaining these. [In the future the 

names of the PKZIP files may change but the information on the Web sites should tell you how to 

obtain the relevant files.]3

 

3

 The files in SSAP1.ZIP, SSAP2.ZIP and SSAP3.ZIP are stand-alone executable images of several programs 

needed by the SSA procedure. We have put the source code for these programs in PKZIP archives SSA-51.ZIP 

and SSA-52.ZIP. If you have a source-code version of GEMPACK you can make alternative versions of these 

.EXE files by extracting the .FOR files in SSA-51.ZIP (use this if you have Release 5.1 of GEMPACK) or from 

SSA-52.ZIP (use this if you have Release 5.2 of GEMPACK) and then running LTG on each file. [In fact the 

.EXEs in SSAP1.ZIP, SSAP2.ZIP and SSAP3.ZIP have been produced from Fortran 90 source code. These 

.EXEs should never need program parameters increased.]
39

In order to carry out SSA calculations, you also need a source-code or an executable image (or the 

Demonstration version) of GEMPACK on your machine.

We suggest that you install the SSA examples in SSA-EX.ZIP in a separate directory (perhaps the 

subdirectory SSAEX of the directory in which you installed the files in SSA.ZIP). To extract the 

files, issue the command

pkunzip ssa-ex

See section 2.3 above for instructions for carrying out the SSA calculations for these.

References

Channing Arndt (1996a), "Three Essays in the Efficient Treatment of Randomness", PhD

Dissertation, Department of Agricultural Economics, Purdue University, 1996.

Channing Arndt (1996b), "An Introduction to Systematic Sensitivity Analysis via Gaussian

Quadrature", GTAP Technical Paper No. 2, 1996.

C. Arndt and T.W. Hertel (1997) "Revisiting 'The Fallacy of Free Trade'", Review of International 

Economics, Vol.5, Issue 2.

Eric A. DeVuyst and Paul V. Preckel (1997) "Sensitivity Analysis Revisited: A Quadrature-Based 

Approach", Journal of Policy Modelling, 19(2):175-185.

GPD-1, "An Introduction to GEMPACK", second edition, Centre of Policy Studies and Impact 

Project, Monash University, April 1994, pp. 252+15.

S. Liu, "Gaussian Quadrature and Its Applications", PhD Dissertation, Department of Agricultural 

Economics, Purdue University, 1997.

A.H. Stroud, Remarks on the Disposition of Points in Numerical Integration Formulas, Math. 

Tables Aids Comput., 11 (1957): 257-261.
40

Appendix 1: The Steps for SSA when Parameters Vary

Imagine that you have just run a simulation and have decided that you wish to use the automated 

procedure described above to calculate the sensitivity of the results with respect to variations in 

certain of the parameters. What steps should you take and in what order?

Step 1. Which Parameters Will Vary?

Decide exactly which parameters you wish to vary. [Usually this will be only some of the parameters 

in the model, probably ones to which you think the simulation in question is especially sensitive.]

Step 2. How These Parameters Vary

To use the automated procedure, you need to assume that the parameters chosen in Step 1 are 

varying symmetrically and independently.4 You must specify the distribution of each parameter.

For each parameter you have selected in Step 1, you must choose its mean value.

To use the automated procedure, you must either

• assume that all parameters have triangular distributions. In this case you must specify the minimum 

value for each one (and the maximum value will be as far above the mean as the minimum value is 

below the mean).

• specify the standard deviation for each parameter.

Step 3. Prepare the Parameter Values File

You must prepare the Parameter Values file to reflect your decisions in Step 2. Details can be found 

in sections 5.1 and 5.2.

Step 4. Run SAWMF to Produce the Master Parameter Values File

Run the program SAWMF to convert the Parameter Values file you produced in Step 3 to the 

associated Master Parameter Values file. See section 5.2 for information about running SAWMF. 

Note from section 3.2 that the name of the Master Parameter Values file produced must be of the 

form SSPV<p1>.DAT where <p1> can be up to 4 characters long.

 

4

 For the dependent case, see GTAP Technical Paper No. 2 [Arndt (1996b)].
41

When you use SAWMF you produce an order 3 quadrature.

The number of times you will need to solve the model is shown in section 5.4. If N parameters are 

varying, it is 2N times if you use Stroud’s quadrature (the default in SAWMF). 

Note that here N depends on the number of elements in the relevant sets (e.g. commodities or 

regions). Thus, in Example A3 in the paper, just two parameters are varying, namely ESUBVA and 

ESUBD. ESUBVA is indexed over TRAD_COMM and REG so has 6 values and ESUBD is 

indexed over TRAD_COMM so has 2 values. Hence, in this example, N=8, so that, with Stroud’s 

quadrature, the automated procedure would solve the model 16 times.

If you need to solve the model M times, the Master Parameter Values file contains all M sets of 

values for the N parameters. When the automated procedure solves the model the first time, it uses 

the first set of parameter values from the Master Parameter Values file. When it solves the model the 

second time, it uses the second set of values, and so on. [For example A1, the full Master 

Parameter Values file is shown in section 5.5 You can see from there which four sets of values are 

used for ESUBVA in that case.]

Step 5. Modify the TABLO Input File

Copy the TABLO Input file for the model to a new name and modify the copy following the 

instructions in section 3.1. Then run TABLO to on this modified TABLO Input file to produce the 

associated TABLO-generated program (executable image) or GEMSIM Auxiliary files.

Step 6. Modify the Parameters Data Files If Necessary

You may need to produce a modified copy of the data file from which you read the parameter 

values in the original simulation, namely to omit the values of those parameters which you are varying 

in the SSA calculation. All of the other parameters (those not varying in the SSA calculation) keep 

the same values as they had in the original simulation.

For example, only ESUBVA(“M@M”) and ESUBVA(“SVCES”) are varying in Example A1 in the 

paper. The original parameter data file PARK220.DAT contains values for these and for all the 

other parameters (including ESUBVA(“CGDS”)). The modified parameter data file PK220-

A1.DAT contains all values in PARK220.DAT except those for ESUBVA(“M@M”) and

ESUBVA(“SVCES”).
42

Step 7. Modify the Command File

Follow the instructions in section 3.4.

Step 8. Carry Out the SSA Calculations

Details are given in section 3.2.

Because the command (“SSA P1 P2 P3 P4 p P6”) can be fairly complicated we recommend first 

preparing a simple DOS batch file (it must have suffix .BAT) containing this command. Thus, for 

Example A1, use your editor to prepare a file (called, say, SSA-A1.BAT) containing the one line5

SSA A1 TP-A1 SS-A1 SSA-A1.LOG p C:\SSA

Then, to start the SSA calculations, simply type in the name of this batch file, “SSA-A1”. [You do 

not need to add the “.BAT” at the end.]

Step 9. Analyse the SSA Results

The SSA calculations tell you the mean and standard deviation for each endogenous variable. These 

are produced on two GEMPIE Print files (.PI5 files).

Suppose, for example, that your original simulation shows employment growth and you wish to 

know if this is a robust result. Look at the mean and standard deviation for the employment variable. 

If the mean is positive and significantly greater than the standard deviation, you could conclude that 

this finding of employment growth is a robust one (in the sense that the probability of this is high even 

allowing for the variations in the parameters you varied in the SSA calculations). If however the 

mean is negative, or if the mean is positive but less than some appropriate threshold related to the 

standard deviation (for example, 2 standard deviations), you should conclude that this is not a robust 

result.

 

5

 The line given next assumes that you will run the TABLO-generated program TP-A1.EXE. If you are running 

GEMSIM instead (see DO-EXA.TXT) the line should be

SSA A1 GEMSIM SS-A1 SSA-A1.LOG p C:\SSA
43

Appendix 2: The Steps for SSA when Shocks Vary

Imagine that you have just run a simulation and have decided that you wish to use the automated 

procedure described above to calculate the sensitivity of the results with respect to variations in 

certain of the shocks. What steps should you take and in what order?

Step 1. Which Shocks Will Vary?

Decide exactly which shocks you wish to vary. [Usually this will be only some of the shocks in the 

simulation, probably ones you are especially uncertain about.]

Step 2. How These Shocks Vary

To use the automated procedure, you need to assume that the shocks chosen in Step 1 are varying 

symmetrically and independently.6 You must specify the distribution of the values for each shock.

For each shock you have selected in Step 1, you must choose its mean value.

To use the automated procedure, you must either

• assume that all shocks have triangular distributions. In this case you must specify the minimum 

value for each one (and the maximum value will be as far above the mean as the minimum value is 

below the mean).

• specify the standard deviation for each shock.

[However, if you carry out SSA calculations as deviations from mean shock values - see Step 5 

below - you must do the first of these two. The second option is not available.]

Step 3. Prepare the Shock Values File

You must prepare the Shock Values file to reflect your decisions in Step 2. Details can be found in 

sections 5.1 and 5.3.

 

6

 For the dependent case, see GTAP Technical Paper No. 2 [Arndt (1996b)].
44

Step 4. Run SAWMF to Produce the Master Shock Values File

Run the program SAWMF to convert the Parameter Values file you produced in Step 3 to the 

associated Master Parameter Values file. See section 5.3 for information about running SAWMF. 

Note from section 4.4 that the name of the Master Shock Values file produced must be of the form 

SSHK<p1>.DAT where <p1> can be up to 4 characters long.

When you use SAWMF you produce an order 3 quadrature.

The number of times you will need to solve the model is shown in section 5.4. If N parameters are 

varying, it is 2N times if you use Stroud’s quadrature (the default in SAWMF). 

Note that here N depends on the number of elements in the relevant sets (e.g. commodities or 

regions). Thus, in Example B1 in the paper, just one vector of shocks is varying, namely shocks to 

a0(“M@M”,r) for all r in REG. Since the second index ranges over REG which has 3 elements, 

there are really 3 shocks varying, so N=3. Thus, with Stroud’s quadrature, the automated 

procedure would solve the model 6 times.

If you need to solve the model M times, the Master Shock Values file contains all M sets of values 

for the N shocks. When the automated procedure solves the model the first time, it uses the first set 

of shock values from the Master Shock Values file. When it solves the model the second time, it 

uses the second set of values, and so on.

Step 5. Decide Which Data to Base the SSA Calculations On

See section 4.1 for details. Your SSA calculations can start either from the same data as the original 

simulation started from, or from the updated data produced by mean shock values.

Step 6. Modify the Command File

Follow the instructions in section 4.6.

Step 7. Carry Out the SSA Calculations

[Note that, unlike the parameter case, you do not need to modify the TABLO Input file.]

Details are given in section 4.4.
45

Because the command (“SSA P1 P2 P3 P4 s P6”) can be fairly complicated we recommend first 

preparing a simple DOS batch file (it must have suffix .BAT) containing this command. Thus, for 

Example B1, use you editor to prepare a file (called, say, SSA-B1.BAT) containing the one line7

SSA B1 TP33 SS-B1 SSA-B1.LOG s C:\SSA

Then, to start the SSA calculations, simply type in the name of this batch file, “SSA-B1”. [You do 

not need to add the “.BAT” at the end.]

Step 8. Analyse the SSA Results

The SSA calculations tell you the mean and standard deviation for each endogenous variable. These 

are produced on two GEMPIE Print files (.PI5 files).

Suppose, for example, that your original simulation shows employment growth and you wish to 

know if this is a robust result. Look at the mean and standard deviation for the employment variable. 

If the mean is positive and significantly greater than the standard deviation, you could conclude that 

this finding of employment growth is a robust one (in the sense that the probability of this is high even 

allowing for the variations in the shocks you varied in the SSA calculations). If however the mean is 

negative, or if the mean is positive but less than the some appropriate threshold related to the 

standard deviation (for example, 2 standard deviations), you should conclude that this is not a robust 

result.

 

7

 The line given next assumes that you will run the TABLO-generated program TP33.EXE. If you are running 

GEMSIM instead (see DO-EXB.TXT) the line should be

SSA B1 GEMSIM SS-B1 SSA-B1.LOG s C:\SSA