PyMC (anteriormente conocida como PyMC3) es una biblioteca de programación probabilística para Python . Se puede utilizar para el modelado estadístico bayesiano y el aprendizaje automático probabilístico.
PyMC realiza inferencias basadas en algoritmos avanzados de Monte Carlo de cadena de Markov y/o ajuste variacional. [ 2 ] [ 3 ] [ 4 ] [ 5 ] Es una reescritura desde cero de la versión anterior del software PyMC. [ 6 ] A diferencia de PyMC2, que había utilizado extensiones de Fortran para realizar cálculos, PyMC se basa en PyTensor, una biblioteca de Python que permite definir, optimizar y evaluar eficientemente expresiones matemáticas que involucran matrices multidimensionales. Desde la versión 3.8, PyMC se basa en ArviZ para manejar gráficos, diagnósticos y verificaciones estadísticas. PyMC y Stan son las dos herramientas de programación probabilística más populares . [ 7 ] PyMC es un proyecto de código abierto , desarrollado por la comunidad y ha sido patrocinado fiscalmente por NumFOCUS . [ 8 ]
PyMC se ha utilizado para resolver problemas de inferencia en varios dominios científicos, incluyendo astronomía , [ 9 ] [ 10 ] epidemiología , [ 11 ] [ 12 ] biología molecular, [ 13 ] cristalografía, [ 14 ] [ 15 ] química , [ 16 ] ecología [ 17 ] [ 18 ] y psicología. [ 19 ] Versiones anteriores de PyMC también se utilizaron ampliamente, por ejemplo en ciencias climáticas, [ 20 ] salud pública, [ 21 ] neurociencia , [ 22 ] y parasitología. [ 23 ] [ 24 ]
Después de que Theano anunciara sus planes de descontinuar el desarrollo en 2017, [ 25 ] el equipo de PyMC evaluó TensorFlow Probability como un backend computacional, [ 26 ] pero decidió en 2020 bifurcar Theano bajo el nombre de Aesara. [ 27 ] Gran parte del código base de Theano se ha refactorizado y se agregó la compilación a través de JAX [ 28 ] y Numba . El equipo de PyMC ha lanzado el backend computacional revisado bajo el nombre de PyTensor y continúa el desarrollo de PyMC. [ 29 ]
Motores de inferencia
PyMC implementa algoritmos de Monte Carlo de cadena de Markov (MCMC) basados en gradientes y sin gradiente para la inferencia bayesiana, así como métodos bayesianos variacionales estocásticos basados en gradiente para la inferencia bayesiana aproximada.
- Algoritmos basados en MCMC:
- El muestreador No-U-Turn [ 30 ] (NUTS), una variante del método de Monte Carlo hamiltoniano y el motor predeterminado de PyMC para variables continuas
- Metropolis–Hastings , el motor predeterminado de PyMC para variables discretas
- Método de Monte Carlo secuencial para posteriores estáticos
- Método de Monte Carlo secuencial para computación bayesiana aproximada
- Algoritmos de inferencia variacional :
- Inferencia variacional de caja negra [ 31 ]
Véase también
- Stan es un lenguaje de programación probabilística para inferencia estadística escrito en C++.
- ArviZ es una biblioteca de Python para el análisis exploratorio de modelos bayesianos.
- Bambi es una interfaz de alto nivel para la construcción de modelos bayesianos basada en PyMC.
- Lista de bibliotecas matemáticas de código abierto
Referencias
- ↑ "Versión 6.1.0" . 7 de julio de 2026. Consultado el 8 de julio de 2026 .
- ^ Abril-Pla O, Andreani V, Carroll C, Dong L, Fonnesbeck CJ, Kochurov M, Kumar R, Lao J, Luhmann CC, Martin OA, Osthege M, Vieira R, Wiecki T, Zinkov R. (2023) PyMC: un marco de programación probabilística moderno e integral en Python. Computación entre pares. Ciencia. 9:e1516 doi : 10.7717/peerj-cs.1516
- ↑ Martin, Osvaldo (2024). Análisis bayesiano con Python . Packt Publishing Ltd. ISBN 978-1-80512-716-1Consultado el 24 de febrero de 2024 .
- ↑ Martin, Osvaldo; Kumar, Ravin; Lao, Junpeng (2021). Modelado y computación bayesiana en Python . CRC-press. pp. 1–420 . ISBN 978-0-367-89436-8Consultado el 7 de julio de 2022 .
- ↑ Davidson-Pilon, Cameron (30 de septiembre de 2015). Métodos bayesianos para hackers: programación probabilística e inferencia bayesiana . Addison-Wesley Professional. ISBN 978-0-13-390292-1.
- ↑ "documentación" . Consultado el 20 de septiembre de 2017 .
- ↑ "Los algoritmos detrás de la programación probabilística" . Consultado el 10 de marzo de 2017 .
- ↑ "NumFOCUS anuncia un nuevo proyecto patrocinado fiscalmente: PyMC3" . NumFOCUS | Código abierto = Mejor ciencia . Consultado el 10 de marzo de 2017 .
- ↑ Greiner, J.; Burgess, JM; Savchenko, V.; Yu, H.-F. (2016). "Sobre el evento Fermi-GBM 0,4 s después de GW150914" . The Astrophysical Journal Letters . 827 (2): L38. arXiv : 1606.00314 . Bibcode : 2016ApJ...827L..38G . doi : 10.3847/2041-8205/827/2/L38 . ISSN 2041-8205 . S2CID 3529170 .
- ↑ Hilbe, Joseph M.; Souza, Rafael S. de; Ishida, Emille EO (30 de abril de 2017). Modelos bayesianos para datos astrofísicos: uso de R, JAGS, Python y Stan . Cambridge University Press. ISBN 978-1-108-21074-4.
- ↑ Brauner, Jan M.; Mindermann, Sören; Sharma, Mrinank; Johnston, David; Salvatier, John; Gavenčiak, Tom; Stephenson, Anna B.; Leech, Gavin; Altman, George; Mikulik, Vladimir; Norman, Alexander John; Monrad, Joshua Teperowski; Besiroglu, Tamay; Ge, Hong; Hartwick, Meghan A.; Teh, Yee Whye; Chindelevitch, Leonid; Gal, Yarin; Kulveit, Jan (2020-12-15). " Inferir la efectividad de las intervenciones gubernamentales contra la COVID-19" . Science . 371 (6531) eabd9338. doi : 10.1126/science.abd9338 . PMC 7877495. PMID 33323424 .
- ↑ Systrom, Kevin; Vladek, Thomas; Krieger, Mike. "Repositorio de Github de Rt.live" . Rt.live . Consultado el 10 de enero de 2021 .
- ↑ Wagner, Stacey D.; Struck, Adam J.; Gupta, Riti; Farnsworth, Dylan R.; Mahady, Amy E.; Eichinger, Katy; Thornton, Charles A.; Wang, Eric T.; Berglund, J. Andrew (2016-09-28). "Regulación dependiente de la dosis del empalme alternativo por proteínas MBNL revela biomarcadores para la distrofia miotónica" . PLOS Genetics . 12 (9) e1006316. doi : 10.1371/journal.pgen.1006316 . ISSN 1553-7404 . PMC 5082313. PMID 27681373 .
- ↑ Sharma, Amit; Johansson, Linda; Dunevall, Elin; Wahlgren, Weixiao Y.; Neutze, Richard; Katona, Gergely (2017-03-01). " Asimetría en datos de cristalografía de femtosegundos en serie" . Acta Crystallographica Sección A. 73 ( 2): 93– 101. Bibcode : 2017AcCry..73...93S . doi : 10.1107/s2053273316018696 . ISSN 2053-2733 . PMC 5332129. PMID 28248658 .
- ↑ Katona, Gergely; Garcia-Bonete, Maria-Jose; Lundholm, Ida (2016-05-01). "Estimating the difference between structure-factor amplitudes using multivariate Bayesian inference" . Acta Crystallographica Section A . 72 (3): 406– 411. Bibcode : 2016AcCry..72..406K . doi : 10.1107/S2053273316003430 . ISSN 2053-2733 . PMC 4850660 . PMID 27126118 .
- ↑ Garay, Pablo G.; Martin, Osvaldo A.; Scheraga, Harold A.; Vila, Jorge A. (2016-07-21). "Detección de metilación, acetilación y glicosilación de residuos proteicos mediante el monitoreo de cambios en el desplazamiento químico de 13C: Un estudio químico cuántico" . PeerJ . 4 e2253. doi : 10.7717/peerj.2253 . ISSN 2167-8359 . PMC 4963218. PMID 27547559 .
- ↑ Wang, Yan; Huang, Hong; Huang, Lida; Ristic, Branko (2017). "Evaluación de métodos de estimación de fuentes bayesianas con observaciones de Prairie Grass y modelo de pluma gaussiana: una comparación de funciones de verosimilitud y medidas de distancia". Atmospheric Environment . 152 : 519–530 . Bibcode : 2017AtmEn.152..519W . doi : 10.1016/j.atmosenv.2017.01.014 .
- ↑ MacNeil, M. Aaron; Chong-Seng, Karen M.; Pratchett, Deborah J.; Thompson, Cassandra A.; Messmer, Vanessa; Pratchett, Morgan S. (2017-03-14). "Edad y crecimiento de una población emergente de Acanthaster cf. solaris dentro de la Gran Barrera de Coral" (PDF) . Diversity . 9 (1): 18. doi : 10.3390/d9010018 .
- ↑ Tünnermann, Jan; Scharlau, Ingrid (2016). "Pistas visuales periféricas: su destino en el procesamiento y efectos en la atención y la percepción del orden temporal" . Frontiers in Psychology . 7 : 1442. doi : 10.3389/fpsyg.2016.01442 . ISSN 1664-1078 . PMC 5052275. PMID 27766086 .
- ↑ Graham, Nicholas AJ; Jennings, Simon; MacNeil, M. Aaron; Mouillot, David; Wilson, Shaun K. (2015). "Predicción de cambios de régimen impulsados por el clima frente al potencial de rebote en los arrecifes de coral". Nature . 518 (7537): 94– 97. Bibcode : 2015Natur.518...94G . doi : 10.1038/nature14140 . PMID 25607371 . S2CID 4453338 .
- ↑ Mascarenhas, Maya N.; Flaxman, Seth R.; Boerma, Ties; Vanderpoel, Sheryl; Stevens, Gretchen A. (2012-12-18). " Tendencias nacionales, regionales y mundiales en la prevalencia de la infertilidad desde 1990: un análisis sistemático de 277 encuestas de salud" . PLOS Medicine . 9 (12) e1001356. doi : 10.1371/journal.pmed.1001356 . ISSN 1549-1676 . PMC 3525527. PMID 23271957 .
- ↑ Cavanagh, James F; Wiecki, Thomas V; Cohen, Michael X; Figueroa, Christina M; Samanta, Johan; Sherman, Scott J; Frank, Michael J (2011). "La estimulación del núcleo subtalámico revierte la influencia mediofrontal sobre el umbral de decisión" . Nature Neuroscience . 14 (11): 1462– 1467. doi : 10.1038/nn.2925 . PMC 3394226. PMID 21946325 .
- ↑ Gething, Peter W.; Elyazar, Iqbal RF; Moyes, Catherine L.; Smith, David L.; Battle, Katherine E.; Guerra, Carlos A.; Patil, Anand P.; Tatem, Andrew J.; Howes, Rosalind E. (2012-09-06). "Un mapa mundial de malaria largamente descuidado: endemicidad de Plasmodium vivax en 2010" . PLOS Neglected Tropical Diseases . 6 (9) e1814. Bibcode : 2012PNTDi...6.1814G . doi : 10.1371/journal.pntd.0001814 . ISSN 1935-2735 . PMC 3435256. PMID 22970336 .
- ↑ Pullan, Rachel L.; Smith, Jennifer L.; Jasrasaria, Rashmi; Brooker, Simon J. (2014-01-21). "Cifras mundiales de infección y carga de morbilidad de infecciones por helmintos transmitidos por el suelo en 2010" . Parasites & Vectors . 7 : 37. Bibcode : 2014PVec....7...37P . doi : 10.1186/1756-3305-7-37 . ISSN 1756-3305 . PMC 3905661. PMID 24447578 .
- ^ Lamblin, Pascal (28 de septiembre de 2017). «MILA y el futuro de Theano» . theano-users (lista de correo) . Consultado el 28 de septiembre de 2017 .
- ↑ Desarrolladores, PyMC (17 de mayo de 2018). "Theano, TensorFlow y el futuro de PyMC" . Desarrolladores de PyMC . Consultado el 25 de enero de 2019 .
- ↑ "El futuro de PyMC3, o: Theano ha muerto, ¡larga vida a Theano!" . Desarrolladores de PyMC . 27 de octubre de 2020. Consultado el 10 de enero de 2021 .
- ^ Bradbury, James; Frostig, Roy; Hawkins, Peter; James, Mateo James; Leary, Chris; Maclaurin, Dougal; Nécula, George; Paszke, Adán; VanderPlas, Jake; Wanderman-Milne, Skye; Zhang, Qiao. "JAX" . GitHub . Consultado el 10 de enero de 2021 .
- ↑ "Cronología de PyMC" . Cronología de PyMC . Consultado el 10 de enero de 2021 .
- ↑ Hoffman, Matthew D.; Gelman, Andrew (abril de 2014). "The No-U-Turn Sampler: Adaptively Setting Path Lengths in Hamiltonian Monte Carlo" . Journal of Machine Learning Research . 15 : pp. 1593–1623.
- ↑ Kucukelbir, Alp; Ranganath, Rajesh; Blei, David M. (junio de 2015). "Inferencia variacional automática en Stan". 1506 (3431). arXiv : 1506.03431 . Bibcode : 2015arXiv150603431K .
{{cite journal}}: Para citar una revista se requiere|journal=( ayuda )
Lecturas adicionales
- Martin, Osvaldo (2024). Análisis bayesiano con Python: una guía práctica para el modelado probabilístico (Tercera ed.). Packt. ISBN 978-1-80512-716-1.
Enlaces externos
- Sitio web de PyMC
- Fuente de PyMC , un repositorio Git alojado en GitHub.
- PyTensor es una biblioteca de Python para definir, optimizar y evaluar de manera eficiente expresiones matemáticas que involucran matrices multidimensionales.
- estadística computacional
- Software gratuito de estadística bayesiana
- Software de Monte Carlo
- Lenguajes de programación numérica
- Software probabilístico
- Bibliotecas científicas de Python (lenguaje de programación)