260 likes | 414 Views
Getting started with GEM-SA. Marc Kennedy. This talk. Starting GEM-SA program Creating input and output files Explanation of the menus, toolbars, etc. Description of the project window. Starting GEM-SA. Double-click the GEM-SA icon to start The main window appears, with Menu Toolbar
E N D
Getting started with GEM-SA Marc Kennedy
This talk • Starting GEM-SA program • Creating input and output files • Explanation of the menus, toolbars, etc. • Description of the project window
Starting GEM-SA • Double-click the GEM-SA icon to start • The main window appears, with • Menu • Toolbar • Sensitivity analysis output grid • Log window
menu toolbar Sensitivity analysis output grid Log window
New project Open project Save project Print output report Edit project Generate input design points Rescale an input Standardise design Copy input design to clipboard Convert input to integer Run the analysis Help Toolbar icons
Sensitivity analysis output grid • This will report the sensitivity results after the analysis is complete • One line for each input parameter • One line for each pair of inputs, if joint effects are selected
Log Window output • Tells us • Which training data are being loaded/saved • Transformations applied to the data • Fitted Gaussian process parameters • Summary of the uncertainty analysis
Creating a GEM project • To build the emulator we first need 3 files: • Data file of code inputs • Data file of code outputs • GEM-SA project file
Restrictions on input/output data • Single output • Multiple outputs must be treated individually • Max 30 input parameters • Max 400 training points • The data files are plain text files • One line for each point • Input file can be space or tab delimited
Generating a new input design • Designs can be generated using the toolbar icon or the menu: Input Generate… • The design dialog appears
Generating a new input design • Click OK and fill in the required range for each input • Click OK again
Editing input designs • If you select a column, you can rescale values of that input or round values to be integers • Designs can be loaded into or saved from this window using the Inputs menu. Use to copy the points to the clipboard for use in other programs
Types of design • GEM-SA can generate 2 types of design • LP- • Maximin Latin Hypercube designs • Both have good space-filling properties • Ensure all regions of the input space are well represented
LP- design • Very quick to generate • Deterministic set of uniform points • Increasing the sample size just adds points to the smaller design • Making it useful for sequential analysis • Only have to generate the extra runs
Maximin Latin hypercube design • Maximin Latin Hypercube designs • Maximise the minimum distance amongst all pairs of points • Can take a long time to generate • Univariate projections are equally spaced • Each input has all its range represented • Good when only a few inputs are active
Creating output points from these inputs • This is the tricky part… • Each row from the input design must be used to generate a single output, e.g. using • Spreadsheet • Simple, but requires functional form • Script • Only need executable code • Loop through inputs, modify code input file • Modify code to loop through the points • Messy, need source code
Example: using a spreadsheet • Copy the input design to the clipboard using • Open Excel and paste inputs • Create formula in final column • Copy formula for all rows of the design • Cut and paste special (values) in a new sheet • Save as text file
Example: using a script • Read base input file • Read training inputs file • Loop through training file lines • Replace target inputs using training line • Write new base input file • Run code • Calculate single output and add to training output file
my $pftchangeline = 21; # change line 21 within the input file for each run my @pftchangecols = (11,14,23,19); # columns within pftchangeline to modify my @pftinlh = (0,1,2,3); # ordering of these parameters within training inputs open(BASEINFILE, "input.dat"); # getinitial (fixed) input file used by sdgvmd my @lines = <BASEINFILE>; # and store the input lines in @lines close BASEINFILE; open(LHFILE, "training_inputs.txt"); my $newpftline = $lines[$pftchangeline]; my @newpftpoints = split(" ", $newpftline); while (<LHFILE>){ # assigns each line in turn to $_ chomp; split; my @lhpoints = @_; open(INFILE, "> inputfile.dat"); @newpftpoints[@pftchangecols] = @lhpoints[@pftinlh] # modify lines $lines[$pftchangeline] = join(' ', @newpftpoints)."\n"; print INFILE @lines; close INFILE; `sdgvm0 input.dat`; # run sdgvm0 with modified input # now do something with the output files.... ... }
The project window • Appears whenever you • Load a project • Edit a project • Create new project • This window has 3 tabs • Options • Files • Simulations
What are the input names? How many inputs?
What should be calculated, and how? Which joint effects should be calculated?
What prior mean for the output? Are the inputs uncertain?
What kind of prediction? What kind of cross validation?
Names for the input files Names for the output files
MCMC control parameters How many realisations of predictions, main and joint effects to generate How many points used to calculate main effects, joint effects