Ejemplo n.º 1
0
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)
Ejemplo n.º 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)