ADMB explained

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]

Features and use

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]

History and background

Implementation

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:

  1. the objective function;
  2. adjoint code to compute the partial derivatives of the objective function with respect to the parameters to be estimated;
  3. dedicated memory to contain intermediate data for derivative computations, known as the "gradient stack", and the software to manage it;
  4. a function minimizer;
  5. an algorithm to check that the derivatives are correct with respect to finite difference approximations;
  6. an algorithm to insert model parameters into a vector that can be manipulated by the function minimizer and the corresponding derivative code;
  7. an algorithm to return the parameter values to the likelihood computation and the corresponding derivative code; and
  8. an algorithm to compute the second partial derivatives of the objective function with respect to the parameters to be estimated, the Hessian matrix.

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.

Otter Research

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.

ADMB Project

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.

See also

External links

Notes and References

  1. Web site: ADMB Core Team.
  2. Web site: ADMB Releases.
  3. Web site: admb-project . ADMB Project . 2009-04-01. https://web.archive.org/web/20090303132743/https://code.google.com/p/admb-project/. 3 March 2009 . live.
  4. Fournier, D.A., H.J. Skaug, J. Ancheta, J. Ianelli, A. Magnusson, M.N. Maunder, A. Nielsen, and J. Sibert. 2012. AD Model Builder: using automatic differentiation for statistical inference of highly parameterized complex nonlinear models. Optim. Methods Softw. 27:233-249
  5. Web site: AUTODIF: A C++ Array Language Extension with Automatic Differentiation For Use in Nonlinear Modeling and Statistics . ADMB Project . 2008-12-03 . https://web.archive.org/web/20110711111457/http://admb-project.googlecode.com/files/autodif.pdf . 2011-07-11 . dead .
  6. Web site: Random effects in AD Model Builder: ADMB-RE user guide . ADMB Project . 2008-12-03 . https://web.archive.org/web/20110711111618/http://admb-project.googlecode.com/files/admb-re.pdf . 2011-07-11 . dead .
  7. Web site: An Introduction to AD Model Builder Version 9.0.0 . ADMB Project . 2008-12-03 . https://web.archive.org/web/20110104180301/http://admb-project.googlecode.com/files/admb.pdf . 2011-01-04 . dead .
  8. Web site: ADMB User Base and Major Applications . ADMB Project . 2008-12-02 . https://web.archive.org/web/20110724224347/http://admb-project.org/community/user-base . 2011-07-24 . dead.
  9. Web site: Bibliography: Stock assessments . ADMB Project . 2008-12-03 . https://archive.today/20130226034837/http://admb-project.org/community/bibliography/stock-assessments . 2013-02-26 . dead.
  10. Web site: ADMB Downloads . ADMB Project . 2010-07-28.
  11. Web site: UCSB Press Release: "Fisheries Stock Assessment Software Now Publicly Accessible" . University of California, Santa Barbara . 2008-12-09.
  12. Web site: ADMB Source Code Available . ADMB Project . 2009-05-14 . https://web.archive.org/web/20100418194627/http://admb-project.org/news/admb-source-code-available . 2010-04-18 . dead.
  13. A. Griewank and G. F.Corliss (eds). Automatic differentiation of algorithms: theory, implementation, and application.` Society of Industrial and Applied Mathematics. 1992.
  14. D. Fournier and I. Doonan.A length-based stock assessment method utilizing a generalized delay-difference model.Canadian Journal of Fisheries and Aquatic Sciences, 44(2):422--437, 1987.
  15. D. Fournier and A. Warburton.Evaluating fisheries management models by simulated adaptive control-introducing the composite model.Canadian Journal of Fisheries and Aquatic Sciences. 46(6):1002--1012, 1989.
  16. D. Fournier, J. Sibert, J. Majkowski, and J. Hampton.MULTIFAN a likelihood-based method for estimating growth parameters and age composition from multiple length frequency data sets illustrated using data for southern bluefin tuna (Thunnus maccoyii).Canadian Journal of Fisheries and Aquatic Sciences, 47(2):301--317, 1990.
  17. J. Sibert, J. Hampton, D. Fournier, and P. Bills.An advection-diffusion-reaction model for the estimation of fishmovement parameters from tagging data, with application to skipjack tuna (Katsuwonus pelamis).Canadian Journal of Fisheries and Aquatic Sciences, 56(6):925--938, 1999.
  18. K. N. Holland, R. Brill, R. Chang, J. Sibert, and D. Fournier.Physiological and behavioural thermogregulation in bigeye tuna (Thunnus obesus). Nature, 358:410--412, 1992.