PyMC
lenguaje de programación probabilístico
From Wikipedia, the free encyclopedia
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