ADMB o AD Model Builder es un conjunto de software libre y de código abierto para modelado estadístico no lineal . [ 3 ] [ 4 ] Fue creado por David Fournier y actualmente está siendo desarrollado por el Proyecto ADMB, una creación de la Fundación ADMB, una organización sin fines de lucro. Las siglas "AD" en AD Model Builder hacen referencia a las capacidades de diferenciación automática que provienen de la Biblioteca AUTODIF , una extensión del lenguaje C++ también creada por David Fournier, que implementa la diferenciación automática en modo inverso. [ 5 ] Un paquete de software relacionado, ADMB-RE , proporciona soporte adicional para modelar efectos aleatorios . [ 6 ]
Características y uso
Los métodos de Monte Carlo de cadena de Markov están integrados en el software ADMB, lo que lo hace útil para el modelado bayesiano . [ 7 ] Además de los modelos jerárquicos bayesianos, ADMB ofrece soporte para el modelado de efectos aleatorios en un marco frecuentista utilizando la aproximación de Laplace y el muestreo de importancia. [ 6 ]
ADMB es ampliamente utilizado por científicos en instituciones académicas, agencias gubernamentales y comisiones internacionales, [ 8 ] principalmente para modelado ecológico. En particular, muchos modelos de evaluación de poblaciones pesqueras se han construido utilizando este software. [ 9 ] ADMB está disponible gratuitamente bajo la licencia New BSD , [ 10 ] con versiones disponibles para los sistemas operativos Windows , Linux , Mac OS X y OpenSolaris . [ 10 ] El código fuente de ADMB se hizo público en marzo de 2009. [ 11 ] [ 12 ]
Historia y antecedentes
Implementación
El trabajo realizado por David Fournier en la década de 1970 sobre el desarrollo de modelos estadísticos integrados altamente parametrizados en la pesca impulsó el desarrollo de la biblioteca AUTODIF y, posteriormente, de ADMB. Las ecuaciones de verosimilitud en estos modelos suelen ser no lineales y las estimaciones de los parámetros se obtienen mediante métodos numéricos.
Al inicio del trabajo de Fournier, quedó claro que las soluciones numéricas generales a estos problemas de verosimilitud solo podían obtenerse de forma fiable mediante algoritmos de minimización de funciones que incorporaran información precisa sobre los gradientes de la superficie de verosimilitud. El cálculo de los gradientes (es decir, las derivadas parciales de la verosimilitud con respecto a todas las variables del modelo) también debe realizarse con la misma precisión que el cálculo de la verosimilitud en sí.
Fournier desarrolló un protocolo para escribir código que calculara las derivadas requeridas basándose en la regla de la cadena del cálculo diferencial. Este protocolo es muy similar al conjunto de métodos que se conoció como diferenciación automática en modo inverso . [ 13 ]
Los modelos estadísticos que utilizan estos métodos [ 14 ] [ 15 ] [ 16 ] [ 17 ] normalmente incluían ocho segmentos de código constituyentes:
- la función objetivo;
- código adjunto para calcular las derivadas parciales de la función objetivo con respecto a los parámetros que se van a estimar;
- memoria dedicada para contener datos intermedios para cálculos de derivadas, conocida como "pila de gradiente", y el software para gestionarla;
- un minimizador de funciones;
- un algoritmo para comprobar que las derivadas son correctas con respecto a las aproximaciones de diferencias finitas;
- un algoritmo para insertar parámetros del modelo en un vector que puede ser manipulado por el minimizador de la función y el código de la derivada correspondiente;
- un algoritmo para devolver los valores de los parámetros al cálculo de la verosimilitud y al código de derivada correspondiente; y
- un algoritmo para calcular las segundas derivadas parciales de la función objetivo con respecto a los parámetros a estimar, la matriz hessiana .
Los desarrolladores de modelos generalmente solo están interesados en el primero de estos componentes. Cualquier herramienta de programación que pueda reducir la complejidad del desarrollo y mantenimiento de los otros siete aumentará considerablemente su productividad.
Bjarne Stroustrup comenzó el desarrollo de C++ en la década de 1970 en los Laboratorios Bell como una mejora del lenguaje de programación C. C++ se extendió ampliamente y, para 1989, ya existían compiladores de C++ para computadoras personales. El polimorfismo de C++ permite concebir un sistema de programación en el que todos los operadores y funciones matemáticas pueden sobrecargarse para calcular automáticamente las contribuciones derivadas de cada operación numérica diferenciable en cualquier programa informático.
Investigación sobre nutrias
Fournier fundó Otter Research Ltd. en 1989, y para 1990 la biblioteca AUTODIF incluía clases especiales para el cálculo de derivadas y las funciones sobrecargadas necesarias para todos los operadores de C++ y todas las funciones de la biblioteca matemática estándar de C++. La biblioteca AUTODIF calcula automáticamente las derivadas de la función objetivo con la misma precisión que la propia función objetivo, liberando así al desarrollador de la ardua tarea de escribir y mantener código de derivadas para modelos estadísticos. Igualmente importante desde el punto de vista del desarrollo de modelos, la biblioteca AUTODIF incluye una "pila de gradiente", un minimizador de funciones cuasi-Newton, un verificador de derivadas y clases contenedoras para vectores y matrices. La primera aplicación de la biblioteca AUTODIF se publicó en 1992 [ 18 ].
Sin embargo, la biblioteca AUTODIF no libera por completo al desarrollador de la necesidad de escribir todos los componentes del modelo mencionados anteriormente. En 1993, Fournier simplificó aún más la escritura de modelos estadísticos mediante la creación de ADMB, un lenguaje de plantillas especial que simplifica la especificación del modelo al generar las herramientas para transformar los modelos escritos con dichas plantillas en aplicaciones de la biblioteca AUTODIF. ADMB genera código para gestionar el intercambio de parámetros entre el modelo y el minimizador de funciones, calcula automáticamente la matriz hessiana y la invierte para proporcionar una estimación de la covarianza de los parámetros estimados. De este modo, ADMB libera por completo al desarrollador del modelo de la tediosa tarea de gestionar la optimización no lineal, permitiéndole centrarse en los aspectos más interesantes del modelo estadístico.
A mediados de la década de 1990, el ADMB ya era ampliamente aceptado por investigadores que trabajaban en todos los aspectos de la gestión de recursos. Los modelos poblacionales basados en el ADMB se utilizan para monitorear diversas especies, tanto en peligro de extinción como poblaciones de peces de gran valor comercial, incluyendo ballenas, delfines, leones marinos, pingüinos, albatros, abulones, langostas, atunes, marlines, tiburones, rayas, anchoas y abadejos. El ADMB también se ha utilizado para reconstruir los movimientos de muchas especies de animales rastreadas con etiquetas electrónicas.
En 2002, Fournier se asoció con Hans Skaug para introducir efectos aleatorios en ADMB. Este desarrollo incluyó el cálculo automático de segundas y terceras derivadas y el uso de diferenciación automática en modo directo, seguida de dos barridos del modelo AD inverso en ciertos casos.
Proyecto ADMB
En 2007, un grupo de usuarios de ADMB, entre los que se encontraban John Sibert, Mark Maunder y Anders Nielsen, se mostraron preocupados por el desarrollo y mantenimiento a largo plazo de ADMB. Se llegó a un acuerdo con Otter Research para vender los derechos de autor de ADMB con el fin de convertirlo en un proyecto de código abierto y distribuirlo gratuitamente. Se creó la Fundación ADMB, una organización sin ánimo de lucro, para coordinar el desarrollo y promover el uso de ADMB. La Fundación ADMB elaboró una propuesta para la Fundación Gordon y Betty Moore solicitando fondos para la compra de ADMB a Otter Research. A finales de 2007, la Fundación Moore otorgó una subvención al Centro Nacional de Análisis y Síntesis Ecológica de la Universidad de California en Santa Bárbara para que los Regentes de dicha universidad pudieran adquirir los derechos de ADMB. La compra se completó a mediados de 2008, y las bibliotecas completas de ADMB se publicaron en el sitio web del Proyecto ADMB en diciembre de ese mismo año. En mayo de 2009, se habían registrado más de 3000 descargas de las bibliotecas. El código fuente se publicó en diciembre de 2009. A mediados de 2010, ADMB era compatible con todos los sistemas operativos comunes (Windows, Linux, MacOS y Sun/SPARC), con todos los compiladores de C++ comunes (GCC, Visual Studio, Borland) y con arquitecturas de 32 y 64 bits.
Durante los dos primeros años del proyecto ADMB, la Fundación ADMB se ha centrado en automatizar la compilación de ADMB para diferentes plataformas, simplificar la instalación y crear entornos de trabajo intuitivos. Entre los desarrollos técnicos previstos se incluyen la paralelización de los cálculos internos, la implementación de MCMC híbrido y la mejora de la matriz dispersa de gran tamaño para su uso en modelos de efectos aleatorios.
Véase también
Referencias
- ↑ "Equipo principal de ADMB" .
- ↑ "Comunicados de ADMB" .
- ↑ "admb-project" . Proyecto ADMB. Archivado del original el 3 de marzo de 2009. Consultado el 1 de abril de 2009 .
- ↑ Fournier, DA, HJ Skaug, J. Ancheta, J. Ianelli, A. Magnusson, MN Maunder, A. Nielsen y J. Sibert. 2012. AD Model Builder: uso de la diferenciación automática para la inferencia estadística de modelos no lineales complejos altamente parametrizados. Optim. Methods Softw. 27:233-249
- ↑ "AUTODIF: Una extensión del lenguaje de matrices de C++ con diferenciación automática para su uso en modelado no lineal y estadística" (PDF) . Proyecto ADMB. Archivado del original (PDF) el 11 de julio de 2011. Consultado el 3 de diciembre de 2008 .
- 1 2 "Efectos aleatorios en AD Model Builder: Guía del usuario de ADMB-RE" (PDF) . Proyecto ADMB. Archivado del original (PDF) el 11 de julio de 2011. Recuperado el 3 de diciembre de 2008 .
- ↑ "Introducción a AD Model Builder Versión 9.0.0" (PDF) . Proyecto ADMB. Archivado del original (PDF) el 4 de enero de 2011. Consultado el 3 de diciembre de 2008 .
- ↑ "Base de usuarios y principales aplicaciones de ADMB" . Proyecto ADMB. Archivado del original el 24/07/2011 . Consultado el 02/12/2008 .
- ↑ "Bibliografía: Evaluaciones de existencias" . Proyecto ADMB . Consultado el 3 de diciembre de 2008 .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - 1 2 "Descargas de ADMB" . Proyecto ADMB . Consultado el 28 de julio de 2010 .
- ↑ "Comunicado de prensa de la UCSB: "Software de evaluación de poblaciones pesqueras ahora disponible al público"" . Universidad de California, Santa Bárbara . Consultado el 09-12-2008 .
- ↑ "Código fuente de ADMB disponible" . Proyecto ADMB. Archivado del original el 18 de abril de 2010. Consultado el 14 de mayo de 2009 .
- ↑ A. Griewank y GFCorliss (eds.). Diferenciación automática de algoritmos: teoría, implementación y aplicación. Sociedad de Matemáticas Industriales y Aplicadas. 1992.
- ↑ D. Fournier e I. Doonan. Un método de evaluación de poblaciones basado en la longitud que utiliza un modelo generalizado de diferencia de retardo . Canadian Journal of Fisheries and Aquatic Sciences, 44(2):422--437, 1987.
- ↑ D. Fournier y A. Warburton. Evaluación de modelos de gestión pesquera mediante control adaptativo simulado: introducción del modelo compuesto . Revista Canadiense de Ciencias Pesqueras y Acuáticas. 46(6):1002-1012, 1989.
- ↑ D. Fournier, J. Sibert, J. Majkowski y J. Hampton. MULTIFAN, un método basado en la verosimilitud para estimar parámetros de crecimiento y composición por edades a partir de múltiples conjuntos de datos de frecuencia de longitud, ilustrado con datos del atún rojo del sur (Thunnus maccoyii) . Canadian Journal of Fisheries and Aquatic Sciences, 47(2):301-317, 1990.
- ↑ J. Sibert, J. Hampton, D. Fournier y P. Bills. Un modelo de advección-difusión-reacción para la estimación de parámetros de movimiento de peces a partir de datos de marcado, con aplicación al atún listado (Katsuwonus pelamis) . Canadian Journal of Fisheries and Aquatic Sciences, 56(6):925-938, 1999.
- ↑ KN Holland, R. Brill, R. Chang, J. Sibert y D. Fournier. Termogregulación fisiológica y conductual en el atún ojo grande (Thunnus obesus) . Nature, 358:410-412, 1992.
Enlaces externos
- Para descargar instaladores, manuales y código fuente: El proyecto ADMB se archivó el 12 de diciembre de 2008 en Wayback Machine.
- Para apoyar el proyecto ADMB: La Fundación ADMB
- Desarrollador original de ADMB: Otter Research Ltd.
- lenguajes de programación de matrices
- Software libre multiplataforma
- Software estadístico gratuito
- Software de análisis numérico para Linux
- Lenguajes de programación numérica
- Lenguajes de programación estadística