ADMB o AD Model Builder es un paquete de software gratuito y de código abierto para el modelado estadístico no lineal . [2] [3] Fue creado por David Fournier y ahora está siendo desarrollado por el Proyecto ADMB, una creación de la Fundación ADMB sin fines de lucro. El "AD" en AD Model Builder se refiere 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. [4] Un paquete de software relacionado, ADMB-RE , proporciona soporte adicional para modelar efectos aleatorios .[5]
Diseñada por | David Fournier |
---|---|
Desarrollador | Equipo principal de ADMB |
Lanzamiento estable | 12.0 [1] / 21 de diciembre de 2017 |
SO | Multiplataforma |
Licencia | BSD |
Sitio web | admb-project |
Dialectos | |
C ++ |
Características y uso
Los métodos de Monte Carlo de la cadena de Markov están integrados en el software ADMB, lo que lo hace útil para el modelado bayesiano . [6] Además de los modelos jerárquicos bayesianos, ADMB proporciona soporte para modelar efectos aleatorios en un marco frecuentista utilizando la aproximación de Laplace y el muestreo de importancia. [5]
ADMB es ampliamente utilizado por científicos en instituciones académicas, agencias gubernamentales y comisiones internacionales, [7] más comúnmente para modelos ecológicos. En particular, muchas pesquerías de evaluación de stocks modelos se han construido utilizando este software. [8] ADMB está disponible libremente bajo la licencia BSD Nueva , [9] con versiones disponibles para de Windows , Linux , Mac OS X , y OpenSolaris sistemas operativos . [9] El código fuente de ADMB se puso a disposición del público en marzo de 2009. [10] [11]
Historia y antecedentes
Implementación
El trabajo de David Fournier en la década de 1970 sobre el desarrollo de modelos estadísticos integrados altamente parametrizados en pesquerías motivó el desarrollo de la Biblioteca AUTODIF y, en última instancia, ADMB. Las ecuaciones de probabilidad en estos modelos son típicamente no lineales y las estimaciones de los parámetros se obtienen por métodos numéricos.
Al principio del trabajo de Fournier, quedó claro que las soluciones numéricas generales a estos problemas de probabilidad solo podían lograrse de manera confiable utilizando algoritmos de minimización de funciones que incorporan información precisa sobre los gradientes de la superficie de probabilidad. El cálculo de los gradientes (es decir, las derivadas parciales de la probabilidad con respecto a todas las variables del modelo) también debe realizarse con la misma precisión que el cálculo de la probabilidad en sí.
Fournier desarrolló un protocolo para escribir código para calcular 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 '' . [12]
Los modelos estadísticos que utilizan estos métodos [13] [14] [15] [16] normalmente incluyen 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 a estimar;
- memoria dedicada para contener datos intermedios para cálculos derivados, conocida como "pila de gradientes", y el software para administrarlos;
- un minimizador de funciones;
- un algoritmo para comprobar que las derivadas son correctas con respecto a las aproximaciones en diferencias finitas;
- un algoritmo para insertar parámetros del modelo en un vector que puede ser manipulado por el minimizador de funciones y el código derivado correspondiente;
- un algoritmo para devolver los valores de los parámetros al cálculo de verosimilitud y el código derivado correspondiente; y
- un algoritmo para calcular las segundas derivadas parciales de la unción objetivo con respecto a los parámetros a estimar, la matriz de Hesse .
Los desarrolladores de modelos generalmente solo están interesados en el primero de estos componentes. Cualquier herramienta de programación que pueda reducir los gastos generales de desarrollo y mantenimiento de las otras siete aumentará en gran medida su productividad.
Bjarne Stroustrup comenzó el desarrollo de C ++ en la década de 1970 en Bell Labs como una mejora del lenguaje de programación C. C ++ se extendió ampliamente y, en 1989, los compiladores de C ++ estaban disponibles para computadoras personales. El polimorfismo de C ++ permite concebir un sistema de programación en el que todos los operadores y funciones matemáticos se pueden sobrecargar para calcular automáticamente las contribuciones derivadas de cada operación numérica diferenciable en cualquier programa informático.
Investigación de la nutria
Fournier formó Otter Research Ltd. en 1989, y en 1990 la biblioteca AUTODIF incluía clases especiales para el cálculo derivado 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 función objetivo en sí y, por lo tanto, libera al desarrollador de la onerosa tarea de escribir y mantener el código derivado para modelos estadísticos. Igualmente importante desde el punto de vista del desarrollo de modelos, la biblioteca AUTODIF incluye una "pila de gradientes", un minimizador de funciones cuasi-Newton, un verificador de derivadas y clases de contenedores para vectores y matrices. La primera aplicación de la biblioteca AUTODIF se publicó en 1992 [17]
Sin embargo, la biblioteca AUTODIF no libera completamente al desarrollador de escribir todos los componentes del modelo enumerados anteriormente. En 1993, Fournier resumió aún más la redacción de modelos estadísticos mediante la creación de ADMB, un lenguaje de "plantilla" especial para simplificar la especificación del modelo mediante la creación de herramientas para transformar modelos escritos utilizando las plantillas en las aplicaciones de la biblioteca AUTODIF. ADMB produce código para gestionar el intercambio de parámetros del modelo 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 completa la liberación del desarrollador del modelo de toda la tediosa sobrecarga de administrar la optimización no lineal, lo que lo libera para que se concentre en los aspectos más interesantes del modelo estadístico.
A mediados de la década de 1990, ADMB se había ganado la aceptación de los investigadores que trabajaban en todos los aspectos de la gestión de recursos. Los modelos de población basados en el ADMB se utilizan para monitorear una variedad de especies en peligro de extinción y poblaciones de peces de valor comercial, incluidas ballenas, delfines, leones marinos, pingüinos, albatros, abulón, langostas, atunes, marlines, tiburones, rayas, anchoas y abadejos. ADMB también se ha utilizado para reconstruir los movimientos de muchas especies de animales rastreados 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 la segunda y tercera derivadas y el uso de la diferenciación automática en modo directo seguido de dos barridos del modelo inverso AD en ciertos casos.
Proyecto ADMB
En 2007, un grupo de usuarios de ADMB que incluía a John Sibert, Mark Maunder y Anders Nielsen se preocupó por el desarrollo y mantenimiento a largo plazo de ADMB. Se llegó a un acuerdo con Otter Research para vender los derechos de autor a ADMB con el fin de convertir ADMB en un proyecto de código abierto y distribuirlo sin cargo. La Fundación ADMB sin fines de lucro se creó para coordinar el desarrollo y promover el uso de ADMB. La Fundación ADMB redactó una propuesta para la Fundación Gordon y Betty Moore de los fondos para comprar ADMB de Otter Research. La Fundación Moore otorgó una subvención al Centro Nacional de Análisis y Síntesis Ecológicos de la Universidad de California en Santa Bárbara a fines de 2007 para que los Regentes de la Universidad de California pudieran comprar los derechos de ADMB. La compra se completó a mediados de 2008 y las bibliotecas ADMB completas se publicaron en el sitio web del Proyecto ADMB en diciembre de 2008. En mayo de 2009, se habían realizado más de 3000 descargas de las bibliotecas. El código fuente estuvo disponible en diciembre de 2009. A mediados de 2010, ADMB era compatible con todos los sistemas operativos comunes (Windows, Linux, MacOS y Sun / SPARC), para todos los compiladores de C ++ comunes (GCC, Visual Studio, Borland) y para arquitecturas de 32 y 64 bits.
Los esfuerzos de la Fundación ADMB durante los dos primeros años del Proyecto ADMB se han centrado en automatizar la construcción de ADMB para diferentes plataformas, simplificar la instalación y crear entornos de trabajo fáciles de usar. Los desarrollos técnicos planificados incluyen la paralelización de los cálculos internos, la implementación de MCMC híbrida y la mejora de la gran matriz dispersa para su uso en modelos de efectos aleatorios.
Ver también
Referencias
- ^ [1]
- ^ "proyecto admb" . Proyecto ADMB. Archivado desde el 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: utilizando la diferenciación automática para la inferencia estadística de modelos no lineales complejos altamente parametrizados. Optim. Métodos Softw. 27: 233-249
- ^ "AUTODIF: una extensión de lenguaje de matriz C ++ con diferenciación automática para su uso en estadísticas y modelado no lineal" (PDF) . Proyecto ADMB. Archivado desde el original (PDF) el 11 de julio de 2011 . Consultado el 3 de diciembre de 2008 .
- ^ a b "Efectos aleatorios en AD Model Builder: guía del usuario de ADMB-RE" (PDF) . Proyecto ADMB. Archivado desde el original (PDF) el 11 de julio de 2011 . Consultado el 3 de diciembre de 2008 .
- ^ "Introducción a AD Model Builder versión 9.0.0" (PDF) . Proyecto ADMB. Archivado desde el original (PDF) el 4 de enero de 2011 . Consultado el 3 de diciembre de 2008 .
- ^ "Base de usuarios de ADMB y aplicaciones principales" . Proyecto ADMB. Archivado desde el original el 24 de julio de 2011 . Consultado el 2 de diciembre de 2008 .
- ^ "Bibliografía: evaluaciones de stock" . Proyecto ADMB. Archivado desde el original el 26 de febrero de 2013 . Consultado el 3 de diciembre de 2008 .
- ^ a b "Descargas ADMB" . Proyecto ADMB . Consultado el 28 de julio de 2010 .
- ^ "Comunicado de prensa de UCSB:" Software de evaluación de poblaciones de peces ahora accesible al público " " . Universidad de California, Santa Bárbara . Consultado el 9 de diciembre de 2008 .
- ^ "Código fuente ADMB disponible" . Proyecto ADMB. Archivado desde el 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ática Industrial y Aplicada. 1992.
- ^ D. Fournier e I. Doonan. Un método de evaluación de poblaciones basado en la talla que utiliza un modelo de diferencia de retardo generalizado . Revista Canadiense de Pesca y Ciencias Acuáticas, 44 (2): 422-437, 1987.
- ^ D. Fournier y A. Warburton. Evaluación de modelos de ordenación pesquera mediante control adaptativo simulado: introducción del modelo compuesto . Revista Canadiense de Pesca y Ciencias Acuáticas. 46 (6): 1002-1012, 1989.
- ^ D. Fournier, J. Sibert, J. Majkowski y J. Hampton. MULTIFAN es un método basado en la probabilidad para estimar los parámetros de crecimiento y la composición por edades a partir de múltiples conjuntos de datos de frecuencia de tallas ilustrados con datos para el atún rojo del sur (Thunnus maccoyii) . Revista Canadiense de Pesca y Ciencias Acuáticas, 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 barrilete (Katsuwonus pelamis) . Revista Canadiense de Pesca y Ciencias Acuáticas, 56 (6): 925-938, 1999.
- ^ KN Holland, R. Brill, R. Chang, J. Sibert y D. Fournier. Termogregulación fisiológica y conductual en patudo (Thunnus obesus) . Nature, 358: 410--412, 1992.
enlaces externos
- Para descargas de instaladores, manuales y código fuente: The ADMB Project
- Para apoyar el Proyecto ADMB: La Fundación ADMB
- Desarrollador original de ADMB: Otter Research Ltd