SSJ
V. 2.6.

umontreal.iro.lecuyer.probdistmulti
Class NegativeMultinomialDist

java.lang.Object
  extended by umontreal.iro.lecuyer.probdistmulti.DiscreteDistributionIntMulti
      extended by umontreal.iro.lecuyer.probdistmulti.NegativeMultinomialDist

public class NegativeMultinomialDist
extends 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.