def test_beta_binomial(rnd, n, a, b, loc=0, scale=1): # beta random variate generator beta_binomial_dist = RVGs.BetaBinomial(n, a, b, loc, scale) # obtain samples samples = get_samples(beta_binomial_dist, rnd) # report mean and variance print_test_results('BetaBinomial', samples, expectation=(a * n / (a + b)) * scale + loc, variance=((n * a * b * (a + b + n)) / ((a + b)**2 * (a + b + 1))) * scale**2.0)
np.random.seed(1) # 1 fitting a exponential distribution dist = RVGs.Exponential(5, 1) dat_exp = np.array(get_samples(dist, np.random)) # generate data dictResults = Fit.fit_exp(dat_exp, 'Data', fixed_location=1) # fit print("Fitting Exponential:", dictResults) # 2 fitting a beta distribution dist = RVGs.Beta(2, 3, loc=1, scale=2) dat_beta = np.array(get_samples(dist, np.random)) # generate data dictResults = Fit.fit_beta(dat_beta, 'Data', minimum=1, maximum=3) # fit print("Fitting Beta:", dictResults) # 3 fitting a beta-binomial distribution dist = RVGs.BetaBinomial(100, 2, 3, loc=1, scale=2) # n, a, b dat_betabin = np.array(get_samples(dist, np.random)) dictResults = Fit.fit_beta_binomial(dat_betabin, 'Data', fixed_location=1, fixed_scale=2) # fit print("Fitting BetaBinomial:", dictResults) # 4 Binomial dist = RVGs.Binomial(100, 0.3, 1) dat_bin = np.array(get_samples(dist, np.random)) dictResults = Fit.fit_binomial(dat_bin, 'Data', fixed_location=1) # fit print("Fitting Binomial:", dictResults) # 5 Empirical (for int data) dat_em = np.random.poisson(30, 1000)