Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
probml
GitHub Repository: probml/pyprobml
Path: blob/master/notebooks/book1/04/beta_credible_int_demo.ipynb
1192 views
Kernel: Unknown Kernel
# Compute 95% CI for a beta distribution from scipy.stats import beta import numpy as np np.random.seed(42) N1 = 2 N0 = 8 N = N0 + N1 # Sufficient statistics aprior = 1 bprior = 1 # prior apost = aprior + N1 bpost = bprior + N0 # posterior alpha = 0.05 CI1 = beta.interval(1 - alpha, apost, bpost) print("{:0.2f}--{:0.2f}".format(CI1[0], CI1[1])) # (0.06:0.52) l = beta.ppf(alpha / 2, apost, bpost) u = beta.ppf(1 - alpha / 2, apost, bpost) CI2 = (l, u) print("{:0.2f}--{:0.2f}".format(CI2[0], CI2[1])) # (0.06:0.52) samples = beta.rvs(apost, bpost, size=1000) samples = np.sort(samples) CI3 = np.percentile(samples, 100 * np.array([alpha / 2, 1 - alpha / 2])) print("{:0.2f}--{:0.2f}".format(CI3[0], CI3[1])) # (0.06:0.51)