With the help of sympy.stats.NegativeMultinomial() method, we can create a discrete random variable with Negative Multinomial Distribution.
Syntax: sympy.stats.NegativeMultinomial(syms, k, p) Parameters: syms: the symbol k: number of failures before the experiment is stopped, a positive integer p: event probabilites, p>= 0 and p<= 1 Returns: a discrete random variable with Negative Multinomial Distribution.
Example #1 :
# import sympy, NegativeMultinomia, density, symbols
from sympy.stats import density
from sympy.stats.joint_rv_types import NegativeMultinomial
from sympy import symbols, pprint
p1, p2, p3 = symbols('p1, p2, p3', positive = True)
x1, x2, x3 = symbols('x1, x2, x3', nonnegative = True, integer = True)
# using sympy.stats.NegativeMultinomial() method
N = NegativeMultinomial('N', 3, p1, p2, p3)
negMulti = density(N)(x1, x2, x3)
pprint(negMulti)
Output :
x1 x2 x3 3
p1 *p2 *p3 *(-p1 - p2 - p3 + 1) *Gamma(x1 + x2 + x3 + 3)
-----------------------------------------------------------
2*x1!*x2!*x3!
Example #2 :
# import sympy, NegativeMultinomia, density, symbols
from sympy.stats import density
from sympy.stats.joint_rv_types import NegativeMultinomial
from sympy import symbols, pprint
x1, x2, x3 = symbols('x1, x2, x3', nonnegative = True, integer = True)
# using sympy.stats.NegativeMultinomial() method
N = NegativeMultinomial('N', 2, 1 / 3, 1 / 2)
negMulti = density(N)(x1, x2, x3)
pprint(negMulti)
Output :
-x2 -x1
2 *3 *Gamma(x1 + x2 + x3 + 2)
---------------------------------
36*x1!*x