# 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 event.

## 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}

## 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

rg.weibull(alpha) * sigma

SciPy

scipy.stats.weibull_min(alpha, loc=0, scale=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$$.