HOME

TheInfoList



OR:

ADMB or AD Model Builder is a
free and open source software Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the sour ...
suite for
non-linear In mathematics and science, a nonlinear system is a system in which the change of the output is not proportional to the change of the input. Nonlinear problems are of interest to engineers, biologists, physicists, mathematicians, and many other ...
statistical model A statistical model is a mathematical model that embodies a set of statistical assumptions concerning the generation of sample data (and similar data from a larger population). A statistical model represents, often in considerably idealized form ...
ing. 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 In mathematics and computer algebra, automatic differentiation (AD), also called algorithmic differentiation, computational differentiation, auto-differentiation, or simply autodiff, is a set of techniques to evaluate the derivative of a function s ...
capabilities that come from the AUTODIF Library, a C++ language extension also created by David Fournier, which implements reverse mode automatic differentiation. A related software package, ADMB-RE, provides additional support for modeling random effects.


Features and use

Markov chain Monte Carlo In statistics, Markov chain Monte Carlo (MCMC) methods comprise a class of algorithms for sampling from a probability distribution. By constructing a Markov chain that has the desired distribution as its equilibrium distribution, one can obtain ...
methods are integrated into the ADMB software, making it useful for
Bayesian Thomas Bayes (/beɪz/; c. 1701 – 1761) was an English statistician, philosopher, and Presbyterian minister. Bayesian () refers either to a range of concepts and approaches that relate to statistical methods based on Bayes' theorem, or a followe ...
modeling. In addition to Bayesian hierarchical models, ADMB provides support for modeling random effects in a frequentist framework using Laplace approximation and importance sampling. ADMB is widely used by scientists in academic institutions, government agencies, and international commissions, most commonly for ecological modeling. In particular, many
fisheries Fishery can mean either the enterprise of raising or harvesting fish and other aquatic life; or more commonly, the site where such enterprise takes place ( a.k.a. fishing ground). Commercial fisheries include wild fisheries and fish farms, ...
stock assessment models have been built using this software. ADMB is freely available under the
New BSD License BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lice ...
, with versions available for
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for se ...
,
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
,
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lap ...
, and
OpenSolaris OpenSolaris () is a discontinued open-source computer operating system based on Solaris and created by Sun Microsystems. It was also, perhaps confusingly, the name of a project initiated by Sun to build a developer and user community around t ...
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
s. Source code for ADMB was made publicly available in March 2009.


History and background


Implementation

Work by David Fournier in the 1970s on development of highly parameterized integrated statistical models in fisheries motivated the development of the AUTODIF Library, and ultimately ADMB. The likelihood equations in these models are typically non-linear and estimates of the parameters are obtained by numerical methods. Early in Fournier's work, it became clear that general numerical solutions to these likelihood problems could only be reliably achieved using function minimization algorithms that incorporate accurate information about the gradients of the likelihood surface. Computing the gradients (i.e. partial derivatives of the likelihood with respect to all model variables) must also be done with the same accuracy as the likelihood computation itself. Fournier developed a protocol for writing code to compute the required derivatives based on the chain rule of differential calculus. This protocol is very similar to the suite of methods that came to be known as ``reverse mode automatic differentiation'' . The statistical models using these methods typically included eight constituent code segments: # the objective function; # adjoint code to compute the partial derivatives of the objective function with respect to the parameters to be estimated; # dedicated memory to contain intermediate data for derivative computations, known as the "gradient stack", and the software to manage it; # a function minimizer; # an algorithm to check that the derivatives are correct with respect to finite difference approximations; # an algorithm to insert model parameters into a vector that can be manipulated by the function minimizer and the corresponding derivative code; # an algorithm to return the parameter values to the likelihood computation and the corresponding derivative code; and # an algorithm to compute the second
partial derivative In mathematics, a partial derivative of a function of several variables is its derivative with respect to one of those variables, with the others held constant (as opposed to the total derivative, in which all variables are allowed to vary). Pa ...
s of the objective unction with respect to the parameters to be estimated, the
Hessian matrix In mathematics, the Hessian matrix or Hessian is a square matrix of second-order partial derivatives of a scalar-valued function, or scalar field. It describes the local curvature of a function of many variables. The Hessian matrix was developed ...
. Model developers are usually only interested in the first of these constituents. Any programming tools that can reduce the overhead of developing and maintaining the other seven will greatly increase their productivity. Bjarne Stroustrup began development of C++ in the 1970s at Bell Labs as an enhancement to the C programming language. C++ spread widely, and by 1989, C++ compilers were available for personal computers. The polymorphism of C++ makes it possible to envisage a programming system in which all mathematical operators and functions can be overloaded to automatically compute the derivative contributions of every differentiable numerical operation in any computer program.


