ArviZ (/ˈɑːrvɪz/ AR-vees) is a Python package for exploratory analysis of Bayesian models.[2][3][4][5] It is specifically designed to work with the output of probabilistic programming libraries like PyMC, Stan, and others by providing a set of tools for summarizing and visualizing the results of Bayesian inference in a convenient and informative way. ArviZ also provides a common data structure for manipulating and storing data commonly arising in Bayesian analysis, like posterior samples or observed data.

ArviZ
Original author(s)ArviZ Development Team
Initial releaseJuly 21, 2018 (2018-07-21)
Stable release
0.20.0[1] Edit this on Wikidata / 28 September 2024; 55 days ago (28 September 2024)
Repositoryhttps://github.com/arviz-devs/arviz
Written inPython
Operating systemUnix-like, Mac OS X, Microsoft Windows
PlatformIntel x86 – 32-bit, x64
TypeStatistical package
License Apache License, Version 2.0
Websitepython.arviz.org

ArviZ is an open source project, developed by the community and is an affiliated project of NumFOCUS.[6] and it has been used to help interpret inference problems in several scientific domains, including astronomy,[7] neuroscience,[8] physics[9] and statistics.[10][11]

Etymology

edit

The ArviZ name is derived from reading "rvs" (the short form of random variates) as a word instead of spelling it and also using the particle "viz" usually used to abbreviate visualization.

Exploratory analysis of Bayesian models

edit

When working with Bayesian models there are a series of related tasks that need to be addressed besides inference itself:

  • Diagnoses of the quality of the inference, this is needed when using numerical methods such as Markov chain Monte Carlo techniques
  • Model criticism, including evaluations of both model assumptions and model predictions
  • Comparison of models, including model selection or model averaging
  • Preparation of the results for a particular audience

All these tasks are part of the Exploratory analysis of Bayesian models approach, and successfully performing them is central to the iterative and interactive modeling process. These tasks require both numerical and visual summaries.[12][13][14]

Library features

edit
  • InferenceData object for Bayesian data manipulation. This object is based on xarray
  • Plots using two alternative backends matplotlib or bokeh
  • Numerical summaries and diagnostics for Markov chain Monte Carlo methods.
  • Integration with established probabilistic programming languages including; PyStan (the Python interface of Stan), PyMC,[15] Edward[16] Pyro,[17] and easily integrated with novel or bespoke Bayesian analyses. ArviZ is also available in Julia, using the ArviZ.jl interface

See also

edit
  • Bambi is a high-level Bayesian model-building interface based on PyMC
  • PyMC a probabilistic programming language written in Python
  • Stan is a probabilistic programming language for statistical inference written in C++
  • PreliZ a Python library for prior elicitation

References

edit
  1. ^ "Release 0.20.0". 28 September 2024. Retrieved 21 October 2024.
  2. ^ Kumar, Ravin; Carroll, Colin; Hartikainen, Ari; Martin, Osvaldo (2019). "ArviZ a unified library for exploratory analysis of Bayesian models in Python". Journal of Open Source Software. 4 (33): 1143. Bibcode:2019JOSS....4.1143K. doi:10.21105/joss.01143. hdl:11336/114615.
  3. ^ Martin, Osvaldo (2024). Bayesian Analysis with Python - Third Edition: A practical guide to probabilistic modeling. Packt Publishing Ltd. ISBN 9781805127161.
  4. ^ Martin, Osvaldo; Kumar, Ravin; Lao, Junpeng (2021). Bayesian Modeling and Computation in Python. CRC-press. pp. 1–420. ISBN 9780367894368. Retrieved 7 July 2022.
  5. ^ Gelman, Andrew; Vehtari, Aki; Simpson, Daniel; Margossian, Charles; Carpenter, Bob; Yao, Yuling; Kennedy, Lauren; Gabry, Jonah; Bürkner, Paul-Christian; Martin, Modrák (2021). "Bayesian Workflow". arXiv:2011.01808 [stat.ME].
  6. ^ "NumFOCUS Affiliated Projects". NumFOCUS | Open Code = Better Science. Retrieved 2019-11-30.
  7. ^ Farr, Will M.; Fishbach, Maya; Ye, Jiani; Holz, Daniel E. (2019). "A Future Percent-level Measurement of the Hubble Expansion at Redshift 0.8 with Advanced LIGO". The Astrophysical Journal. 883 (2): L42. arXiv:1908.09084. Bibcode:2019ApJ...883L..42F. doi:10.3847/2041-8213/ab4284. S2CID 202150341.
  8. ^ Busch-Moreno, Simon; Tuomainen, Jyrki; Vinson, David (2021). "Trait anxiety effects on late phase threatening speech processing: Evidence from electroencephalography". European Journal of Neuroscience. 54 (9): 7152–7175. doi:10.1111/ejn.15470. PMID 34553432.
  9. ^ Jovanovski, Petar; Kocarev, Ljupco (2019). "Bayesian consensus clustering in multiplex networks". Chaos: An Interdisciplinary Journal of Nonlinear Science. 29 (10): 103142. Bibcode:2019Chaos..29j3142J. doi:10.1063/1.5120503. PMID 31675792. S2CID 207834500.
  10. ^ Zhou, Guangyao (2019). "Mixed Hamiltonian Monte Carlo for Mixed Discrete and Continuous Variables". arXiv:1909.04852 [stat.CO].
  11. ^ Graham, Matthew M.; Thiery, Alexandre H.; Beskos, Alexandros (2019). "Manifold Markov chain Monte Carlo methods for Bayesian inference in a wide class of diffusion models". arXiv:1912.02982 [stat.CO].
  12. ^ Gabry, Jonah; Simpson, Daniel; Vehtari, Aki; Betancourt, Michael; Gelman, Andrew (2019). "Visualization in Bayesian workflow". Journal of the Royal Statistical Society, Series A (Statistics in Society). 182 (2): 389–402. arXiv:1709.01449. doi:10.1111/rssa.12378. S2CID 26590874.
  13. ^ Vehtari, Aki; Gelman, Andrew; Simpson, Daniel; Carpenter, Bob; Bürkner, Paul-Christian (2021). "Rank-Normalization, Folding, and Localization: An Improved Rˆ for Assessing Convergence of MCMC (With Discussion)". Bayesian Analysis. 16 (2): 667. arXiv:1903.08008. Bibcode:2021BayAn..16..667V. doi:10.1214/20-BA1221. S2CID 88522683.
  14. ^ Martin, Osvaldo (2018). Bayesian Analysis with Python: Introduction to statistical modeling and probabilistic programming using PyMC3 and ArviZ. Packt Publishing Ltd. ISBN 9781789341652.
  15. ^ Salvatier, John; Wiecki, Thomas V.; Fonnesbeck, Christopher (2016). "Probabilistic programming in Python using PyMC3". PeerJ Computer Science. 2: e55. arXiv:1507.08050. doi:10.7717/peerj-cs.55.
  16. ^ Tran, Dustin; Kucukelbir, Alp; Dieng, Adji B.; Rudolph, Maja; Liang, Dawen; Blei, David M. (2016). "Edward: A library for probabilistic modeling, inference, and criticism". arXiv:1610.09787 [stat.CO].
  17. ^ Bingham, Eli; Chen, Jonathan P.; Jankowiak, Martin; Obermeyer, Fritz; Pradhan, Neeraj; Karaletsos, Theofanis; Singh, Rohit; Szerlip, Paul; Horsfall, Paul; Goodman, Noah D. (2018). "Pyro: Deep Universal Probabilistic Programming". arXiv:1810.09538 [cs.LG].
edit