SSJ
V. 1.2.5.

umontreal.iro.lecuyer.probdist
Class DiscreteDistribution

java.lang.Object
  extended by umontreal.iro.lecuyer.probdist.DiscreteDistribution
All Implemented Interfaces:
Distribution
Direct Known Subclasses:
EmpiricalDist

public class DiscreteDistribution
extends Object
implements Distribution

Classes implementing discrete distributions over a finite set of real numbers should inherit from this class. For discrete distributions over integers, see DiscreteDistributionInt.

We assume that the random variable X of interest can take one of the n values x0 < ... < xn-1 (which are sorted by increasing order). It takes the value xk with probability pk = P[X = xk]. In addition to the methods specified in the interface Distribution, a method that returns the probability pk is supplied.

Note that the default implementation of the complementary distribution function returns 1.0 - cdf(x - 1), which is not accurate when F(x) is near 1.


Constructor Summary
DiscreteDistribution(int n, double[] obs, double[] prob)
          Constructs a discrete distribution over the n values contained in array obs, with probabilities given in array prob.
 
Method Summary
 double barF(double x)
          Returns bar(F)(x) = 1 - F(x).
 double cdf(double x)
          Computes and returns the distribution function F(x).
 double getMean()
          Computes the mean E[X] = ∑i=1npixi of the distribution.
 double getStandardDeviation()
          Computes the standard deviation of the distribution.
 double getVariance()
          Computes the variance Var[X] = ∑i=1npi(xi - E[X])2 of the distribution.
 double inverseF(double u)
          Computes and returns the inverse distribution function F-1(u), defined in.
 double prob(int k)
          Returns pk, the probability of the k-th observation, for 0 <= k < n.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DiscreteDistribution

public DiscreteDistribution(int n,
                            double[] obs,
                            double[] prob)
Constructs a discrete distribution over the n values contained in array obs, with probabilities given in array prob. Both arrays must have at least n elements, the probabilities must sum to 1, and the observations are assumed to be sorted by increasing order.

Method Detail

prob

public double prob(int k)
Returns pk, the probability of the k-th observation, for 0 <= k < n. The result should be a real number in the interval [0, 1].

Parameters:
k - observation number, 0 <= k < n
Returns:
the probability of observation k

cdf

public double cdf(double x)
Description copied from interface: Distribution
Computes and returns the distribution function F(x).

Specified by:
cdf in interface Distribution
Parameters:
x - value at which the distribution function must be evaluated
Returns:
the distribution function evaluated at x

barF

public double barF(double x)
Description copied from interface: Distribution
Returns bar(F)(x) = 1 - F(x).

Specified by:
barF in interface Distribution
Parameters:
x - value at which the complementary distribution function must be evaluated
Returns:
the complementary distribution function evaluated at x

inverseF

public double inverseF(double u)
Description copied from interface: Distribution
Computes and returns the inverse distribution function F-1(u), defined in.

Specified by:
inverseF in interface Distribution
Parameters:
u - value in the interval (0, 1) for which the inverse distribution function is evaluated
Returns:
the inverse distribution function evaluated at u

getMean

public double getMean()
Computes the mean E[X] = ∑i=1npixi of the distribution.

Specified by:
getMean in interface Distribution

getVariance

public double getVariance()
Computes the variance Var[X] = ∑i=1npi(xi - E[X])2 of the distribution.

Specified by:
getVariance in interface Distribution

getStandardDeviation

public double getStandardDeviation()
Computes the standard deviation of the distribution.

Specified by:
getStandardDeviation in interface Distribution

SSJ
V. 1.2.5.

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