Articulo de referencia

Algoritmo de muestreo anidado

El algoritmo de muestreo anidado es un enfoque computacional para los problemas de estadística bayesiana de comparación de modelos y generación de muestras a partir de distribuc...

El algoritmo de muestreo anidado es un enfoque computacional para los problemas de estadística bayesiana de comparación de modelos y generación de muestras a partir de distribuciones posteriores. Fue desarrollado en 2004 por el físico John Skilling. [ 1 ]

Fondo

El teorema de Bayes se puede utilizar para la selección de modelos , cuando se tiene un par de modelos en competencia.METRO1{\displaystyle M_{1}}yMETRO2{\displaystyle M_{2}}para datosD{\displaystyle D}Una de estas afirmaciones puede ser cierta (aunque se desconoce cuál), pero ambas no pueden serlo simultáneamente. La selección de modelos bayesianos proporciona un método para evaluar el factor de Bayes , que indica el mérito relativo de cada modelo.

La probabilidad posterior deMETRO1{\displaystyle M_{1}}se puede calcular como:

PAG(METRO1D)=PAG(DMETRO1)PAG(METRO1)PAG(D)=PAG(DMETRO1)PAG(METRO1)PAG(DMETRO1)PAG(METRO1)+PAG(DMETRO2)PAG(METRO2)=11+PAG(DMETRO2)PAG(DMETRO1)PAG(METRO2)PAG(METRO1){\displaystyle {\begin{aligned}P(M_{1}\mid D)&={\frac {P(D\mid M_{1})P(M_{1})}{P(D)}}\\&={\frac {P(D\mid M_{1})P(M_{1})}{P(D\mid M_{1})P(M_{1})+P(D\mid M_{2})P(M_{2})}}\\&={\frac {1}{1+{\frac {P(D\mid M_{2})}{P(D\mid M_{1})}}{\frac {P(M_{2})}{P(M_{1})}}}}\end{aligned}}}

Las probabilidades previasMETRO1{\displaystyle M_{1}}yMETRO2{\displaystyle M_{2}}ya se conocen, ya que son elegidos por el investigador con antelación. Sin embargo, el factor de Bayes restantePAG(DMETRO2)/PAG(DMETRO1){\displaystyle P(D\mid M_{2})/P(D\mid M_{1})}no es tan fácil de evaluar, ya que en general requiere marginalizar parámetros molestos. En general,METRO1{\displaystyle M_{1}}tiene un conjunto de parámetros que se pueden agrupar y llamarθ{\displaystyle \theta }, yMETRO2{\displaystyle M_{2}}tiene su propio vector de parámetros que pueden ser de diferente dimensionalidad, pero aún así se denominaθ{\displaystyle \theta }. La marginación paraMETRO1{\displaystyle M_{1}}es

PAG(DMETRO1)=dθPAG(Dθ,METRO1)PAG(θMETRO1){\displaystyle P(D\mid M_{1})=\int d\theta \,P(D\mid \theta ,M_{1})P(\theta \mid M_{1})}

y asimismo paraMETRO2{\displaystyle M_{2}}Esta integral suele ser intratable analíticamente, y en estos casos es necesario emplear un algoritmo numérico para encontrar una aproximación. El algoritmo de muestreo anidado fue desarrollado por John Skilling específicamente para aproximar estas integrales de marginalización, y tiene el beneficio adicional de generar muestras de la distribución posterior.PAG(θD,METRO1){\displaystyle P(\theta \mid D,M_{1})}. [ 2 ] Es una alternativa a los métodos de la literatura bayesiana [ 3 ] como el muestreo de puente y el muestreo de importancia defensiva.

Aquí se presenta una versión simple del algoritmo de muestreo anidado, seguida de una descripción de cómo calcula la densidad de probabilidad marginal.Z=PAG(DMETRO){\displaystyle Z=P(D\mid M)}dóndeMETRO{\displaystyle M}esMETRO1{\displaystyle M_{1}}oMETRO2{\displaystyle M_{2}}:

