# PyMC

PyMC (abans conegut com a PyMC3) és un llenguatge de programació probabilístic escrit en Python. Es pot utilitzar per al modelatge estadístic bayesià i l'aprenentatge automàtic probabilístic.
PyMC realitza una inferència basada en la cadena de Markov Monte Carlo avançada i/o en algorismes d'ajust variacional. És una reescriptura des de zero de la versió anterior del programari PyMC. A diferència de PyMC2, que havia utilitzat extensions de Fortran per realitzar càlculs, PyMC es basa en PyTensor, una biblioteca de Python que permet definir, optimitzar i avaluar de manera eficient expressions matemàtiques que impliquen matrius multidimensionals. A partir de la versió 3.8, PyMC confia en ArviZ per gestionar el traçat, els diagnòstics i les comprovacions estadístiques. PyMC i Stan són les dues eines de programació probabilística més populars. PyMC és un projecte de codi obert, desenvolupat per la comunitat i que ha estat patrocinat fiscalment per NumFOCUS.
PyMC s'ha utilitzat per resoldre problemes d'inferència en diversos dominis científics, incloent l'astronomia, epidemiologia, biologia molecular, cristal·lografia, química, ecologia. i psicologia. Les versions anteriors de PyMC també es van utilitzar àmpliament, per exemple en ciències del clima, salut pública, neurociència i parasitologia.
Després que Theano anunciés plans per interrompre el desenvolupament el 2017, l'equip de PyMC va avaluar TensorFlow Probability com a backend computacional, però va decidir el 2020 bifurcar Theano amb el nom d'Aesara. Grans parts de la base de codi Theano s'han refactoritzat i s'han afegit la compilació mitjançant JAX i Numba. L'equip de PyMC ha llançat el backend computacional revisat amb el nom de PyTensor i continua el desenvolupament de PyMC.

## Motors d'inferència

PyMC implementa algorismes de la cadena de Màrkov Monte Carlo (MCMC) no basats en gradients i basats en gradients per a la inferència bayesiana i mètodes bayesians variacionals estocàstics basats en gradients per a la inferència bayesiana aproximada.
* Algorismes basats en MCMC:
** No-U-Turn sampler (NUTS), una variant de Hamiltonià Monte Carlo i el motor predeterminat de PyMC per a variables contínues
** Metropolis–Hastings, el motor predeterminat de PyMC per a variables discretes
** Montecarlo seqüencial per a posteriors estàtics
** Montecarlo seqüencial per a càlcul bayesià aproximat
* Algorismes d'inferència variacional :
** Inferència variacional de caixa negra

## Referències

