"""
This is an example of using Bayesian A/B testing
"""
import pymc as pm
true_p_A = 0.05
true_p_B = 0.04
N_A = 1500
N_B = 1000
observations_A = pm.rbernoulli(true_p_A, N_A)
observations_B = pm.rbernoulli(true_p_B, N_B)
p_A = pm.Uniform("p_A", 0, 1)
p_B = pm.Uniform("p_B", 0, 1)
@pm.deterministic
def delta(p_A=p_A, p_B=p_B):
return p_A - p_B
obs_A = pm.Bernoulli("obs_A", p_A, value=observations_A, observed=True)
obs_B = pm.Bernoulli("obs_B", p_B, value=observations_B, observed=True)
mcmc = pm.MCMC([p_A, p_B, delta, obs_A, obs_B])
mcmc.sample(20000, 1000)