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.
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.
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.
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..
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.
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.
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).
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).
Contact Otter Research Ltd. firstname.lastname@example.org or phone 250-655-3364.
Updated September 2004
© Otter Research Ltd.