def test_anderson_samples(self): """ Sample from the Gamma scipy distribution and from ours using Anderson's method. """ cnt = 10000 rng = np.random.RandomState() alpha = 1.34 beta = 0.18 theta = 1.0 / beta te = 0.2 now = 1.1 exp_dist = distributions.GammaDistribution(alpha, beta, te) samples = distributions.anderson_sample_tester(exp_dist, now, cnt, rng) emp_dist = distributions.EmpiricalDistribution(samples) system = np.zeros(cnt) for i in range(cnt): v = now - 1 while v < now: v = scipy.stats.gamma.rvs(a=alpha, scale=1.0 / beta, loc=0, size=1) system[i] = v system_dist = distributions.EmpiricalDistribution(system) ks_fit = emp_dist.compare_empirical(system_dist) logger.debug("Gamma test_samples ks {0}".format(ks_fit)) self.assertTrue(ks_fit < 1.63)
def test_anderson_samples(self): """ Sample from the scipy distribution and from ours using Anderson's method. """ cnt = 10000 rng = np.random.RandomState() lam = 2.0 te = 0.7 now = 1.1 exp_dist = distributions.ExponentialDistribution(lam, te) samples = distributions.anderson_sample_tester(exp_dist, now, cnt, rng) emp_dist = distributions.EmpiricalDistribution(samples) system = scipy.stats.expon.rvs(scale=1. / lam, loc=now, size=cnt) system_dist = distributions.EmpiricalDistribution(system) ks_fit = emp_dist.compare_empirical(system_dist) logger.debug("Exponential test_samples ks {0}".format(ks_fit)) self.assertTrue(ks_fit < 1.63)
def test_samples(self): """ Sample from the scipy distribution and from ours. Compare. """ cnt = 10000 rng = np.random.RandomState() samples = np.zeros(cnt) lam = 2.0 te = 0.7 now = 1.1 exp_dist = distributions.ExponentialDistribution(lam, te) for i in range(cnt): samples[i] = exp_dist.sample(now, rng) emp_dist = distributions.EmpiricalDistribution(samples) system = scipy.stats.expon.rvs(scale=1. / lam, loc=now, size=cnt) system_dist = distributions.EmpiricalDistribution(system) ks_fit = emp_dist.compare_empirical(system_dist) logger.debug("Exponential test_samples ks {0}".format(ks_fit)) self.assertTrue(ks_fit < 1.63)
def test_anderson_samples(self): """ Sample from the Uniform scipy distribution and from ours using Anderson's method. """ cnt = 10000 rng = np.random.RandomState() a = 1.0 b = 2.0 te = 0.5 now = 2.3 exp_dist = distributions.UniformDistribution(a, b, te) samples = distributions.anderson_sample_tester(exp_dist, now, cnt, rng) emp_dist = distributions.EmpiricalDistribution(samples) system = scipy.stats.uniform.rvs(loc=now, scale=b + te - now, size=cnt) system_dist = distributions.EmpiricalDistribution(system) ks_fit = emp_dist.compare_empirical(system_dist) logger.debug("Uniform test_samples ks {0}".format(ks_fit)) self.assertTrue(ks_fit < 1.63)
def test_samples(self): """ Sample from the Uniform scipy distribution and from ours. Compare. """ cnt = 10000 rng = np.random.RandomState() samples = np.zeros(cnt) a = 1.0 b = 2.0 te = 0.5 now = 2.3 exp_dist = distributions.UniformDistribution(a, b, te) for i in range(cnt): samples[i] = exp_dist.sample(now, rng) emp_dist = distributions.EmpiricalDistribution(samples) system = scipy.stats.uniform.rvs(loc=now, scale=b + te - now, size=cnt) system_dist = distributions.EmpiricalDistribution(system) ks_fit = emp_dist.compare_empirical(system_dist) logger.debug("Uniform test_samples ks {0}".format(ks_fit)) self.assertTrue(ks_fit < 1.63)