SSJ
V. 1.2.5.

umontreal.iro.lecuyer.probdistmulti
Class DirichletDist

java.lang.Object
  extended by umontreal.iro.lecuyer.probdistmulti.ContinuousDistributionMulti
      extended by umontreal.iro.lecuyer.probdistmulti.DirichletDist

public class DirichletDist
extends ContinuousDistributionMulti

Implements the abstract class ContinuousDistributionMulti for the Dirichlet distribution with parameters (α1,...,αd), αi > 0. The probability density is

P[X = (x1,..., xd)] = $\displaystyle {\frac{{\Gamma(\alpha_0)
 \Pi_{i=1}^{d} x_i^{\alpha_i - 1}}}{{\Pi_{i=1}^{d} \Gamma(\alpha_i)}}}$

where xi >=  0, i=1dxi = 1, α0 = ∑i=1dαi, and Γ is the Gamma function.


Constructor Summary
DirichletDist(double[] alpha)
           
 
Method Summary
 double density(double[] x)
          Returns f (x1, x2,…, xd), the probability density of X evaluated at the point x, where x = {x1, x2,…, xd}.
static double density(double[] alpha, double[] x)
          Computes the density of the Dirichlet distribution with parameters (α1,...,αd).
 double[] getAlpha()
          Returns the parameters (α1,...,αd) of this object.
 double getAlpha(int i)
          Returns the ith component of the alpha vector.
 double[][] getCorrelation()
          Returns the correlation matrix of the distribution, defined as ρij = σij/(σ_iiσ_jj)1/2.
static double[][] getCorrelation(double[] alpha)
          Computes the correlation matrix of the Dirichlet distribution with parameters (α1,...,αd).
 double[][] getCovariance()
          Returns the variance-covariance matrix of the distribution, defined as
σij = E[(Xi - μi)(Xj - μj)].
static double[][] getCovariance(double[] alpha)
          Computes the covariance matrix of the Dirichlet distribution with parameters (α1,...,αd).
static double[] getMaximumLikelihoodEstimate(double[][] x, int n, int d)
          Estimates and returns the parameters [ hat(α_1),…, hat(α_d)] of the Dirichlet distribution using the maximum likelihood method based on the n observations of d components in table x[i][j], i = 0, 1,…, n - 1 and j = 0, 1,…, d - 1.
 double[] getMean()
          Returns the mean vector of the distribution, defined as μi = E[Xi].
static double[] getMean(double[] alpha)
          Computes the mean E[X] = αi/α0 of the Dirichlet distribution with parameters (α1,...,αd), where α0 = ∑i=1dαi.
 void setParams(double[] alpha)
          Sets the parameters (α1,...,αd) of this object.
 
Methods inherited from class umontreal.iro.lecuyer.probdistmulti.ContinuousDistributionMulti
getDimension
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DirichletDist

public DirichletDist(double[] alpha)
Method Detail

density

public double density(double[] x)
Description copied from class: ContinuousDistributionMulti
Returns f (x1, x2,…, xd), the probability density of X evaluated at the point x, where x = {x1, x2,…, xd}. The convention is that x[i - 1] = xi.

Specified by:
density in class ContinuousDistributionMulti
Parameters:
x - value at which the density is evaluated
Returns:
density function evaluated at x

getMean

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

Specified by:
getMean in class ContinuousDistributionMulti

getCovariance

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

Specified by:
getCovariance in class ContinuousDistributionMulti

getCorrelation

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

Specified by:
getCorrelation in class ContinuousDistributionMulti

density

public static double density(double[] alpha,
                             double[] x)
Computes the density of the Dirichlet distribution with parameters (α1,...,αd).


getCovariance

public static double[][] getCovariance(double[] alpha)
Computes the covariance matrix of the Dirichlet distribution with parameters (α1,...,αd).


getCorrelation

public static double[][] getCorrelation(double[] alpha)
Computes the correlation matrix of the Dirichlet distribution with parameters (α1,...,αd).


getMaximumLikelihoodEstimate

public static double[] getMaximumLikelihoodEstimate(double[][] x,
                                                    int n,
                                                    int d)
Estimates and returns the parameters [ hat(α_1),…, hat(α_d)] of the Dirichlet distribution using the maximum likelihood method based on the n observations of d components in table x[i][j], i = 0, 1,…, n - 1 and j = 0, 1,…, d - 1.

Parameters:
x - the list of observations to use to evaluate parameters
n - the number of observations to use to evaluate parameters
d - the dimension of each vector
Returns:
returns the parameter [ hat(α_1),…, hat(α_d)]

getMean

public static double[] getMean(double[] alpha)
Computes the mean E[X] = αi/α0 of the Dirichlet distribution with parameters (α1,...,αd), where α0 = ∑i=1dαi.


getAlpha

public double[] getAlpha()
Returns the parameters (α1,...,αd) of this object.


getAlpha

public double getAlpha(int i)
Returns the ith component of the alpha vector.


setParams

public void setParams(double[] alpha)
Sets the parameters (α1,...,αd) of this object.


SSJ
V. 1.2.5.

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