def test_bin_samples(): samples = range(6) numpy.random.shuffle(samples) counts, bounds = bin_samples(samples, 2) assert_list_equal(list(counts), [3, 3]) assert_list_equal(list(bounds[0]), [0, 3]) assert_list_equal(list(bounds[1]), [3, 5])
def check_nich(impl, data_count, mean, std): check_cm(impl) ss = None if data_count: data = np.random.normal(mean, std, size=data_count) ss = {'count': data_count, 'mean': data.mean(), 'variance': data.var()} cm = ComponentModel(impl, ss=ss) samples = cm.sample_data(SAMPS) counts, bin_ranges = bin_samples(samples) #use of quadrature is unfortunate but for now #it's the easiest way to score bins and seems to work pdf = lambda x: np.exp(cm.pred_prob(x)) probs = [quad(pdf, m, M, epsabs=0., epsrel=1e-6)[0] for m, M in bin_ranges] assert_less(1 - sum(probs), THRESH) probs, counts = zip(*sorted(zip(probs, counts), reverse=True)[:TOPN]) p = mgof(probs, counts, SAMPS, truncated=True) assert_greater(p, THRESH)
def check_nich(impl, data_count, mean, std): check_cm(impl) ss = None if data_count: data = np.random.normal(mean, std, size=data_count) ss = { 'count': data_count, 'mean': data.mean(), 'variance': data.var() } cm = ComponentModel(impl, ss=ss) samples = cm.sample_data(SAMPS) counts, bin_ranges = bin_samples(samples) #use of quadrature is unfortunate but for now #it's the easiest way to score bins and seems to work pdf = lambda x: np.exp(cm.pred_prob(x)) probs = [quad(pdf, m, M, epsabs=0., epsrel=1e-6)[0] for m, M in bin_ranges] assert_less(1 - sum(probs), THRESH) probs, counts = zip(*sorted(zip(probs, counts), reverse=True)[:TOPN]) p = mgof(probs, counts, SAMPS, truncated=True) assert_greater(p, THRESH)