Gamma Distribution

Table of contents


Density Function

The density function of the Gamma distribution:

\[f(x; k, \theta) = \dfrac{x^{k-1}\exp(-x/\theta)}{\theta^k \Gamma(k)} \times \mathbf{1}[ x \geq 0 ]\]

where \(\Gamma(\cdot)\) denotes the Gamma function, \(k\) is the shape parameter, and \(\theta\) is the scale parameter.

Methods for scalar input, as well as for list input, are listed below.

Scalar Input

pystats.dgamma(x: float, shape: float = 1.0, scale: float = 1.0, log: bool = False) float

Density function of the Gamma distribution.

Example

>>> pystats.dgamma(2, 2, 3)
0.1140926931183538
Parameters
  • x (float) – A real-valued input.

  • shape (float) – The shape parameter, a real-valued input.

  • scale (float) – The scale parameter, a real-valued input.

  • log (bool) – Return the log-density or the true form.

Returns

The density function evaluated at x.

List Input

pystats.dgamma(x: List[float], shape: float = 1.0, scale: float = 1.0, log: bool = False) List[float]

Density function of the Gamma distribution.

Example

>>> pystats.dgamma([1.8, 0.7, 4.2], 2, 3)
[0.1097623272188053, 0.061591410715083, 0.11507858317274963]
Parameters
  • x (List[float]) – A standard list input.

  • shape (float) – The shape parameter, a real-valued input.

  • scale (float) – The scale parameter, a real-valued input.

  • log (bool) – Return the log-density or the true form.

Returns

A list of density values corresponding to the elements of x.


Cumulative Distribution Function

The cumulative distribution function (CDF) of the Gamma distribution:

\[F(x; k, \theta) = \int_0^x f(z; k, \theta) dz = \frac{\gamma(k,x\theta)}{\Gamma (k)}\]

where \(\Gamma(\cdot)\) denotes the gamma function and \(\gamma(\cdot, \cdot)\) denotes the incomplete gamma function.

Methods for scalar input, as well as for list input, are listed below.

Scalar Input

pystats.pgamma(p: float, shape: float = 1.0, scale: float = 1.0, log: bool = False) float

Distribution function of the Gamma distribution.

Example

>>> pystats.pgamma(2, 2, 3)
0.14430480161234657
Parameters
  • p (float) – A real-valued input.

  • shape (float) – The shape parameter, a real-valued input.

  • scale (float) – The scale parameter, a real-valued input.

  • log (bool) – Return the log-density or the true form.

Returns

The cumulative distribution function evaluated at p.

List Input

pystats.pgamma(p: List[float], shape: float = 1.0, scale: float = 1.0, log: bool = False) List[float]

Distribution function of the Gamma distribution.

Example

>>> pystats.pgamma([1.8, 0.7, 4.2], 2, 3)
[0.12190138224955768, 0.023336201517969262, 0.4081672865401445]
Parameters
  • p (List[float]) – A standard list input.

  • shape (float) – The shape parameter, a real-valued input.

  • scale (float) – The scale parameter, a real-valued input.

  • log (bool) – Return the log-density or the true form.

Returns

A list of CDF values corresponding to the elements of p.


Quantile Function

The quantile function of the Gamma distribution:

\[q(p; k, \theta) = \inf \left\{ x : p \leq \frac{\gamma(k,x\theta)}{\Gamma (k)} \right\}\]

where \(\Gamma(\cdot)\) denotes the gamma function and \(\gamma(\cdot, \cdot)\) denotes the incomplete gamma function.

Methods for scalar input, as well as for list input, are listed below.

Scalar Input

pystats.qgamma(q: float, shape: float = 1.0, scale: float = 1.0) float

Quantile function of the Gamma distribution.

Example

>>> pystats.qgamma(0.15, 2, 3)
2.0497158392128205
Parameters
  • q (float) – A real-valued input.

  • shape (float) – The shape parameter, a real-valued input.

  • scale (float) – The scale parameter, a real-valued input.

Returns

The quantile function evaluated at q.

List Input

pystats.qgamma(q: List[float], shape: float = 1.0, scale: float = 1.0) List[float]

Quantile function of the Gamma distribution.

Example

>>> pystats.qgamma([0.1, 0.2, 0.7], 2, 3)
[1.5954348251688362, 2.473164927098954, 7.317649449840613]
Parameters
  • q (List[float]) – A standard list input.

  • shape (float) – The shape parameter, a real-valued input.

  • scale (float) – The scale parameter, a real-valued input.

Returns

A list of quantiles values corresponding to the elements of q.


Random Sampling

Random sampling for the Gamma distribution is achieved via the Ziggurat method of Marsaglia and Tsang (2000).

Scalar Output

pystats.rgamma(shape: float = 1.0, scale: float = 1.0) float

Random sampling function for the Gamma distribution.

Example

>>> pystats.rgamma(2, 3)
2.5950379008163194
Parameters
  • shape (float) – The shape parameter, a real-valued input.

  • scale (float) – The scale parameter, a real-valued input.

Returns

A pseudo-random draw from the Gamma distribution.

List Output

pystats.rgamma(n: int, shape: float = 1.0, scale: float = 1.0) List[float]

Random sampling function for the Gamma distribution.

Example

>>> pystats.rgamma(3, 2, 3)
[8.584541442906463, 4.491138145011711, 4.904685252957054]
Parameters
  • n (int) – The number of output values.

  • shape (float) – The shape parameter, a real-valued input.

  • scale (float) – The scale parameter, a real-valued input.

Returns

A list of pseudo-random draws from the Gamma distribution.