star.gif (89 bytes) HOME star.gif (89 bytes) ADMB HOME star.gif (89 bytes) ADMB WORKSHOPS

Common Questions about AD Model Builder

What is AD Model Builder for?

AD Model Builder facilitates the rapid development of nonlinear statistical models. A template approach is used (not to be confused with templates in C++) which enables the user to simply describe the main aspects of the model such as the data, the model parameters and the fitting criterion. The user is shielded from the technical aspects of model coding and parameter estimation. The main advantages of the package are speed, stability, and the ability to build large models. Tests have shown that for the kinds of nonlinear statistical models used in real problems AD Model Builder can estimate the parameters hundreds of times faster than packages like Gauss, Matlab, or S-plus.

Why is AD Model builder better than using spreadsheet solvers or other statistical packages?

The major problem in nonlinear statistical modeling is fitting the model to data. This involves nonlinear optimization. For the kinds of problems generally encountered in statistical modeling the best nonlinear optimization routines employ the derivatives of the function being maximized. Spreadsheet solvers and other statistical modeling packages use finite difference approximations for the derivatives of the function to be maximized in their solvers. This approach has two major limitations. The inaccuracy of the derivative approximations leads to instability in the solver. The result is that the solver becomes unreliable for ill-conditioned problems (naturally most real problems of interest are ill-conditioned). Also with finite difference approximations it takes at least n function evaluations to obtain the finite difference approximation for a function with n independent variables. As a result it is generally impossible to fit models with more than 20 or so parameters reliably with this approach. AD Model Builder employs an extension of the reverse mode of automatic differentiation to compute the derivatives with respect to the independent variables. With this approach it is possible to fit models with hundreds or even thousands of parameters in an efficient and reliable manner. In addition AD Model Builder produces a compiled executable which generally executes faster than the interpreters used by spreadsheets and other statistical packages.

But aren't models with hundreds or even thousands of parameters overparameterized?

Well of course a model should only have as many parameters as it needs -- no more but no less. One use of many parameters in statistical models is in the Bayesian equivalent of structural time-series models. In this approach parameters which would be assumed to be constant in the classical frequentist approach are allowed to vary slowly over time if there is evidence in the data being analyzed which supports such change. The advantage of the Bayesian approach over the structural time series approach is that the methods are exact even in the nonlinear case and it is simple to replace the usual assumption of normality with robust distributions.

What do I need to use AD Model builder?

Ad Model Builder translates the contents of the user's template file to C++ code. To use this code you need to have a C++ compiler and the AD Model Builder libraries for the compiler. Most C++ compilers are supported. If you do not have a compiler you can use the GNU C++ compiler on UNIX or Linux or the DJGPP version of the GNU C++ compiler under DOS. We can supply you with a minimum configuration of the DJGPP compiler to run under DOS at no cost..

Do I need to know C++ to use AD model Builder?

It is necessary to know some elementary C++ syntax and constructions to use AD Model Builder. However it is not necessary to know any of the advanced object-oriented aspects of C++ programming such as classes, derived classes , function overloading etc. to use AD Model Builder. However as you gain facility with AD Model builder and start to build more complex models and increased knowledge of C++ will be an asset.

I always find this sort of package to be too restrictive.

AD Model builder employs an open architecture. It is possible to insert any legal C++ code into many parts of the template to customize the performance of your model . Also if desired you can always work directly with the C++ source code which AD Model builder produces from your TPL file.

Can I see some examples and documentation?

Examples and documentation files are available. These examples include the users TPL file (that is the template), the CPP file (C++ source code) produced from the template, the compiled executable (compiled for DOS), and the DAT file (data input to the model).

Can I see some performance comparisons with other packages?

A comparison of the performance of AD Model Builder with Gauss, Matlab, and S-plus is available. This comparison was carried out by independent researchers (that is independent of the makers of AD Model Builder).

How much does it cost?

Where do I get it?

Contact Otter Research Ltd. or phone 250-655-3364.

Otter Research Ltd.
P.O. Box 2040
Sidney, B.C., V8L 3S3
Phone : 250-655-3364
Fax: 250-655-3364

Updated September 2004

Otter Research Ltd.