SSJ
V. labo.

umontreal.iro.lecuyer.probdist
Class PiecewiseLinearEmpiricalDist

java.lang.Object
  extended by umontreal.iro.lecuyer.probdist.ContinuousDistribution
      extended by umontreal.iro.lecuyer.probdist.PiecewiseLinearEmpiricalDist
All Implemented Interfaces:
Distribution

public class PiecewiseLinearEmpiricalDist
extends ContinuousDistribution

PiecewiseLinearEmpiricalDist

Extends the class ContinuousDistribution for a piecewise-linear approximation of the empirical distribution function, based on the observations X(1),..., X(n) (sorted by increasing order), and defined as follows (e.g.,[#!sLAW00a!#, page 318]). The distribution function starts at X(1) and climbs linearly by 1/(n - 1) between any two successive observations. The density is

f (x) = 1/[(n - 1)(X(i+1) - X(i))] for X(i)x < X(i+1) and i = 1, 2,..., n - 1.

The distribution function is

F(x) = 0          for x < X(1),
F(x) = (i - 1)/(n - 1) + (x - X(i))/[(n - 1)(X(i+1) - X(i))]          for X(i)x < X(i+1),
F(x) = 1          elsewhere,

whose inverse is

F-1(u) = X(i) + ((n - 1)u - i + 1)(X(i+1) - X(i))

for (i - 1)/(n - 1)≤ui/(n - 1) and i = 1,..., n - 1.


Field Summary
 
Fields inherited from class umontreal.iro.lecuyer.probdist.ContinuousDistribution
decPrec
 
Constructor Summary
PiecewiseLinearEmpiricalDist(double[] obs)
          .
PiecewiseLinearEmpiricalDist(Reader in)
          .
 
Method Summary
 double barF(double x)
          Returns the complementary distribution function.
 double cdf(double x)
          .
 double density(double x)
          Returns f (x), the density evaluated at x.
 double getMean()
          Returns the mean.
 int getN()
          .
 double getObs(int i)
          .
 double[] getParams()
          .
 double getSampleMean()
          .
 double getSampleStandardDeviation()
          .
 double getSampleVariance()
          .
 double getStandardDeviation()
          Returns the standard deviation.
 double getVariance()
          Returns the variance.
 double inverseF(double u)
          Returns the inverse distribution function x = F-1(u).
 String toString()
          .
 
Methods inherited from class umontreal.iro.lecuyer.probdist.ContinuousDistribution
getXinf, getXsup, inverseBisection, inverseBrent, setXinf, setXsup
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PiecewiseLinearEmpiricalDist

public PiecewiseLinearEmpiricalDist(double[] obs)
. \begin{tabb}
 Constructs a new piecewise-linear distribution using
 all the obse...
 ...These observations are copied into an internal array and then sorted.
 \end{tabb}


PiecewiseLinearEmpiricalDist

public PiecewiseLinearEmpiricalDist(Reader in)
                             throws IOException
. \begin{tabb}Constructs a new empirical distribution using
 the observations read...
 ...t lines starting with a blank.
 This format is the same as in UNURAN.
 \end{tabb}

Throws:
IOException
Method Detail

density

public double density(double x)
Description copied from class: ContinuousDistribution
Returns f (x), the density evaluated at x.

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

cdf

public double cdf(double x)
Description copied from interface: Distribution
. \begin{tabb}Returns the distribution function $F(x)$.
 \end{tabb}
xvalue at which the distribution function is evaluated distribution function evaluated at x


barF

public double barF(double x)
Description copied from class: ContinuousDistribution
Returns the complementary distribution function. The default implementation computes bar(F)(x) = 1 - F(x).

Specified by:
barF in interface Distribution
Overrides:
barF in class ContinuousDistribution
Parameters:
x - value at which the complementary distribution function is evaluated
Returns:
complementary distribution function evaluated at x

inverseF

public double inverseF(double u)
Description copied from class: ContinuousDistribution
Returns the inverse distribution function x = F-1(u). Restrictions: u∈[0, 1].

Specified by:
inverseF in interface Distribution
Overrides:
inverseF in class ContinuousDistribution
Parameters:
u - value at which the inverse distribution function is evaluated
Returns:
the inverse distribution function evaluated at u

getMean

public double getMean()
Description copied from class: ContinuousDistribution
Returns the mean.

Specified by:
getMean in interface Distribution
Overrides:
getMean in class ContinuousDistribution
Returns:
the mean

getVariance

public double getVariance()
Description copied from class: ContinuousDistribution
Returns the variance.

Specified by:
getVariance in interface Distribution
Overrides:
getVariance in class ContinuousDistribution
Returns:
the variance

getStandardDeviation

public double getStandardDeviation()
Description copied from class: ContinuousDistribution
Returns the standard deviation.

Specified by:
getStandardDeviation in interface Distribution
Overrides:
getStandardDeviation in class ContinuousDistribution
Returns:
the standard deviation

getN

public int getN()
. \begin{tabb}Returns $n$, the number of observations.
 \end{tabb}


getObs

public double getObs(int i)
. \begin{tabb}Returns the value of $X_{(i)}$.
 \end{tabb}


getSampleMean

public double getSampleMean()
. \begin{tabb}Returns the sample mean of the observations.
 \end{tabb}


getSampleVariance

public double getSampleVariance()
. \begin{tabb}Returns the sample variance of the observations.
 \end{tabb}


getSampleStandardDeviation

public double getSampleStandardDeviation()
. \begin{tabb}Returns the sample standard deviation of the observations.
 \end{tabb}


getParams

public double[] getParams()
. \begin{tabb}
 Return a table containing parameters of the current distribution.
 \end{tabb}


toString

public String toString()
. \begin{tabb}
 Returns a \texttt{String} containing information about the current distribution.
 \end{tabb}

Overrides:
toString in class Object

SSJ
V. labo.

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