Comience connorte{\displaystyle N}agujasθ1,,θnorte{\displaystyle \theta _{1},\ldots ,\theta _{N}}muestreado de anterior. parai=1{\displaystyle i=1}aj{\displaystyle j}hacer % El número de iteraciones j se elige por estimación. Li:=min({\displaystyle L_{i}:=\min(}valores de probabilidad actuales de los puntos){\displaystyle )}; incógnitai:=exp(i/norte);{\displaystyle X_{i}:=\exp(-i/N);}wi:=incógnitai1incógnitai{\displaystyle w_{i}:=X_{i-1}-X_{i}}Z:=Z+Liwi;{\displaystyle Z:=Z+L_{i}\cdot w_{i};} Guarda el punto con menor probabilidad como punto de muestra con pesowi{\displaystyle w_{i}}. Actualizar el punto con menor probabilidad mediante muestreo de la distribución previa restringida a probabilidades superioresLi{\displaystyle L_{i}}, por ejemplo con el método de Monte Carlo de cadena de Markov . fin de retornoZ{\displaystyle Z};

En cada iteración,incógnitai{\displaystyle X_{i}}es una estimación de la cantidad de masa previa cubierta por el hipervolumen en el espacio de parámetros de todos los puntos con probabilidad mayor queθi{\displaystyle \theta _{i}}El factor de ponderaciónwi{\displaystyle w_{i}}es una estimación de la cantidad de masa previa que se encuentra entre dos hipersuperficies anidadas.{θPAG(Dθ,METRO)=PAG(Dθi1,METRO)}{\displaystyle \{\theta \mid P(D\mid \theta ,M)=P(D\mid \theta _{i-1},M)\}}y{θPAG(Dθ,METRO)=PAG(Dθi,METRO)}{\displaystyle \{\theta \mid P(D\mid \theta ,M)=P(D\mid \theta _{i},M)\}}. El paso de actualizaciónZ:=Z+Liwi{\displaystyle Z:=Z+L_{i}w_{i}}calcula la suma sobrei{\displaystyle i}deLiwi{\displaystyle L_{i}w_{i}}para aproximar numéricamente la integral

PAG(DMETRO)=PAG(Dθ,METRO)PAG(θMETRO)dθ=PAG(Dθ,METRO)dPAG(θMETRO){\displaystyle {\begin{aligned}P(D\mid M)&=\int P(D\mid \theta ,M)P(\theta \mid M)\,d\theta \\&=\int P(D\mid \theta ,M)\,dP(\theta \mid M)\end{aligned}}}

En el límitej{\displaystyle j\to \infty }, este estimador tiene un sesgo positivo de orden1/norte{\displaystyle 1/N}[ 4 ] que se puede eliminar usando(11/norte){\displaystyle (1-1/N)}en lugar de laexp(1/norte){\displaystyle \exp(-1/N)}en el algoritmo anterior.

La idea es subdividir el rango deF(θ)=PAG(Dθ,METRO){\displaystyle f(\theta )=P(D\mid \theta ,M)}y estimar, para cada intervalo[F(θi1),F(θi)]{\displaystyle [f(\theta _{i-1}),f(\theta _{i})]}, qué tan probable es a priori que un elemento elegido al azarθ{\displaystyle \theta }se correspondería con este intervalo. Esto puede considerarse como una forma bayesiana de implementar numéricamente la integración de Lebesgue . [ 5 ] [ 6 ]

Algoritmos de muestreo previo con restricción de verosimilitud

El punto con menor probabilidad se puede actualizar con algunos pasos de cadena de Markov Monte Carlo de acuerdo con el prior, aceptando solo pasos que mantengan la probabilidad por encimaLi{\displaystyle L_{i}}El procedimiento original descrito por Skilling (presentado anteriormente en pseudocódigo ) no especifica qué algoritmo concreto debe utilizarse para elegir nuevos puntos con mayor probabilidad, pero se han desarrollado varios algoritmos. [ 7 ]

