|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.commons.math3.distribution.AbstractRealDistribution org.apache.commons.math3.distribution.LogNormalDistribution
public class LogNormalDistribution
Implementation of the log-normal (gaussian) distribution.
Parameters:
X
is log-normally distributed if its natural logarithm log(X)
is normally distributed. The probability distribution function of X
is given by (for x > 0
)
exp(-0.5 * ((ln(x) - m) / s)^2) / (s * sqrt(2 * pi) * x)
m
is the scale parameter: this is the mean of the
normally distributed natural logarithm of this distribution,s
is the shape parameter: this is the standard
deviation of the normally distributed natural logarithm of this
distribution.
Field Summary | |
---|---|
static double |
DEFAULT_INVERSE_ABSOLUTE_ACCURACY
Default inverse cumulative probability accuracy. |
Fields inherited from class org.apache.commons.math3.distribution.AbstractRealDistribution |
---|
random, randomData, SOLVER_DEFAULT_ABSOLUTE_ACCURACY |
Constructor Summary | |
---|---|
LogNormalDistribution()
Create a log-normal distribution, where the mean and standard deviation of the normally distributed natural
logarithm of the log-normal distribution are equal to zero and one
respectively. |
|
LogNormalDistribution(double scale,
double shape)
Create a log-normal distribution using the specified scale and shape. |
|
LogNormalDistribution(double scale,
double shape,
double inverseCumAccuracy)
Create a log-normal distribution using the specified scale, shape and inverse cumulative distribution accuracy. |
|
LogNormalDistribution(RandomGenerator rng,
double scale,
double shape,
double inverseCumAccuracy)
Creates a log-normal distribution. |
Method Summary | |
---|---|
double |
cumulativeProbability(double x)
For a random variable X whose values are distributed according
to this distribution, this method returns P(X <= x) . |
double |
cumulativeProbability(double x0,
double x1)
Deprecated. See RealDistribution.cumulativeProbability(double,double) |
double |
density(double x)
Returns the probability density function (PDF) of this distribution evaluated at the specified point x . |
double |
getNumericalMean()
Use this method to get the numerical value of the mean of this distribution. |
double |
getNumericalVariance()
Use this method to get the numerical value of the variance of this distribution. |
double |
getScale()
Returns the scale parameter of this distribution. |
double |
getShape()
Returns the shape parameter of this distribution. |
protected double |
getSolverAbsoluteAccuracy()
Returns the solver absolute accuracy for inverse cumulative computation. |
double |
getSupportLowerBound()
Access the lower bound of the support. |
double |
getSupportUpperBound()
Access the upper bound of the support. |
boolean |
isSupportConnected()
Use this method to get information about whether the support is connected, i.e. |
boolean |
isSupportLowerBoundInclusive()
Whether or not the lower bound of support is in the domain of the density function. |
boolean |
isSupportUpperBoundInclusive()
Whether or not the upper bound of support is in the domain of the density function. |
double |
probability(double x0,
double x1)
For a random variable X whose values are distributed according
to this distribution, this method returns P(x0 < X <= x1) . |
double |
sample()
Generate a random value sampled from this distribution. |
Methods inherited from class org.apache.commons.math3.distribution.AbstractRealDistribution |
---|
inverseCumulativeProbability, probability, reseedRandomGenerator, sample |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final double DEFAULT_INVERSE_ABSOLUTE_ACCURACY
Constructor Detail |
---|
public LogNormalDistribution()
normally distributed
natural
logarithm of the log-normal distribution are equal to zero and one
respectively. In other words, the scale of the returned distribution is
0
, while its shape is 1
.
public LogNormalDistribution(double scale, double shape) throws NotStrictlyPositiveException
scale
- the scale parameter of this distributionshape
- the shape parameter of this distribution
NotStrictlyPositiveException
- if shape <= 0
.public LogNormalDistribution(double scale, double shape, double inverseCumAccuracy) throws NotStrictlyPositiveException
scale
- the scale parameter of this distributionshape
- the shape parameter of this distributioninverseCumAccuracy
- Inverse cumulative probability accuracy.
NotStrictlyPositiveException
- if shape <= 0
.public LogNormalDistribution(RandomGenerator rng, double scale, double shape, double inverseCumAccuracy) throws NotStrictlyPositiveException
rng
- Random number generator.scale
- Scale parameter of this distribution.shape
- Shape parameter of this distribution.inverseCumAccuracy
- Inverse cumulative probability accuracy.
NotStrictlyPositiveException
- if shape <= 0
.Method Detail |
---|
public double getScale()
public double getShape()
public double density(double x)
x
. In general, the PDF is
the derivative of the CDF
.
If the derivative does not exist at x
, then an appropriate
replacement should be returned, e.g. Double.POSITIVE_INFINITY
,
Double.NaN
, or the limit inferior or limit superior of the
difference quotient.
For scale m
, and shape s
of this distribution, the PDF
is given by
0
if x <= 0
,exp(-0.5 * ((ln(x) - m) / s)^2) / (s * sqrt(2 * pi) * x)
otherwise.
x
- the point at which the PDF is evaluated
x
public double cumulativeProbability(double x)
X
whose values are distributed according
to this distribution, this method returns P(X <= x)
. In other
words, this method represents the (cumulative) distribution function
(CDF) for this distribution.
For scale m
, and shape s
of this distribution, the CDF
is given by
0
if x <= 0
,0
if ln(x) - m < 0
and m - ln(x) > 40 * s
, as
in these cases the actual value is within Double.MIN_VALUE
of 0,
1
if ln(x) - m >= 0
and ln(x) - m > 40 * s
,
as in these cases the actual value is within Double.MIN_VALUE
of
1,0.5 + 0.5 * erf((ln(x) - m) / (s * sqrt(2))
otherwise.
x
- the point at which the CDF is evaluated
x
@Deprecated public double cumulativeProbability(double x0, double x1) throws NumberIsTooLargeException
RealDistribution.cumulativeProbability(double,double)
X
whose values are distributed according
to this distribution, this method returns P(x0 < X <= x1)
.
The default implementation uses the identity
P(x0 < X <= x1) = P(X <= x1) - P(X <= x0)
cumulativeProbability
in interface RealDistribution
cumulativeProbability
in class AbstractRealDistribution
x0
- the exclusive lower boundx1
- the inclusive upper bound
x0
and x1
,
excluding the lower and including the upper endpoint
NumberIsTooLargeException
- if x0 > x1
public double probability(double x0, double x1) throws NumberIsTooLargeException
X
whose values are distributed according
to this distribution, this method returns P(x0 < X <= x1)
.
probability
in class AbstractRealDistribution
x0
- Lower bound (excluded).x1
- Upper bound (included).
x0
and x1
, excluding the lower
and including the upper endpoint.
NumberIsTooLargeException
- if x0 > x1
.
The default implementation uses the identity
P(x0 < X <= x1) = P(X <= x1) - P(X <= x0)
protected double getSolverAbsoluteAccuracy()
getSolverAbsoluteAccuracy
in class AbstractRealDistribution
public double getNumericalMean()
m
and shape s
, the mean is
exp(m + s^2 / 2)
.
Double.NaN
if it is not definedpublic double getNumericalVariance()
m
and shape s
, the variance is
(exp(s^2) - 1) * exp(2 * m + s^2)
.
Double.POSITIVE_INFINITY
as
for certain cases in TDistribution
) or Double.NaN
if it
is not definedpublic double getSupportLowerBound()
inverseCumulativeProbability(0)
. In other words, this
method must return
inf {x in R | P(X <= x) > 0}
.
public double getSupportUpperBound()
inverseCumulativeProbability(1)
. In other words, this
method must return
inf {x in R | P(X <= x) = 1}
.
Double.POSITIVE_INFINITY
)public boolean isSupportLowerBoundInclusive()
getSupporLowerBound()
is finite and
density(getSupportLowerBound())
returns a non-NaN, non-infinite
value.
public boolean isSupportUpperBoundInclusive()
getSupportUpperBound()
is finite and
density(getSupportUpperBound())
returns a non-NaN, non-infinite
value.
public boolean isSupportConnected()
true
public double sample()
sample
in interface RealDistribution
sample
in class AbstractRealDistribution
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |