ADMB | |
Designer: | David Fournier |
Developer: | ADMB Core Team[1] |
Dialects: | C++ |
License: | BSD |
Latest Release Version: | 13.1[2] |
Operating System: | Cross-platform |
ADMB or AD Model Builder is a free and open source software suite for non-linear statistical modeling.[3] [4] It was created by David Fournier and now being developed by the ADMB Project, a creation of the non-profit ADMB Foundation. The "AD" in AD Model Builder refers to the automatic differentiation capabilities that come from the AUTODIF Library, a C++ language extension also created by David Fournier, which implements reverse mode automatic differentiation.[5] A related software package, ADMB-RE, provides additional support for modeling random effects.[6]
Markov chain Monte Carlo methods are integrated into the ADMB software, making it useful for Bayesian modeling.[7] In addition to Bayesian hierarchical models, ADMB provides support for modeling random effects in a frequentist framework using Laplace approximation and importance sampling.[6]
ADMB is widely used by scientists in academic institutions, government agencies, and international commissions,[8] most commonly for ecological modeling. In particular, many fisheries stock assessment models have been built using this software.[9] ADMB is freely available under the New BSD License,[10] with versions available for Windows, Linux, Mac OS X, and OpenSolaris operating systems. Source code for ADMB was made publicly available in March 2009.[11] [12]
Work by David Fournier in the 1970s on development of highly parameterized integrated statistical models in fisheries motivated thedevelopment of the AUTODIF Library, and ultimately ADMB.The likelihood equationsin these models are typically non-linear and estimates of the parameters areobtained by numerical methods.
Early in Fournier's work, it became clear that general numericalsolutions to these likelihood problems could only be reliablyachieved using function minimization algorithms thatincorporate accurate information about the gradients of the likelihoodsurface. Computing the gradients (i.e. partial derivativesof the likelihood with respect to all model variables) must also be done withthe same accuracy as the likelihood computation itself.
Fournier developed a protocol for writing code to compute the requiredderivatives based on the chain rule of differential calculus. Thisprotocol is very similar to the suite of methods that came to be knownas ``reverse mode automatic differentiation .[13]
The statistical models using these methods[14] [15] [16] [17] typically included eight constituent code segments:
Model developers are usually only interested in the first of theseconstituents. Any programming tools that can reduce the overhead ofdeveloping and maintaining the other seven will greatly increase theirproductivity.
Bjarne Stroustrup began development of C++ in the 1970s at Bell Labs as an enhancement to the C programming language. C++ spread widely, and by1989, C++ compilers were available for personal computers.The polymorphism of C++ makes it possible to envisage a programmingsystem in which all mathematical operators and functions can beoverloaded to automatically compute the derivative contributions ofevery differentiable numerical operation in any computer program.
Fournier formed Otter Research Ltd. in 1989, andby 1990 the AUTODIF Library included special classes for derivative computation andthe requisite overloaded functions for all C++ operators andall functions in the standard C++ math library.The AUTODIF Library automatically computes the derivatives of the objective functionwith the same accuracy as the objective function itself and therebyfrees the developer from the onerous task of writingand maintaining derivative code for statistical models.Equally important from the standpoint of model development,the AUTODIF Library includes a "gradient stack", a quasi-Newton function minimizer, a derivative checker, andcontainer classes for vectors and matrices. The first application of the AUTODIF Library was published in 1992[18]
The AUTODIF Library does not, however, completely liberate the developer fromwriting all of the model constituents listed above. In 1993, Fournier furtherabstracted the writing of statistical models by creating ADMB, a special"template" language to simplify model specification bycreating the tools totransform models written using the templates into the AUTODIF Libraryapplications. ADMB produces code to manage the exchange of modelparameters between the model and the function minimizer,automatically computes the Hessian matrix and inverts it to providean estimate the covariance of the estimated parameters. ADMB thuscompletes the liberation of the model developer from all of the tediousoverhead of managing non-linear optimization, thereby freeing him or her tofocus on the more interesting aspects of the statistical model.
By the mid-1990s, ADMB had earned acceptance by researchers working onall aspects of resource management. Population models based on theADMB are used to monitor a range of both endangeredspecies and commercially valuable fish populations includingwhales, dolphins,sea lions, penguins, albatross, abalone, lobsters, tunas, marlins,sharks, rays, anchovy, and pollock. ADMB has also beenused to reconstruct movements of many species of animals tracked withelectronic tags.
In 2002, Fournier teamed up with Hans Skaug to introduce randomeffects into ADMB. Thisdevelopment included automatic computation of second and thirdderivatives and the use of forward mode automatic differentiation followed bytwo sweeps of reverse model AD in certain cases.
In 2007, a group of ADMB users that included John Sibert, MarkMaunder and Anders Nielsen became concerned about ADMB's long-term development and maintenance. An agreement was reached withOtter Research to sell the copyright to ADMB for the purpose ofmaking ADMB an open-source project and distributing it withoutcharge. The non-profit ADMB Foundation was createdto coordinate development and promote use of ADMB.The ADMB Foundation drafted a proposal to the Gordon and Betty MooreFoundation for the funds to purchase ADMB from Otter Research. The Moore Foundation provided a grant to the National Center of Ecological Analysis and Synthesis at the University of California at Santa Barbara in late 2007 so that the Regents of the University of California couldpurchase the rights to ADMB. The purchase was completed in mid-2008, and the complete ADMB libraries were postedon the ADMB Project website in December 2008. By May 2009, morethan 3000 downloads of the libraries had occurred. Thesource code was made available in December 2009. In mid-2010,ADMB was supported on all common operating systems (Windows,Linux, MacOS and Sun/SPARC), for all common C++ compilers(GCC, Visual Studio, Borland), and for both 32 and 64 bitarchitectures.
ADMB Foundation efforts during the first two years of the ADMB Project have focused onautomating the building of ADMB for different platforms,streamlining installation, and creation ofa user-friendly working environments. Planned technicaldevelopments include parallelization of internal computations,implementation of hybrid MCMC, and improvement of the large sparse matrixfor use in random effects models.