Los propios ejemplos de código de Skilling (como uno en Sivia y Skilling (2006), [ 8 ] disponible en el sitio web de Skilling ) eligen un punto existente aleatorio y seleccionan un punto cercano elegido por una distancia aleatoria del punto existente; si la probabilidad es mejor, entonces el punto es aceptado, de lo contrario es rechazado y el proceso se repite. Posteriormente, se han desarrollado varios algoritmos MCMC adaptados para el muestreo anidado, incluido el muestreo por rebanadas, [ 5 ] popularizado por PolyChord, y el Monte Carlo hamiltoniano restringido . [ 9 ]

Una línea alternativa de algoritmos se basa en el muestreo por rechazo . Mukherjee et al. (2006) [ 10 ] encontraron tasas de aceptación más altas al seleccionar puntos aleatoriamente dentro de un elipsoide dibujado alrededor de los puntos existentes; esta idea fue refinada por el algoritmo MultiNest [ 11 ] , que maneja mejor las distribuciones posteriores multimodales utilizando múltiples elipsoides construidos a partir del agrupamiento de los puntos vivos. Los métodos de rechazo pueden ser eficientes hasta 20-30 dimensiones. [ 7 ]

Implementaciones

Existen ejemplos de implementación que demuestran el algoritmo de muestreo anidado, disponibles para su descarga pública y escritos en varios lenguajes de programación .

  • En el sitio web de John Skilling se pueden encontrar ejemplos sencillos en C , R o Python .
  • Una versión en Haskell de los códigos simples anteriores está disponible en Hackage .
  • En el sitio web de Bojan Nikolic se describe un ejemplo en R diseñado originalmente para ajustar espectros , que también está disponible en GitHub .
  • Un NestedSampler forma parte de la caja de herramientas de Python BayesicFitting [ 12 ] para el ajuste de modelos genéricos y el cálculo de evidencia. Está disponible en GitHub .
  • Existe una implementación en C++ , llamada DIAMONDS, en GitHub .
  • En GitHub se encuentra disponible un ejemplo paralelo en Python altamente modular para aplicaciones en física estadística y física de la materia condensada .
  • pymatnest es un paquete diseñado para explorar el panorama energético de diferentes materiales, calcular variables termodinámicas a temperaturas arbitrarias y localizar transiciones de fase; está disponible en GitHub.
  • El paquete de software MultiNest es capaz de realizar muestreo anidado en distribuciones posteriores multimodales. [ 11 ] [ 13 ] Tiene interfaces para entradas en C++, Fortran y Python, y está disponible en GitHub .
  • PolyChord es otro paquete de software de muestreo anidado disponible en GitHub . La eficiencia computacional de PolyChord escala mejor con un aumento en el número de parámetros que MultiNest, lo que significa que PolyChord puede ser más eficiente para problemas de alta dimensión. [ 14 ] Tiene interfaces para funciones de verosimilitud escritas en Python, Fortran, C o C++. PolyChord se puede usar junto con Cobaya, [ 15 ] un código basado en Python para el análisis bayesiano de modelos físicos jerárquicos. Cobaya facilita la exploración de posteriores usando varios muestreadores de Monte Carlo, permite la maximización y el reponderado de importancia de las muestras, e incluye interfaces para códigos de teoría cosmológica y verosimilitudes.
  • NestedSamplers.jl, un paquete de Julia para implementar algoritmos de muestreo anidado elipsoidal simple y múltiple, está disponible en GitHub .
  • Korali es un marco de alto rendimiento para la cuantificación de la incertidumbre, la optimización y el aprendizaje profundo por refuerzo, que también implementa el muestreo anidado.
  • El paquete de software UltraNest implementa un algoritmo de muestreo dinámico anidado multielipsoidal generalizado y rápido, compatible con MPI . El usuario también puede elegir algoritmos de muestreo por secciones. Escrito en Python, cuenta con interfaces para Python, C, Fortran, R y Julia, y está disponible en GitHub .

Aplicaciones

