Weibull distribution


Story

The quantity \(y^\alpha\) is Weibull distributed if \(y\) is Exponentially distributed. Like the Exponential distribution, it describes waiting times for arrival of a process. For \(\alpha > 1\), the longer we have waited, the more likely the event is to arrive, and vice versa for \(\alpha < 1\).


Example

This is a model for aging. The longer an organism lives, the more likely it is to die.


Parameters

There are two parameters, both strictly positive: the shape parameter \(\alpha\), which dictates the shape of the curve, and the scale parameter \(\sigma\), which dictates the rate of arrivals of the modeled process.


Support

The Weibull distribution has support on the nonnegative real numbers.


Probability density function

\[\begin{align} f(y;\alpha, \sigma) = \frac{\alpha}{\sigma}\left(\frac{y}{\sigma}\right)^{\alpha - 1}\,\mathrm{e}^{-(y/\sigma)^\alpha}. \end{align}\]

Cumulative distribution function

\[\begin{align} F(y;\alpha, \sigma) = 1 - \mathrm{e}^{-(x/\sigma)^\alpha}. \end{align}\]

Moments

Mean: \(\displaystyle{\sigma \Gamma(1 + 1/\alpha)}\)

Variance: \(\displaystyle{\sigma^2\left[\Gamma(1+2/\alpha) - \left(\Gamma(1 + 1/\alpha)\right)^2\right]}\)


Usage

Package

Syntax

NumPy

sigma * rng.weibull(alpha)

SciPy

scipy.stats.weibull_min(alpha, loc=0, scale=sigma)

Distributions.jl

Weibull(alpha, sigma)

Stan

weibull(alpha, sigma)



Notes

  • SciPy has a location parameter, which should be set to zero, with \(\sigma\) being the scale parameter.

  • NumPy only provides a version of the Weibull distribution with \(\sigma = 1\). Sampling out of the Weibull distribution may be accomplished by multiplying the resulting samples by \(\sigma\).


PDF and CDF plots