SSJ
V. 2.6.

## umontreal.iro.lecuyer.probdistmulti Class NegativeMultinomialDist

```java.lang.Object
umontreal.iro.lecuyer.probdistmulti.DiscreteDistributionIntMulti
umontreal.iro.lecuyer.probdistmulti.NegativeMultinomialDist
```

`public class NegativeMultinomialDistextends DiscreteDistributionIntMulti`

Implements the class `DiscreteDistributionIntMulti` for the negative multinomial distribution with parameters n > 0 and ( p1,…, pd) such that all 0 < pi < 1 and i=1dpi < 1. The probability mass function is

P[X = (x1,…, xd)] = (Γ(n+∑i=1dxi)/Γ(n))p0ni=1dpixi/xi!

where p0 = 1 - ∑i=1dpi.

Constructor Summary
```NegativeMultinomialDist(double n, double[] p)```
Creates a NegativeMultinomialDist object with parameters n and (p1, ..., pd) such that i=1dpi < 1, as described above.

Method Summary
`static double` ```cdf(double n, double[] p, int[] x)```
Computes the cumulative probability function F of the negative multinomial distribution with parameters n and (p1, ..., pk), evaluated at x.
` double[][]` `getCorrelation()`
Returns the correlation matrix of the distribution, defined as ρij = σij/(σ_iiσ_jj)1/2.
`static double[][]` ```getCorrelation(double n, double[] p)```
Computes the correlation matrix of the negative multinomial distribution with parameters n and (p1, ..., pd).
` double[][]` `getCovariance()`
Returns the variance-covariance matrix of the distribution, defined as
σij = E[(Xi - μi)(Xj - μj)].
`static double[][]` ```getCovariance(double n, double[] p)```
Computes the covariance matrix of the negative multinomial distribution with parameters n and (p1, ..., pd).
` double` `getGamma()`
Returns the parameter n of this object.
` double[]` `getMean()`
Returns the mean vector of the distribution, defined as μi = E[Xi].
`static double[]` ```getMean(double n, double[] p)```
Computes the mean E[X] = npi/p0 of the negative multinomial distribution with parameters n and (p1, ..., pd).
`static double[]` ```getMLE(int[][] x, int m, int d)```
Estimates and returns the parameters [hat(n), hat(p)1, ..., hat(p)d] of the negative multinomial distribution using the maximum likelihood method.
`static double` ```getMLEninv(int[][] x, int m, int d)```
Estimates and returns the parameter ν = 1/hat(n) of the negative multinomial distribution using the maximum likelihood method.
` double[]` `getP()`
Returns the parameters (p1, ..., pd) of this object.
`static double` ```prob(double n, double[] p, int[] x)```
Computes the probability mass function of the negative multinomial distribution with parameters n and (p1, ..., pd), evaluated at x.
` double` `prob(int[] x)`
Returns the probability mass function p(x1, x2,…, xd), which should be a real number in [0, 1].
` void` ```setParams(double n, double[] p)```
Sets the parameters n and (p1, ..., pd) of this object.

Methods inherited from class umontreal.iro.lecuyer.probdistmulti.DiscreteDistributionIntMulti
`cdf, getDimension`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### NegativeMultinomialDist

```public NegativeMultinomialDist(double n,
double[] p)```
Creates a NegativeMultinomialDist object with parameters n and (p1, ..., pd) such that i=1dpi < 1, as described above. We have pi = p[i-1].

Method Detail

### prob

`public double prob(int[] x)`
Description copied from class: `DiscreteDistributionIntMulti`
Returns the probability mass function p(x1, x2,…, xd), which should be a real number in [0, 1].

Specified by:
`prob` in class `DiscreteDistributionIntMulti`
Parameters:
`x` - value at which the mass function must be evaluated
Returns:
the mass function evaluated at x

### getMean

`public double[] getMean()`
Description copied from class: `DiscreteDistributionIntMulti`
Returns the mean vector of the distribution, defined as μi = E[Xi].

Specified by:
`getMean` in class `DiscreteDistributionIntMulti`

### getCovariance

`public double[][] getCovariance()`
Description copied from class: `DiscreteDistributionIntMulti`
Returns the variance-covariance matrix of the distribution, defined as
σij = E[(Xi - μi)(Xj - μj)].

Specified by:
`getCovariance` in class `DiscreteDistributionIntMulti`

### getCorrelation

`public double[][] getCorrelation()`
Description copied from class: `DiscreteDistributionIntMulti`
Returns the correlation matrix of the distribution, defined as ρij = σij/(σ_iiσ_jj)1/2.

Specified by:
`getCorrelation` in class `DiscreteDistributionIntMulti`

### prob

```public static double prob(double n,
double[] p,
int[] x)```
Computes the probability mass function of the negative multinomial distribution with parameters n and (p1, ..., pd), evaluated at x.

### cdf

```public static double cdf(double n,
double[] p,
int[] x)```
Computes the cumulative probability function F of the negative multinomial distribution with parameters n and (p1, ..., pk), evaluated at x.

### getMean

```public static double[] getMean(double n,
double[] p)```
Computes the mean E[X] = npi/p0 of the negative multinomial distribution with parameters n and (p1, ..., pd).

### getCovariance

```public static double[][] getCovariance(double n,
double[] p)```
Computes the covariance matrix of the negative multinomial distribution with parameters n and (p1, ..., pd).

### getCorrelation

```public static double[][] getCorrelation(double n,
double[] p)```
Computes the correlation matrix of the negative multinomial distribution with parameters n and (p1, ..., pd).

### getMLE

```public static double[] getMLE(int[][] x,
int m,
int d)```
Estimates and returns the parameters [hat(n), hat(p)1, ..., hat(p)d] of the negative multinomial distribution using the maximum likelihood method. It uses the m observations of d components in table x[i][j], i = 0, 1,…, m - 1 and j = 0, 1,…, d - 1.

Parameters:
`x` - the list of observations used to evaluate parameters
`m` - the number of observations used to evaluate parameters
`d` - the dimension of each vector
Returns:
returns the parameters [hat(n), hat(p)1, ..., hat(p)d]

### getMLEninv

```public static double getMLEninv(int[][] x,
int m,
int d)```
Estimates and returns the parameter ν = 1/hat(n) of the negative multinomial distribution using the maximum likelihood method. It uses the m observations of d components in table x[i][j], i = 0, 1,…, m - 1 and j = 0, 1,…, d - 1.

Parameters:
`x` - the list of observations used to evaluate parameters
`m` - the number of observations used to evaluate parameters
`d` - the dimension of each vector
Returns:
returns the parameter 1/hat(n)

### getGamma

`public double getGamma()`
Returns the parameter n of this object.

### getP

`public double[] getP()`
Returns the parameters (p1, ..., pd) of this object.

### setParams

```public void setParams(double n,
double[] p)```
Sets the parameters n and (p1, ..., pd) of this object.

SSJ
V. 2.6.

To submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.