The main thrust of the workshop is to enable the participants to
learn how to build nonlinear statistical modeling software with
AD Model Builder and to understand the results from the
subsequent analysis. Depending on the background of the participants
it may be necessary to spend more or less time to
introduce some more basic statistical concepts
and discuss computer
languages and language contructs a bit.
Also depending on the participants
it may possible to arrange to discuss some more advanced
concepts for more experienced users of ADMB to keep them amused.
What do you need?
Hands on experience (doing it yourself will be provided). There
will be a number of computers available (ask Terry), but you
may want to bring you own computer. It will be necessary to
install a C++ compiler (provided) and the ADMB software
which is provided for the duration of the course (You are supposed
to buy it if you wish to keep using it after the course.)
Otherwise it is useful to know something about programming
languages for computers (loops, conditional expressions, etc.)
as well as some C language syntax, but this is not essential
as we will discuss these things as we go along.
Cost of Worskshop
You are responsible for your own accommodation, grog etc.
Tentative List of Topics
- A very short intoduction to statistical models?
- What are linear models? nonlinear models?
- Why do we need to use nonlinear models instead of linear ones.
- Why are nonlinear ones more difficult than linear ones.
- How ADMB is intended to make nonlinear models easy to use.
- Robustness and nonlinearity in statistical models.
- Simple programming concepts.
- Practical problems in fitting nonlinear statistical models.
- You can't get there from here. Modifying the objective
function to enable the minimization routine to find
- Doing the minimization in stages.
- Putting bounds on parameters.
- What is AD Model builder?
- A framework for building nonlinear statistical models.
- An environment for structuring the code correctly.
- A metaphor to induce the user to think about the model correctly.
- A set of technical tools to find the parameter estimates and to
interpret the results.
- Description of the basic ADMB framework.
- The template (TPL) file.
- The sections of the TPL file.
- A simple model with data, parameters, and fitting criterion.
- DATA_SECTION PARAMETER_SECTION PROCEDURE_SECTION
- A simple linear regression model.
- Comparison with a simple nonlinear model.
- Manipulation of the nonlinear model to produce convergence.
- USE of LOCAL_CALCS to perform calculations in the DATA and PARAMETER
- Description of the ADMB data types.
- effect of the init_ prefix
- meanings of number int vector matrix 3darray 4darray ...
- relationship to ADMB types to the underlying AUTODIF types.
- Automatic differentiation, adjoint code, derivatives and the
minimization of functions of many parameters.
- Why do I need to know this?
- The concept of constant and variable types in AUTODIF and
- Managing model complexity by using higher dimensional dynamically
defined data structures.
- The use of ragged objects (non flat data structures)
- A more complicated model (perhaps catch-at-age fisheries model)
to use as an example for more advanced topics.
Use this model to ilustrate:
- carrying out the minimization in a number of phases.
- Modification of the objective function to obtain convergence.
- discussion of input and output files.
- the use of command line arguments to control model behaviour.
- Statistical interpretation of the results of the analysis.
- The SDREPORT type
- The LIKEPROF type
- Computing the inverse of the hessian and the delta method.
- The profile likelihood routine.
- The Markov chain Monte Carlo routine.
- Non informative priors on what? The effect of reparameterizing
- A review of all the SECTIONS and SUBSECTIONS (that exist at present)
- Analysis of simulated data.
- Why use simulated data?
- Using the ADMB program to simulate data.
- How to automate the process.
- Debugging ADMB programs.
- description of the process TPL => CPP error messages
- description of the process CPP => OBJ error messages
- description of the process OBJ => EXE error messages
- Using the safe and optimized libraries. walking out of arrays.
- Examples of ADMB programs of interest to the participants.
- Extensions of age structured fisheries models.
- Use of robust estimation techniques.
- Spatially disaggregated models. (Use of tagging data).
- Do we need age data? Alternatives.
- Concepts from stuctural time series methods or
- using state space concepts without realizing it.
- More advanced programming techniques.
- what is the scope of an ADMB object?
- The use of "local" variables in ADMB programs.
- Other topics in no particular order:
- Installing the software and getting it running.
- "One click" production of DLL's to call from SPLUS or Visual Basic or Excel
- Workshop participants create and discuss their own models.
- The use of other C++ libraries in ADMB.
- Practical problems in creating really big models. Managing the
ADMB temporary files.