def test_distributions_normal_probability(): d = NormalDistribution(5, 2) e = NormalDistribution(5., 2.) assert_almost_equal(d.probability(5), 0.19947114) assert_equal(d.probability(5), e.probability(5)) assert_equal(d.probability(5), d.probability(5.)) assert_almost_equal(d.probability(0), 0.0087641502) assert_equal(d.probability(0), e.probability(0.))
def plot_HalfNorm(): X = np.random.sample(size=(100000, 1)) dn = NormalDistribution(0, 1) dhn1 = HalfNormalDistribution(0.5) dhn2 = HalfNormalDistribution.from_samples(X) dhn3 = HalfNormalDistribution(1) x = np.arange(-5, 5, 0.1) fig, ax = plt.subplots(figsize=(7, 4)) ax.plot(x, dn.probability(x), label='Normal') ax.plot(x, set_y(x, dhn1), label='HalfNorm, s=0.5') ax.plot(x, set_y(x, dhn2), label='HalfNorm, s=rand') ax.plot(x, set_y(x, dhn3), label='HalfNorm, s=1') ax.set_ylabel('Probability', fontsize=10) ax.legend(fontsize=10) plt.savefig('/scratch/chd5n/test.png', bbox_inches='tight') print('plot written to', '/scratch/chd5n/test.png')
def test_distributions_normal_underflow_probability(): d = NormalDistribution(5, 1e-10) assert_almost_equal(d.probability(1e100), 0.0)
def test_distributions_normal_nan_probability(): d = NormalDistribution(5, 2) assert_equal(d.probability(nan), 1) assert_array_almost_equal(d.probability([nan, 5]), [1, 0.199471])