Package smile.stat.distribution
Class WeibullDistribution
java.lang.Object
smile.stat.distribution.WeibullDistribution
 All Implemented Interfaces:
Serializable
,Distribution
The Weibull distribution is one of the most widely used lifetime distributions
in reliability engineering. It is a versatile distribution that can take on
the characteristics of other types of distributions, based on the value of
the shape parameter. The distribution has two parameters:
k > 0
is the shape parameter and λ > 0
is the scale parameter
of the distribution. The probability density function is
f(x;λ,k) = k/λ (x/λ)^{k1}e^{(x/λ)^k}
for x >= 0
.
The Weibull distribution is often used in the field of life data analysis
due to its flexibility  it can mimic the behavior of other statistical
distributions such as the normal and the exponential. If the failure rate
decreases over time, then k < 1
. If the failure rate is
constant over time, then k = 1
. If the failure rate increases
over time, then k > 1
.
An understanding of the failure rate may provide insight as to what is causing the failures:
 A decreasing failure rate would suggest "infant mortality". That is, defective items fail early and the failure rate decreases over time as they fall out of the population.
 A constant failure rate suggests that items are failing from random events.
 An increasing failure rate suggests "wear out"  parts are more likely to fail as time goes on.
 When
k = 1
, it is the exponential distribution.  When
k = 2
, it becomes equivalent to the Rayleigh distribution, which models the modulus of a twodimensional uncorrelated bivariate normal vector.  When
k = 3.4
, it appears similar to the normal distribution.  As k goes to infinity, the Weibull distribution asymptotically approaches the Dirac delta function.
 See Also:

Field Summary

Constructor Summary
ConstructorDescriptionWeibullDistribution
(double k) Constructor.WeibullDistribution
(double k, double lambda) Constructor. 
Method Summary
Modifier and TypeMethodDescriptiondouble
cdf
(double x) Cumulative distribution function.double
entropy()
Returns Shannon entropy of the distribution.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.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.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, sd

Field Details

k
public final double kThe shape parameter. 
lambda
public final double lambdaThe scale parameter.


Constructor Details

WeibullDistribution
public WeibullDistribution(double k) Constructor. The default scale parameter is 1.0. Parameters:
k
 the shape parameter.

WeibullDistribution
public WeibullDistribution(double k, double lambda) Constructor. Parameters:
k
 the shape parameter.lambda
 the scale parameter.


Method Details

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.

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.
