# import necessary packages
# plotting
import matplotlib.pyplot as plt
# fast array routines for numerical calculation
import numpy as np
# PreliZ is a package for exploring and eliciting probability distributions
import preliz as pzChapter 2, demo 2
Bayesian Data Analysis, 3rd ed
Probability of a girl birth given placenta previa (BDA3 p. 37). Illustrate the effect of a prior. Comparison of posterior distributions with different parameter values for Beta prior distribution.
# set preliz style
pz.style.use("preliz-doc")
# Change default credible interval kind and probability
# By default PreliZ uses highest density interval (HDI) and 0.94 probability
pz.rcParams["stats.ci_kind"] = "eti"
pz.rcParams["stats.ci_prob"] = 0.95_, axes = plt.subplots(3,1, sharex=True, figsize=(12, 9))
ap = 0.485 * (2*10**np.arange(3))
bp = (1-0.485) * (2*10**np.arange(3))
titles = [rf'$\alpha+\beta = {2*10**i}$' for i in range(3)]
for api, bpi, title, ax in zip(ap, bp, titles, axes.ravel()):
pz.Beta(438, 544).plot_pdf(legend="posterior with uniform prior", baseline=False, lw=4, color='black', ax=ax)
pz.Beta(api, bpi).plot_pdf(legend="informative prior", baseline=False, lw=2, ls=":", ax=ax)
pz.Beta(437 + api, 543 + bpi).plot_pdf(legend="posterior with informative prior", baseline=False, ls="--", ax=ax)
ax.axvline(0.485, color='gray', label="known θ=0.485 in general population")
ax.set_title(title)
ax.set_xlim(0.375, 0.525)
axes[0].get_legend().remove()
axes[2].get_legend().remove()
Authors: - Aki Vehtari aki.vehtari@aalto.fi - Tuomas Sivula tuomas.sivula@aalto.fi - Osvaldo A. Martin osvaldo.martin@aalto.fi