def test_moments(self): n, p = sm.distributions.zinegbin.convert_params(9, 1, 1) nb_m1, nb_m2 = nbinom.moment(1, n, p), nbinom.moment(2, n, p) zinb_m0 = sm.distributions.zinegbin.moment(0, 9, 1, 1, 0) zinb_m1 = sm.distributions.zinegbin.moment(1, 9, 1, 1, 0) zinb_m2 = sm.distributions.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)
def test_moments_p2(self): n, p = zinegbin.convert_params(7, 1, 2) nb_m1, nb_m2 = nbinom.moment(1, n, p), nbinom.moment(2, n, p) zinb_m0 = zinegbin.moment(0, 7, 1, 2, 0) zinb_m1 = zinegbin.moment(1, 7, 1, 2, 0) zinb_m2 = zinegbin.moment(2, 7, 1, 2, 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)
def _moment(self, n, mu, alpha, p, w): s, p = self.convert_params(mu, alpha, p) return (1 - w) * nbinom.moment(n, s, p)