Пример #1
0
def _test_scipy_stats(name):
    if name in known_failures:
        raise SkipTest('known failure')
    dist = getattr(scipy.stats, name)
    try:
        params = default_params[name]
    except KeyError:
        params = [tuple(1.0 + rand(dist.numargs))]
    for param in params:
        print 'param = {}'.format(param)
        dim = get_dim(dist.rvs(*param))
        sample_count = 100 + 1000 * dim
        samples = list(dist.rvs(*param, size=sample_count))

        if hasattr(dist, 'pmf'):
            probs = [dist.pmf(sample, *param) for sample in samples]
            probs_dict = dict(izip(samples, probs))
            gof = discrete_goodness_of_fit(samples, probs_dict, plot=True)
        else:
            probs = [dist.pdf(sample, *param) for sample in samples]
            gof = auto_density_goodness_of_fit(samples, probs, plot=True)
        assert_greater(gof, TEST_FAILURE_RATE)

        gof = mixed_density_goodness_of_fit(samples, probs, plot=True)
        assert_greater(gof, TEST_FAILURE_RATE)
Пример #2
0
 def test_good_fit(self):
     for param in self.dist_params():
         dim = get_dim(self.dist.rvs(*param, size=2)[0])
         sample_count = NUM_BASE_SAMPLES + NUM_SAMPLES_SCALE * dim
         samples = self.dist.rvs(*param, size=sample_count)
         samples = list(map(self._sample_postprocessing, samples))
         probabilities = [self.pdf(sample, *param) for sample in samples]
         gof = self.goodness_of_fit(samples, probabilities)
         self.assertGreater(gof, TEST_FAILURE_RATE)
Пример #3
0
 def test_good_fit(self):
     for param in self.dist_params():
         dim = get_dim(self.dist.rvs(*param, size=2)[0])
         sample_count = NUM_BASE_SAMPLES + NUM_SAMPLES_SCALE * dim
         samples = self.dist.rvs(*param, size=sample_count)
         samples = list(map(self._sample_postprocessing, samples))
         probabilities = [self.pdf(sample, *param) for sample in samples]
         gof = self.goodness_of_fit(samples, probabilities)
         self.assertGreater(gof, TEST_FAILURE_RATE)