Desde que se propuso el muestreo anidado en 2004, se ha utilizado en muchas áreas científicas, [ 6 ] en particular en astronomía . Un artículo sugirió usar el muestreo anidado para la selección de modelos cosmológicos y la detección de objetos, ya que "combina de forma única precisión, aplicabilidad general y viabilidad computacional". [ 10 ] Se ha sugerido un refinamiento del algoritmo para manejar posteriores multimodales como un medio para detectar objetos astronómicos en conjuntos de datos existentes. [ 13 ] Otras aplicaciones del muestreo anidado se encuentran en el campo de la actualización de elementos finitos, donde el algoritmo se utiliza para elegir un modelo de elementos finitos óptimo , y esto se aplicó a la dinámica estructural . [ 16 ] Este método de muestreo también se ha utilizado en el campo del modelado de materiales. Se puede utilizar para aprender la función de partición de la mecánica estadística y derivar propiedades termodinámicas . [ 17 ]

Diagnóstico

Se han desarrollado diagnósticos específicos para el muestreo anidado con el fin de verificar que una ejecución de muestreo anidado se esté realizando correctamente. Esto incluye una prueba U que comprueba que el rango de la probabilidad del punto de reemplazo se distribuye uniformemente entre los puntos activos, [ 18 ] [ 7 ] la distancia de salto de la cadena de Markov Monte Carlo, [ 19 ] la comparación de la consistencia de varias ejecuciones de muestreo anidado independientes, [ 20 ] [ 21 ] incluyendo ejecuciones repetidas con un mayor número de pasos MCMC. El cálculo también puede comprobarse con técnicas de aplicación genérica, como la calibración basada en simulación. [ 22 ]

Muestreo anidado dinámico

El muestreo anidado dinámico es una generalización del algoritmo de muestreo anidado en el que el número de muestras tomadas en diferentes regiones del espacio de parámetros se ajusta dinámicamente para maximizar la precisión del cálculo. [ 23 ] Esto puede conducir a mejoras en la precisión y la eficiencia computacional en comparación con el algoritmo de muestreo anidado original, en el que la asignación de muestras no se puede cambiar y, a menudo, se toman muchas muestras en regiones que tienen poco efecto en la precisión del cálculo.

Los paquetes de software de muestreo dinámico anidado disponibles públicamente incluyen:

  • dynesty : una implementación en Python de muestreo anidado dinámico que se puede descargar desde GitHub . [ 24 ]
  • dyPolyChord: un paquete de software que se puede utilizar con Python, C++ y Fortran para distribuciones de probabilidad y a priori. [ 25 ] dyPolyChord está disponible en GitHub .
  • UltraNest (ver arriba).

El muestreo dinámico anidado se ha aplicado a una variedad de problemas científicos, incluyendo el análisis de ondas gravitacionales, [ 26 ] el mapeo de distancias en el espacio [ 27 ] y la detección de exoplanetas. [ 28 ]

Véase también

