PyMC (anteriormente conocido como PyMC3) es un paquete de Python para el modelado estadístico bayesiano y el aprendizaje automático probabilístico. Ofrece varios algoritmos de inferencia principalmente métodos Monte Carlo vía cadena de Markov e Inferencia Variacional.[1][2][3][4][5] PyMC ha sido reescrito desde cero de la versión anterior del software PyMC2.[6] A diferencia de la versión anterior, que usaba extensiones de Fortran para realizar cálculos, PyMC utiliza PyTensor, una biblioteca de Python que permite definir, optimizar y evaluar de manera eficiente expresiones matemáticas que involucran arreglos multidimensionales. A partir de la versión 3.8, PyMC utiliza ArviZ para realizar gráficos, diagnóstico y evaluaciones estadísticas. PyMC y Stan son los dos lenguajes de programación probabilística más populares.[7] PyMC es un proyecto de código abierto, desarrollado por la comunidad y patrocinado fiscalmente NumFOCUS.[8]
PyMC se ha utilizado para resolver problemas de inferencia en varios dominios científicos, incluida la 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] Las versiones anteriores de PyMC también se usaron ampliamente, por ejemplo, en ciencia del clima,[20] salud pública,[21] neurociencia,[22] y parasitología.[23][24]
Desde que Theano anunciara planes para interrumpir su desarrollo en 2017,[25] el equipo de PyMC evaluó TensorFlow Probability como backend computacional,[26] pero decidió en 2020 hacerse cargo del desarrollo de Theano.[27] Gran parte del código base de Theano se ha refactorizado y se ha añadido la compilación a través de JAX[28] y Numba. El equipo de PyMC ha lanzado el backend computacional revisado, con el nombre de PyTensor y continúa con el desarrollo de PyMC.[29]
Motores de inferencia
PyMC implementa varios algoritmos de Monte Carlo (MCMC) vía cadena de Markov basados en gradientes y no basados en gradientes para la inferencia Bayesiana y métodos variacionales basados en gradientes.
- Algoritmos basados en MCMC:
- No-U-Turn Sampler[30] (NUTS) es un tipo de Hamiltonian Monte Carlo, y es el motor predeterminado de PyMC para variables continuas
- Metropolis–Hastings, el motor predeterminado de PyMC para variables discretas
- Monte Carlo secuencial (Sequential Monte-Carlo) para posteriores estáticos y para cálculo bayesiano aproximado
- Algoritmos de inferencia variacional:
- Inferencia variacional de caja negra[31]
Véase también
- Stan es un lenguaje de programación probabilístico para inferencia estadística escrito en C++
- ArviZ una biblioteca de Python para el análisis exploratorio de modelos Bayesianos
Referencias
- ↑ 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: a modern, and comprehensive probabilistic programming framework in Python. PeerJ Comput. Sci. 9:e1516 doi 10.7717/peerj-cs.1516
- ↑ Salvatier J, Wiecki TV, Fonnesbeck C. (2016) Probabilistic programming in Python using PyMC3. PeerJ Computer Science 2:e55 doi 10.7717/peerj-cs.55
- ↑ Martin, Osvaldo (2016). Bayesian Analysis with Python (en inglés). Packt Publishing Ltd. pp. 31-60. ISBN 9781785889851. Consultado el 16 de septiembre de 2017.
- ↑ Martin, Osvaldo; Kumar, Ravin; Lao, Junpeng (2021). Bayesian Modeling and Computation in Python (en inglés). CRC-press. pp. 1-420. ISBN 9780367894368. Consultado el 7 de julio de 2022.
- ↑ Davidson-Pilon, Cameron (30 de septiembre de 2015). Bayesian Methods for Hackers: Probabilistic Programming and Bayesian Inference (en inglés). Addison-Wesley Professional. ISBN 9780133902921.
- ↑ «documentation» (en inglés). Consultado el 20 de septiembre de 2017.
- ↑ «The Algorithms Behind Probabilistic Programming». Consultado el 10 de marzo de 2017.
- ↑ «NumFOCUS Announces New Fiscally Sponsored Project: PyMC3». NumFOCUS | Open Code = Better Science. Consultado el 10 de marzo de 2017.
- ↑ Greiner, J.; Burgess, J. M.; Savchenko, V.; Yu, H.-F. (2016). «On the Fermi-GBM Event 0.4 s after GW150914». The Astrophysical Journal Letters (en inglés) 827 (2): L38. Bibcode:2016ApJ...827L..38G. ISSN 2041-8205. arXiv:1606.00314. doi:10.3847/2041-8205/827/2/L38.
- ↑ Hilbe, Joseph M.; Souza, Rafael S. de; Ishida, Emille E. O. (30 de abril de 2017). Bayesian Models for Astrophysical Data: Using R, JAGS, Python, and Stan (en inglés). Cambridge University Press. ISBN 9781108210744.
- ↑ Brauner, Jan M.; Mindermann, Sören; Sharma, Mrinank; Johnston, David; Salvatier, John; Gavenčiak, Tom; Stephenson, Anna B.; Leech, Gavin et al. (15 de diciembre de 2020). «Inferring the effectiveness of government interventions against COVID-19». Science 371 (6531): eabd9338. PMC 7877495. PMID 33323424. doi:10.1126/science.abd9338.
- ↑ Systrom, Kevin. «Rt.live Github repository». 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. et al. (28 de septiembre de 2016). «Dose-Dependent Regulation of Alternative Splicing by MBNL Proteins Reveals Biomarkers for Myotonic Dystrophy». PLOS Genetics 12 (9): e1006316. ISSN 1553-7404. PMC 5082313. PMID 27681373. doi:10.1371/journal.pgen.1006316.
- ↑ Sharma, Amit; Johansson, Linda; Dunevall, Elin; Wahlgren, Weixiao Y.; Neutze, Richard; Katona, Gergely (1 de marzo de 2017). «Asymmetry in serial femtosecond crystallography data». Acta Crystallographica Section A (en inglés) 73 (2): 93-101. ISSN 2053-2733. PMC 5332129. PMID 28248658. doi:10.1107/s2053273316018696.
- ↑ Katona, Gergely; Garcia-Bonete, Maria-Jose; Lundholm, Ida (1 de mayo de 2016). «Estimating the difference between structure-factor amplitudes using multivariate Bayesian inference». Acta Crystallographica Section A (en inglés) 72 (3): 406-411. ISSN 2053-2733. PMC 4850660. PMID 27126118. doi:10.1107/S2053273316003430.
- ↑ Garay, Pablo G.; Martin, Osvaldo A.; Scheraga, Harold A.; Vila, Jorge A. (21 de julio de 2016). «Detection of methylation, acetylation and glycosylation of protein residues by monitoring13C chemical-shift changes: A quantum-chemical study». PeerJ (en inglés) 4: e2253. ISSN 2167-8359. PMC 4963218. PMID 27547559. doi:10.7717/peerj.2253.
- ↑ Wang, Yan; Huang, Hong; Huang, Lida; Ristic, Branko (2017). «Evaluation of Bayesian source estimation methods with Prairie Grass observations and Gaussian plume model: A comparison of likelihood functions and distance measures». 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, Casssandra A.; Messmer, Vanessa; Pratchett, Morgan S. (14 de marzo de 2017). «Age and Growth of An Outbreaking Acanthaster cf. solaris Population within the Great Barrier Reef». Diversity (en inglés) 9 (1): 18. doi:10.3390/d9010018.
- ↑ Tünnermann, Jan; Scharlau, Ingrid (2016). «Peripheral Visual Cues: Their Fate in Processing and Effects on Attention and Temporal-Order Perception». Frontiers in Psychology (en inglés) 7: 1442. ISSN 1664-1078. PMC 5052275. PMID 27766086. doi:10.3389/fpsyg.2016.01442.
- ↑ Graham, Nicholas A. J.; Jennings, Simon; MacNeil, M. Aaron; Mouillot, David; Wilson, Shaun K. (2015). «Predicting climate-driven regime shifts versus rebound potential in coral reefs». Nature 518 (7537): 94-97. Bibcode:2015Natur.518...94G. PMID 25607371. doi:10.1038/nature14140.
- ↑ Mascarenhas, Maya N.; Flaxman, Seth R.; Boerma, Ties; Vanderpoel, Sheryl; Stevens, Gretchen A. (18 de diciembre de 2012). «National, Regional, and Global Trends in Infertility Prevalence Since 1990: A Systematic Analysis of 277 Health Surveys». PLOS Medicine 9 (12): e1001356. ISSN 1549-1676. PMC 3525527. PMID 23271957. doi:10.1371/journal.pmed.1001356.
- ↑ Cavanagh, James F; Wiecki, Thomas V; Cohen, Michael X; Figueroa, Christina M; Samanta, Johan; Sherman, Scott J; Frank, Michael J (2011). «Subthalamic nucleus stimulation reverses mediofrontal influence over decision threshold». Nature Neuroscience 14 (11): 1462-1467. PMC 3394226. PMID 21946325. doi:10.1038/nn.2925.
- ↑ Gething, Peter W.; Elyazar, Iqbal R. F.; Moyes, Catherine L.; Smith, David L.; Battle, Katherine E.; Guerra, Carlos A.; Patil, Anand P.; Tatem, Andrew J. et al. (6 de septiembre de 2012). «A Long Neglected World Malaria Map: Plasmodium vivax Endemicity in 2010». PLOS Neglected Tropical Diseases 6 (9): e1814. ISSN 1935-2735. PMC 3435256. PMID 22970336. doi:10.1371/journal.pntd.0001814.
- ↑ Pullan, Rachel L.; Smith, Jennifer L.; Jasrasaria, Rashmi; Brooker, Simon J. (21 de enero de 2014). «Global numbers of infection and disease burden of soil transmitted helminth infections in 2010». Parasites & Vectors 7: 37. ISSN 1756-3305. PMC 3905661. PMID 24447578. doi:10.1186/1756-3305-7-37.
- ↑ «MILA and the future of Theano», 2017-09-28, https://groups.google.com/forum/#!topic/theano-users/7Poq8BZutbY, consultado el 2017-09-28.
- ↑ Developers, PyMC (17 de mayo de 2018). «Theano, TensorFlow and the Future of PyMC». PyMC Developers. Consultado el 25 de enero de 2019.
- ↑ «The Future of PyMC3, or: Theano is Dead, Long Live Theano». PyMC Developers. 27 de octubre de 2020. Consultado el 10 de enero de 2021.
- ↑ Bradbury, James. «JAX». GitHub. Consultado el 10 de enero de 2021.
- ↑ «PyMC Timeline». PyMC Timeline. Consultado el 10 de enero de 2021.
- ↑ Hoffman, Matthew D.; Gelman, Andrew (April 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. (June 2015). Automatic Variational Inference in Stan 1506 (3431). Bibcode:2015arXiv150603431K. arXiv:1506.03431.
Otras lectura
Enlaces externos
- Sitio web PyMC
- Fuente de PyMC, un repositorio de Git alojado en GitHub
- Symbolic PyMC es un conjunto experimental de herramientas que facilitan la manipulación simbólica sofisticada de los modelos PyMC.