public final class ParetoDistribution extends Object
The probability density function of \( X \) is:
\[ f(x; k, \alpha) = \frac{\alpha k^\alpha}{x^{\alpha + 1}} \]
for \( k > 0 \), \( \alpha > 0 \), and \( x \in [k, \infty) \).
\( k \) is a scale parameter: this is the minimum possible value of \( X \).
\( \alpha \) is a shape parameter: this is the Pareto index.
ContinuousDistribution.Sampler
Modifier and Type | Method and Description |
---|---|
ContinuousDistribution.Sampler |
createSampler(UniformRandomProvider rng)
Creates a sampler.
|
double |
cumulativeProbability(double x)
For a random variable
X whose values are distributed according
to this distribution, this method returns P(X <= x) . |
double |
density(double x)
Returns the probability density function (PDF) of this distribution
evaluated at the specified point
x . |
double |
getMean()
Gets the mean of this distribution.
|
double |
getScale()
Gets the scale parameter of this distribution.
|
double |
getShape()
Gets the shape parameter of this distribution.
|
double |
getSupportLowerBound()
Gets the lower bound of the support.
|
double |
getSupportUpperBound()
Gets the upper bound of the support.
|
double |
getVariance()
Gets the variance of this distribution.
|
double |
inverseCumulativeProbability(double p)
Computes the quantile function of this distribution.
|
double |
inverseSurvivalProbability(double p)
Computes the inverse survival probability function of this distribution.
|
double |
logDensity(double x)
Returns the natural logarithm of the probability density function
(PDF) of this distribution evaluated at the specified point
x . |
static ParetoDistribution |
of(double scale,
double shape)
Creates a Pareto distribution.
|
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 |
survivalProbability(double x)
For a random variable
X whose values are distributed according
to this distribution, this method returns P(X > x) . |
public static ParetoDistribution of(double scale, double shape)
scale
- Scale parameter (minimum possible value of X).shape
- Shape parameter (Pareto index).IllegalArgumentException
- if scale <= 0
, scale
is
infinite, or shape <= 0
.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 parameter \( k \) and shape parameter \( \alpha \), the PDF is:
\[ f(x; k, \alpha) = \begin{cases} 0 & \text{for } x \lt k \\ \frac{\alpha k^\alpha}{x^{\alpha + 1}} & \text{for } x \ge k \end{cases} \]
x
- Point at which the PDF is evaluated.x
.public double logDensity(double x)
x
.
See documentation of density(double)
for computation details.
x
- 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 parameter \( k \) and shape parameter \( \alpha \), the CDF is:
\[ F(x; k, \alpha) = \begin{cases} 0 & \text{for } x \le k \\ 1 - \left( \frac{k}{x} \right)^\alpha & \text{for } x \gt k \end{cases} \]
x
- Point at which the CDF is evaluated.x
.public double survivalProbability(double x)
X
whose values are distributed according
to this distribution, this method returns P(X > x)
.
In other words, this method represents the complementary cumulative
distribution function.
By default, this is defined as 1 - cumulativeProbability(x)
, but
the specific implementation may be more accurate.
For scale parameter \( k \) and shape parameter \( \alpha \), the survival function is:
\[ S(x; k, \alpha) = \begin{cases} 1 & \text{for } x \le k \\ \left( \frac{k}{x} \right)^\alpha & \text{for } x \gt k \end{cases} \]
x
- Point at which the survival function is evaluated.x
.public double inverseCumulativeProbability(double p)
X
distributed according to this distribution, the
returned value is:
\[ x = \begin{cases} \inf \{ x \in \mathbb R : P(X \le x) \ge p\} & \text{for } 0 \lt p \le 1 \\ \inf \{ x \in \mathbb R : P(X \le x) \gt 0 \} & \text{for } p = 0 \end{cases} \]
The default implementation returns:
ContinuousDistribution.getSupportLowerBound()
for p = 0
,ContinuousDistribution.getSupportUpperBound()
for p = 1
, orcumulativeProbability(x) - p
.
The bounds may be bracketed for efficiency.inverseCumulativeProbability
in interface ContinuousDistribution
p
- Cumulative probability.p
-quantile of this distribution
(largest 0-quantile for p = 0
).public double inverseSurvivalProbability(double p)
X
distributed according to this distribution, the
returned value is:
\[ x = \begin{cases} \inf \{ x \in \mathbb R : P(X \ge x) \le p\} & \text{for } 0 \le p \lt 1 \\ \inf \{ x \in \mathbb R : P(X \ge x) \lt 1 \} & \text{for } p = 1 \end{cases} \]
By default, this is defined as inverseCumulativeProbability(1 - p)
, but
the specific implementation may be more accurate.
The default implementation returns:
ContinuousDistribution.getSupportLowerBound()
for p = 1
,ContinuousDistribution.getSupportUpperBound()
for p = 0
, orsurvivalProbability(x) - p
.
The bounds may be bracketed for efficiency.inverseSurvivalProbability
in interface ContinuousDistribution
p
- Survival probability.(1-p)
-quantile of this distribution
(largest 0-quantile for p = 1
).public double getMean()
For scale parameter \( k \) and shape parameter \( \alpha \), the mean is:
\[ \mathbb{E}[X] = \begin{cases} \infty & \text{for } \alpha \le 1 \\ \frac{k \alpha}{(\alpha-1)} & \text{for } \alpha \gt 1 \end{cases} \]
public double getVariance()
For scale parameter \( k \) and shape parameter \( \alpha \), the variance is:
\[ \operatorname{var}[X] = \begin{cases} \infty & \text{for } \alpha \le 2 \\ \frac{k^2 \alpha}{(\alpha-1)^2 (\alpha-2)} & \text{for } \alpha \gt 2 \end{cases} \]
public double getSupportLowerBound()
inverseCumulativeProbability(0)
, i.e.
\( \inf \{ x \in \mathbb R : P(X \le x) \gt 0 \} \).
The lower bound of the support is equal to the scale parameter k
.
public double getSupportUpperBound()
inverseCumulativeProbability(1)
, i.e.
\( \inf \{ x \in \mathbb R : P(X \le x) = 1 \} \).
The upper bound of the support is always positive infinity.
positive infinity
.public ContinuousDistribution.Sampler createSampler(UniformRandomProvider rng)
createSampler
in interface ContinuousDistribution
rng
- Generator of uniformly distributed numbers.public double probability(double x0, double x1)
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)
probability
in interface ContinuousDistribution
x0
- Lower bound (exclusive).x1
- Upper bound (inclusive).x0
and x1
, excluding the lower
and including the upper endpoint.Copyright © 2018–2022 The Apache Software Foundation. All rights reserved.