Referencias

  1. Skilling, John (2004). "Muestreo anidado". Actas de la Conferencia AIP . 735 : 395–405 . Bibcode : 2004AIPC..735..395S . doi : 10.1063/1.1835238 .
  2. Skilling, John (2006). "Muestreo anidado para computación bayesiana general" . Análisis bayesiano . 1 (4): 833– 860. doi : 10.1214/06-BA127 .
  3. Chen, Ming-Hui, Shao, Qi-Man y Ibrahim, Joseph George (2000). Métodos de Monte Carlo en computación bayesiana . Springer. ISBN 978-0-387-98935-8.{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  4. Walter, Clement (2017). "Estimación de Monte Carlo basada en procesos puntuales". Statistics and Computing . 27 : 219–236 . arXiv : 1412.6368 . doi : 10.1007/s11222-015-9617-y . S2CID 14639080 . 
  5. 1 2 Jasa, Tomislav; Xiang, Ning (2012). "Muestreo anidado aplicado en el análisis bayesiano de decaimiento acústico de salas". Journal of the Acoustical Society of America . 132 (5): 3251– 3262. Bibcode : 2012ASAJ..132.3251J . doi : 10.1121/1.4754550 . PMID 23145609 . S2CID 20876510 .  
  6. 1 2 Ashton, Greg; Bernstein, Noam; Buchner, Johannes; Chen, Xi; Csányi, Gábor; Fowlie, Andrew; Feroz, Farhan; ​​Griffiths, Matthew; Handley, Will; Habeck, Michael; Higson, Edward; Hobson, Michael; Lasenby, Anthony; Parkinson, David; Pártay, Livia B.; Pitkin, Matthew; Schneider, Doris; Speagle, Joshua S.; South, Leah; Veitch, John; Wacker, Philipp; Wales, David J.; Yallup, David (26 de mayo de 2022). "Muestreo anidado para científicos físicos". Nature Reviews Methods Primers . 2 (1) 39. arXiv : 2205.15570 . Bibcode : 2022NRvMP...2...39A . doi : 10.1038/s43586-022-00121-x .
  7. 1 2 3 Buchner, Johannes (1 de enero de 2023). "Métodos de muestreo anidado". Statistics Surveys . 17 : 169. arXiv : 2101.09675 . Bibcode : 2023StSur..17..169B . doi : 10.1214/23-SS144 .
  8. Sivia, Devinderjit; Skilling, John (junio de 2006). Análisis de datos: un tutorial bayesiano . Oxford: Oxford University Press, EE. UU. ISBN 978-0-19-856832-2.
  9. Betancourt, Michael (2011). "Muestreo anidado con Monte Carlo hamiltoniano restringido". AIP Conf. Proc . AIP Conference Proceedings. 1305 (1): 165– 172. arXiv : 1005.0157 . Bibcode : 2011AIPC.1305..165B . doi : 10.1063/1.3573613 .
  10. 1 2 Mukherjee, P.; Parkinson, D.; Liddle, AR (2006). "Un algoritmo de muestreo anidado para la selección de modelos cosmológicos". Astrophysical Journal . 638 (2): 51– 54. arXiv : astro-ph/0508461 . Bibcode : 2006ApJ...638L..51M . doi : 10.1086/501068 . S2CID 6208051 . 
  11. 1 2 Feroz, F.; Hobson, MP; Bridges, M. (2008). "MULTINEST: una herramienta de inferencia bayesiana eficiente y robusta para cosmología y física de partículas" . MNRAS . 398 (4): 1601– 1614. arXiv : 0809.3437 . doi : 10.1111/j.1365-2966.2009.14548.x .
  12. Kester, D.; Mueller, M. (2021). "BayesicFitting, una caja de herramientas de PYTHON para ajuste bayesiano y cálculo de evidencia: Incluye una implementación de muestreo anidado" . Astronomía y Computación . 37 100503. arXiv : 2109.11976 . Bibcode : 2021A & C....3700503K . doi : 10.1016/j.ascom.2021.100503 .
  13. 1 2 Feroz, F.; Hobson, MP (2008). "Muestreo anidado multimodal: una alternativa eficiente y robusta a los métodos de Monte Carlo de cadena de Markov para análisis de datos astronómicos" . MNRAS . 384 (2): 449– 463. arXiv : 0704.3704 . Bibcode : 2008MNRAS.384..449F . doi : 10.1111/j.1365-2966.2007.12353.x . S2CID 14226032 . 
  14. Handley, Will; Hobson, Mike; Lasenby, Anthony (2015). "polychord: muestreo anidado de próxima generación" . Monthly Notices of the Royal Astronomical Society . 453 (4): 4384– 4398. arXiv : 1506.00171 . Bibcode : 2015MNRAS.453.4384H . doi : 10.1093/mnras/stv1911 . S2CID 118882763 . 
  15. Torrado, Jesús; Lewis, Antony (2021-05-01). "Cobaya: código para el análisis bayesiano de modelos físicos jerárquicos" . Journal of Cosmology and Astroparticle Physics . 2021 (5): 057. arXiv : 2005.05290 . Bibcode : 2021JCAP...05..057T . doi : 10.1088/1475-7516/2021/05/057 . ISSN 1475-7516 . 
  16. Mthembu, L.; Marwala, T.; Friswell, MI; Adhikari, S. (2011). "Selección de modelos en la actualización de modelos de elementos finitos utilizando la estadística de evidencia bayesiana". Mechanical Systems and Signal Processing . 25 (7): 2399– 2412. Bibcode : 2011MSSP...25.2399M . doi : 10.1016/j.ymssp.2011.04.001 .
  17. Partay, Livia B. (2010). "Muestreo eficiente de espacios configuracionales atómicos". The Journal of Physical Chemistry B . 114 (32): 10502– 10512. arXiv : 0906.3544 . Bibcode : 2010JPCB..11410502P . doi : 10.1021/jp1012973 . PMID 20701382 . S2CID 16834142 .  
  18. Fowlie, Andrew; Handley, Will; Su, Liangliang (1 de octubre de 2020). "Verificaciones cruzadas de muestreo anidado mediante estadísticas de orden" . Monthly Notices of the Royal Astronomical Society . 497 (4): 5256– 5263. arXiv : 2006.03371 . doi : 10.1093/mnras/staa2345 .
  19. Buchner, Johannes (febrero de 2024). "Distancia de salto relativa: un diagnóstico para el muestreo anidado". arXiv : 2402.11936 [ stat.ME ].
  20. Higson, Edward; Handley, Will; Hobson, Mike; Lasenby, Anthony (1 de septiembre de 2018). "Errores de muestreo en la estimación de parámetros de muestreo anidado". Análisis bayesiano . 13 (3): 873. arXiv : 1703.09701 . Bibcode : 2018BayAn..13..873H . doi : 10.1214/17-BA1075 .
  21. Higson, Edward; Handley, Will; Hobson, Michael; Lasenby, Anthony (21 de febrero de 2019). "nestcheck : pruebas de diagnóstico para cálculos de muestreo anidado" . Monthly Notices of the Royal Astronomical Society . 483 (2): 2044–2056 . arXiv : 1804.06406 . doi : 10.1093/mnras/sty3090 . 
  22. Talts, Sean; Betancourt, Michael; Simpson, Daniel; Vehtari, Aki; Gelman, Andrew (abril de 2018). "Validación de algoritmos de inferencia bayesiana con calibración basada en simulación". arXiv : 1804.06788 [ stat.ME ].
  23. Higson, Edward; Handley, Will; Hobson, Michael; Lasenby, Anthony (2019). "Muestreo anidado dinámico: un algoritmo mejorado para la estimación de parámetros y el cálculo de evidencia". Statistics and Computing . 29 (5): 891– 913. arXiv : 1704.03459 . Bibcode : 2019S & C....29..891H . doi : 10.1007/s11222-018-9844-0 . S2CID 53514669 . 
  24. Speagle, Joshua (2020). "dynesty: Un paquete de muestreo anidado dinámico para estimar posteriores y evidencias bayesianas" . Monthly Notices of the Royal Astronomical Society . 493 (3): 3132– 3158. arXiv : 1904.02180 . doi : 10.1093/mnras/staa278 . S2CID 102354337 . 
  25. Higson, Edward (2018). "dyPolyChord: muestreo anidado dinámico con PolyChord" . Journal of Open Source Software . 3 (29): 965. doi : 10.21105/joss.00965 .
  26. Ashton, Gregory; et al. (2019). "Bilby: Una biblioteca de inferencia bayesiana fácil de usar para la astronomía de ondas gravitacionales" . The Astrophysical Journal Supplement Series . 241 (2): 13. arXiv : 1811.02042 . Bibcode : 2019ApJS..241...27A . doi : 10.3847/1538-4365/ab06fc . S2CID 118677076 .  
  27. Zucker, Catherine; et al. (2018). "Mapeo de distancias a través de la nube molecular de Perseo utilizando observaciones de {CO}, fotometría estelar y mediciones de paralaje de Gaia {DR}2" . The Astrophysical Journal . 869 (1): 83. arXiv : 1803.08931 . doi : 10.3847/1538-4357/aae97c . S2CID 119446622 .  
  28. Günther, Maximilian; et al. (2019). "Una supertierra y dos sub-Neptunos transitando la enana M cercana y tranquila TOI-270". Nature Astronomy . 3 (12): 1099– 1108. arXiv : 1903.06107 . Bibcode : 2019NatAs...3.1099G . doi : 10.1038/s41550-019-0845-5 . S2CID 119286334 .