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]
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.