예제 #1
0
    def test_convert(self):
        n, p = zinegbin.convert_params(25, 0.85, 2)
        n_true, p_true = 1.1764705882352942, 0.04494382022471911
        assert_allclose(n, n_true, rtol=1e-12, atol=1e-12)
        assert_allclose(p, p_true, rtol=1e-12, atol=1e-12)

        n, p = zinegbin.convert_params(7, 0.17, 1)
        n_true, p_true = 41.17647058823529, 0.8547008547008547
        assert_allclose(n, n_true, rtol=1e-12, atol=1e-12)
        assert_allclose(p, p_true, rtol=1e-12, atol=1e-12)
예제 #2
0
 def test_mran_var_p2(self):
     n, p = zinegbin.convert_params(7, 1, 2)
     nbinom_mean, nbinom_var = nbinom.mean(n, p), nbinom.var(n, p)
     zinb_mean = zinegbin.mean(7, 1, 2, 0)
     zinb_var = zinegbin.var(7, 1, 2, 0)
     assert_allclose(nbinom_mean, zinb_mean, rtol=1e-10)
     assert_allclose(nbinom_var, zinb_var, rtol=1e-10)
예제 #3
0
 def test_mean_var(self):
     for m in [9, np.array([1, 5, 10])]:
         n, p = zinegbin.convert_params(m, 1, 1)
         nbinom_mean, nbinom_var = nbinom.mean(n, p), nbinom.var(n, p)
         zinb_mean = zinegbin.mean(m, 1, 1, 0)
         zinb_var = zinegbin.var(m, 1, 1, 0)
         assert_allclose(nbinom_mean, zinb_mean, rtol=1e-10)
         assert_allclose(nbinom_var, zinb_var, rtol=1e-10)
예제 #4
0
 def test_moments(self):
     n, p = zinegbin.convert_params(9, 1, 1)
     nb_m1, nb_m2 = nbinom.moment(1, n, p), nbinom.moment(2, n, p)
     zinb_m0 = zinegbin.moment(0, 9, 1, 1, 0)
     zinb_m1 = zinegbin.moment(1, 9, 1, 1, 0)
     zinb_m2 = zinegbin.moment(2, 9, 1, 1, 0)
     assert_allclose(1, zinb_m0, rtol=1e-10)
     assert_allclose(nb_m1, zinb_m1, rtol=1e-10)
     assert_allclose(nb_m2, zinb_m2, rtol=1e-10)
예제 #5
0
 def test_ppf(self):
     n, p = zinegbin.convert_params(5, 1, 1)
     nbinom_ppf = nbinom.ppf(0.71, n, p)
     zinbinom_ppf = zinegbin.ppf(0.71, 5, 1, 1, 0)
     assert_allclose(nbinom_ppf, zinbinom_ppf, rtol=1e-12, atol=1e-12)
예제 #6
0
 def test_cdf(self):
     n, p = zinegbin.convert_params(1, 0.9, 1)
     nbinom_cdf = nbinom.cdf(2, n, p)
     zinbinom_cdf = zinegbin.cdf(2, 1, 0.9, 2, 0)
     assert_allclose(nbinom_cdf, zinbinom_cdf, rtol=1e-12, atol=1e-12)
예제 #7
0
 def test_logpmf(self):
     n, p = zinegbin.convert_params(5, 1, 1)
     nb_logpmf = nbinom.logpmf(2, n, p)
     tnb_logpmf = zinegbin.logpmf(2, 5, 1, 1, 0.005)
     assert_allclose(nb_logpmf, tnb_logpmf, rtol=1e-2, atol=1e-2)
예제 #8
0
 def test_pmf(self):
     n, p = zinegbin.convert_params(1, 0.9, 1)
     nb_logpmf = nbinom.pmf(2, n, p)
     tnb_pmf = zinegbin.pmf(2, 1, 0.9, 2, 0.5)
     assert_allclose(nb_logpmf, tnb_pmf * 2, rtol=1e-7)
예제 #9
0
 def test_ppf_p2(self):
     n, p = zinegbin.convert_params(100, 1, 2)
     nbinom_ppf = nbinom.ppf(0.27, n, p)
     zinbinom_ppf = zinegbin.ppf(0.27, 100, 1, 2, 0)
     assert_allclose(nbinom_ppf, zinbinom_ppf, rtol=1e-12, atol=1e-12)
예제 #10
0
 def test_cdf_p2(self):
     n, p = zinegbin.convert_params(30, 0.1, 2)
     nbinom_cdf = nbinom.cdf(10, n, p)
     zinbinom_cdf = zinegbin.cdf(10, 30, 0.1, 2, 0)
     assert_allclose(nbinom_cdf, zinbinom_cdf, rtol=1e-12, atol=1e-12)
예제 #11
0
 def test_logpmf_p2(self):
     n, p = zinegbin.convert_params(10, 1, 2)
     nb_logpmf = nbinom.logpmf(200, n, p)
     tnb_logpmf = zinegbin.logpmf(200, 10, 1, 2, 0.01)
     assert_allclose(nb_logpmf, tnb_logpmf, rtol=1e-2, atol=1e-2)
예제 #12
0
 def test_pmf_p2(self):
     n, p = zinegbin.convert_params(30, 0.1, 2)
     nb_pmf = nbinom.pmf(100, n, p)
     tnb_pmf = zinegbin.pmf(100, 30, 0.1, 2, 0.01)
     assert_allclose(nb_pmf, tnb_pmf, rtol=1e-5, atol=1e-5)