Class WeibullDistribution

java.lang.Object
smile.stat.distribution.AbstractDistribution
smile.stat.distribution.WeibullDistribution
All Implemented Interfaces:
Serializable, Distribution

public class WeibullDistribution extends AbstractDistribution
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/λ)k-1e-(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.
Under certain parameterizations, the Weibull distribution reduces to several other familiar distributions:
  • When k = 1, it is the exponential distribution.
  • When k = 2, it becomes equivalent to the Rayleigh distribution, which models the modulus of a two-dimensional 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

    Fields
    Modifier and Type
    Field
    Description
    final double
    The shape parameter.
    final double
    The scale parameter.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructor.
    WeibullDistribution(double k, double lambda)
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    double
    cdf(double x)
    Cumulative distribution function.
    double
    Shannon entropy of the distribution.
    int
    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
    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
    Generates a random number following this distribution.
     
    double
    The variance of distribution.

    Methods inherited from class smile.stat.distribution.AbstractDistribution

    inverseTransformSampling, quantile, quantile, rejection

    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

    likelihood, logLikelihood, rand, sd
  • Field Details

    • k

      public final double k
      The shape parameter.
    • lambda

      public final double lambda
      The 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
      The number of parameters of the distribution. The "length" is in the sense of the minimum description length principle.
      Returns:
      The number of parameters.
    • mean

      public double mean()
      Description copied from interface: Distribution
      The mean of distribution.
      Returns:
      The mean.
    • variance

      public double variance()
      Description copied from interface: Distribution
      The variance of distribution.
      Returns:
      The variance.
    • entropy

      public double entropy()
      Description copied from interface: Distribution
      Shannon entropy of the distribution.
      Returns:
      Shannon entropy.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • rand

      public double rand()
      Description copied from interface: Distribution
      Generates a random number following this distribution.
      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.
      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.
      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.
      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.
      Parameters:
      p - the probability.
      Returns:
      the quantile.