* ↑ Martin, Osvaldo. Bayesian Analysis with Python (en anglès). Packt Publishing Ltd, 2024. ISBN 9781805127161.
* ↑ Martin, Osvaldo. Bayesian Modeling and Computation in Python (en anglès). CRC-press, 2021, p. 1–420. ISBN 9780367894368.
* ↑ Davidson-Pilon, Cameron. Bayesian Methods for Hackers: Probabilistic Programming and Bayesian Inference (en anglès). Addison-Wesley Professional, 2015-09-30. ISBN 9780133902921.
* ↑ «documentation» (en anglès). [Consulta: 20 setembre 2017].
* ↑ «The Algorithms Behind Probabilistic Programming» (en anglès). [Consulta: 10 març 2017].
* ↑ Greiner, J.; Burgess, J. M.; Savchenko, V.; Yu, H.-F. (en anglès) The Astrophysical Journal Letters, 827, 2, 2016, pàg. L38. arXiv: 1606.00314. Bibcode: 2016ApJ...827L..38G. DOI: 10.3847/2041-8205/827/2/L38. ISSN: 2041-8205 [Consulta: free].
* ↑ Hilbe, Joseph M. Bayesian Models for Astrophysical Data: Using R, JAGS, Python, and Stan (en anglès). Cambridge University Press, 2017-04-30. ISBN 9781108210744.
* ↑ Brauner, Jan M.; Mindermann, Sören; Sharma, Mrinank; Johnston, David; Salvatier, John Science, 371, 6531, 15-12-2020, pàg. eabd9338. DOI: 10.1126/science.abd9338. PMC: 7877495. PMID: 33323424 [Consulta: lliure].
* ↑ Systrom, Kevin. «Rt.live Github repository» (en anglès). Rt.live. [Consulta: 10 gener 2021].
* ↑ Wagner, Stacey D.; Struck, Adam J.; Gupta, Riti; Farnsworth, Dylan R.; Mahady, Amy E. PLOS Genetics, 12, 9, 28-09-2016, pàg. e1006316. DOI: 10.1371/journal.pgen.1006316. ISSN: 1553-7404. PMC: 5082313. PMID: 27681373 [Consulta: lliure].
* ↑ Sharma, Amit; Johansson, Linda; Dunevall, Elin; Wahlgren, Weixiao Y.; Neutze, Richard (en anglès) Acta Crystallographica Section A, 73, 2, 01-03-2017, pàg. 93–101. DOI: 10.1107/s2053273316018696. ISSN: 2053-2733. PMC: 5332129. PMID: 28248658.
* ↑ Katona, Gergely; Garcia-Bonete, Maria-Jose; Lundholm, Ida (en anglès) Acta Crystallographica Section A, 72, 3, 01-05-2016, pàg. 406–411. DOI: 10.1107/S2053273316003430. ISSN: 2053-2733. PMC: 4850660. PMID: 27126118.
* ↑ Garay, Pablo G.; Martin, Osvaldo A.; Scheraga, Harold A.; Vila, Jorge A. (en anglès) PeerJ, 4, 21-07-2016, pàg. e2253. DOI: 10.7717/peerj.2253. ISSN: 2167-8359. PMC: 4963218. PMID: 27547559 [Consulta: free].
* ↑ Wang, Yan; Huang, Hong; Huang, Lida; Ristic, Branko Atmospheric Environment, 152, 2017, pàg. 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 (en anglès) Diversity, 9, 1, 14-03-2017, pàg. 18. DOI: 10.3390/d9010018 [Consulta: lliure].
* ↑ Tünnermann, Jan; Scharlau, Ingrid (en anglès) Frontiers in Psychology, 7, 2016, pàg. 1442. DOI: 10.3389/fpsyg.2016.01442. ISSN: 1664-1078. PMC: 5052275. PMID: 27766086 [Consulta: lliure].
* ↑ Graham, Nicholas A. J.; Jennings, Simon; MacNeil, M. Aaron; Mouillot, David; Wilson, Shaun K. Nature, 518, 7537, 2015, pàg. 94–97. Bibcode: 2015Natur.518...94G. DOI: 10.1038/nature14140. PMID: 25607371.
* ↑ Mascarenhas, Maya N.; Flaxman, Seth R.; Boerma, Ties; Vanderpoel, Sheryl; Stevens, Gretchen A. PLOS Medicine, 9, 12, 18-12-2012, pàg. e1001356. DOI: 10.1371/journal.pmed.1001356. ISSN: 1549-1676. PMC: 3525527. PMID: 23271957 [Consulta: free].
* ↑ Cavanagh, James F; Wiecki, Thomas V; Cohen, Michael X; Figueroa, Christina M; Samanta, Johan Nature Neuroscience, 14, 11, 2011, pàg. 1462–1467. DOI: 10.1038/nn.2925. PMC: 3394226. PMID: 21946325.
* ↑ Gething, Peter W.; Elyazar, Iqbal R. F.; Moyes, Catherine L.; Smith, David L.; Battle, Katherine E. PLOS Neglected Tropical Diseases, 6, 9, 06-09-2012, pàg. e1814. DOI: 10.1371/journal.pntd.0001814. ISSN: 1935-2735. PMC: 3435256. PMID: 22970336 [Consulta: lliure].
* ↑ Pullan, Rachel L.; Smith, Jennifer L.; Jasrasaria, Rashmi; Brooker, Simon J. Parasites & Vectors, 7, 21-01-2014, pàg. 37. DOI: 10.1186/1756-3305-7-37. ISSN: 1756-3305. PMC: 3905661. PMID: 24447578 [Consulta: lliure].
* ↑ Developers, PyMC. «Theano, TensorFlow and the Future of PyMC» (en anglès). PyMC Developers, 17-05-2018. [Consulta: 25 gener 2019].
* ↑ «The Future of PyMC3, or: Theano is Dead, Long Live Theano» (en anglès). PyMC Developers, 27-10-2020. [Consulta: 10 gener 2021].
* ↑ Bradbury, James. «JAX» (en anglès). GitHub. [Consulta: 10 gener 2021].
* ↑ «PyMC Timeline» (en anglès). PyMC Timeline. [Consulta: 10 gener 2021].