from scipy.stats import beta
import numpy as np
np.random.seed(42)
N1 = 2
N0 = 8
N = N0 + N1
aprior = 1
bprior = 1
apost = aprior + N1
bpost = bprior + N0
alpha = 0.05
CI1 = beta.interval(1 - alpha, apost, bpost)
print("{:0.2f}--{:0.2f}".format(CI1[0], CI1[1]))
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]))
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]))