Class ExponentialDistribution
 All Implemented Interfaces:
Serializable
,Distribution
,ExponentialFamily
The exponential distribution may be viewed as a continuous counterpart of the geometric distribution, which describes the number of Bernoulli trials necessary for a discrete process to change state. In contrast, the exponential distribution describes the time for a continuous process to change state.
The probability density function of an exponential distribution is
f(x; λ) = λe^{λx} for x >= 0
. The cumulative
distribution function is given by F(x; λ) = 1  e^{λ x}
for x >= 0
. An important property of the exponential distribution is that
it is memoryless. This means that if a random variable T is exponentially
distributed, its conditional probability obeys
Pr(T > s + t  T > s) = Pr(T > t)
for all s, t >= 0
.
In queuing theory, the service times of agents in a system are often modeled as exponentially distributed variables. Reliability theory and reliability engineering also make extensive use of the exponential distribution. Because of the memoryless property of this distribution, it is wellsuited to model the constant hazard rate portion of the bathtub curve used in reliability theory. The exponential distribution is however not appropriate to model the overall lifetime of organisms or technical devices, because the "failure rates" here are not constant: more failures occur for very young and for very old systems.
 See Also:

Field Summary

Constructor Summary

Method Summary
Modifier and TypeMethodDescriptiondouble
cdf
(double x) Cumulative distribution function.double
entropy()
Returns Shannon entropy of the distribution.static ExponentialDistribution
fit
(double[] data) Estimates the distribution parameters by MLE.int
length()
Returns the number of parameters of the distribution.double
logp
(double x) The density at x in log scale, which may prevents the underflow problem.M
(double[] x, double[] posteriori) The M step in the EM algorithm, which depends on the specific distribution.double
mean()
Returns the mean of distribution.double
p
(double x) The probability density function for continuous distribution or probability mass function for discrete distribution at x.double
quantile
(double p) The quantile, the probability to the left of quantile is p.double
rand()
Generates a random number following this distribution.double
sd()
Returns the standard deviation of distribution.toString()
double
variance()
Returns the variance of distribution.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface smile.stat.distribution.Distribution
inverseTransformSampling, likelihood, logLikelihood, quantile, quantile, rand, rejectionSampling

Field Details

lambda
public final double lambdaThe rate parameter.


Constructor Details

ExponentialDistribution
public ExponentialDistribution(double lambda) Constructor. Parameters:
lambda
 rate parameter.


Method Details

fit
Estimates the distribution parameters by MLE. Parameters:
data
 the training data. Returns:
 the distribution.

length
public int length()Description copied from interface:Distribution
Returns the number of parameters of the distribution. The "length" is in the sense of the minimum description length principle. Specified by:
length
in interfaceDistribution
 Returns:
 The number of parameters.

mean
public double mean()Description copied from interface:Distribution
Returns the mean of distribution. Specified by:
mean
in interfaceDistribution
 Returns:
 The mean.

variance
public double variance()Description copied from interface:Distribution
Returns the variance of distribution. Specified by:
variance
in interfaceDistribution
 Returns:
 The variance.

sd
public double sd()Description copied from interface:Distribution
Returns the standard deviation of distribution. Specified by:
sd
in interfaceDistribution
 Returns:
 The standard deviation.

entropy
public double entropy()Description copied from interface:Distribution
Returns Shannon entropy of the distribution. Specified by:
entropy
in interfaceDistribution
 Returns:
 Shannon entropy.

toString

rand
public double rand()Description copied from interface:Distribution
Generates a random number following this distribution. Specified by:
rand
in interfaceDistribution
 Returns:
 a random number.

p
public double p(double x) Description copied from interface:Distribution
The probability density function for continuous distribution or probability mass function for discrete distribution at x. Specified by:
p
in interfaceDistribution
 Parameters:
x
 a real number. Returns:
 the density.

logp
public double logp(double x) Description copied from interface:Distribution
The density at x in log scale, which may prevents the underflow problem. Specified by:
logp
in interfaceDistribution
 Parameters:
x
 a real number. Returns:
 the log density.

cdf
public double cdf(double x) Description copied from interface:Distribution
Cumulative distribution function. That is the probability to the left of x. Specified by:
cdf
in interfaceDistribution
 Parameters:
x
 a real number. Returns:
 the probability.

quantile
public double quantile(double p) Description copied from interface:Distribution
The quantile, the probability to the left of quantile is p. It is actually the inverse of cdf. Specified by:
quantile
in interfaceDistribution
 Parameters:
p
 the probability. Returns:
 the quantile.

M
Description copied from interface:ExponentialFamily
The M step in the EM algorithm, which depends on the specific distribution. Specified by:
M
in interfaceExponentialFamily
 Parameters:
x
 the input data for estimationposteriori
 the posteriori probability. Returns:
 the (unnormalized) weight of this distribution in the mixture.