Otter Research

Fournier formed Otter Research Ltd. in 1989, and by 1990 the AUTODIF Library included special classes for derivative computation and the requisite overloaded functions for all C++ operators and all functions in the standard C++ math library. The AUTODIF Library automatically computes the derivatives of the objective function with the same accuracy as the objective function itself and thereby frees the developer from the onerous task of writing and 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, and container classes for vectors and matrices. The first application of the AUTODIF Library was published in 1992 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. The AUTODIF Library does not, however, completely liberate the developer from writing all of the model constituents listed above. In 1993, Fournier further abstracted the writing of statistical models by creating ADMB, a special "template" language to simplify model specification by creating the tools to transform models written using the templates into the AUTODIF Library applications. ADMB produces code to manage the exchange of model parameters between the model and the function minimizer, automatically computes the Hessian matrix and inverts it to provide an estimate the covariance of the estimated parameters. ADMB thus completes the liberation of the model developer from all of the tedious overhead of managing non-linear optimization, thereby freeing him or her to focus on the more interesting aspects of the statistical model. By the mid-1990s, ADMB had earned acceptance by researchers working on all aspects of resource management. Population models based on the ADMB are used to monitor a range of both endangered species and commercially valuable fish populations including whales, dolphins, sea lions, penguins, albatross, abalone, lobsters, tunas, marlins, sharks, rays, anchovy, and pollock. ADMB has also been used to reconstruct movements of many species of animals tracked with electronic tags. In 2002, Fournier teamed up with Hans Skaug to introduce random effects into ADMB. This development included automatic computation of second and third derivatives and the use of forward mode automatic differentiation followed by two sweeps of reverse model AD in certain cases.


ADMB Project

In 2007, a group of ADMB users that included John Sibert, Mark Maunder and Anders Nielsen became concerned about ADMB's long-term development and maintenance. An agreement was reached with Otter Research to sell the copyright to ADMB for the purpose of making ADMB an open-source project and distributing it without charge. The non-profit ADMB Foundation was created to coordinate development and promote use of ADMB. The ADMB Foundation drafted a proposal to the Gordon and Betty Moore Foundation 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 could purchase the rights to ADMB. The purchase was completed in mid-2008, and the complete ADMB libraries were posted on the ADMB Project website in December 2008. By May 2009, more than 3000 downloads of the libraries had occurred. The source 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 bit architectures. ADMB Foundation efforts during the first two years of the ADMB Project have focused on automating the building of ADMB for different platforms, streamlining installation, and creation of a user-friendly working environments. Planned technical developments include parallelization of internal computations, implementation of hybrid MCMC, and improvement of the large sparse matrix for use in random effects models.


See also

*
List of statistical packages Statistical software are specialized computer programs for analysis in statistics and econometrics. Open-source * ADaMSoft – a generalized statistical software with data mining algorithms and methods for data management * ADMB – a softwar ...
*
List of numerical analysis software Listed here are notable end-user computer applications intended for use with numerical or data analysis: Numerical-software packages General-purpose computer algebra systems Interface-oriented Language-oriented Historically signific ...
*
Comparison of numerical analysis software The following tables provide a comparison of numerical-analysis software. Applications General Operating system support The operating systems the software can run on natively (without emulation). Language features Colors indicat ...


References


External links

* For downloads of installers, manuals and source code
The ADMB Project
* To support the ADMB Project
The ADMB Foundation
* Original developer of ADMB
Otter Research Ltd
{{DEFAULTSORT:Admb Array programming languages Cross-platform free software Free statistical software Numerical analysis software for Linux Numerical programming languages Statistical programming languages