Generalized Gamma Distribution#
A general probability form that reduces to many common distributions. There are two shape parameters \(a>0\) and \(c\neq0\). The support is \(x\geq0\).
 \begin{eqnarray*} f\left(x;a,c\right) & = & \frac{\left|c\right|x^{ca-1}}{\Gamma\left(a\right)}\exp\left(-x^{c}\right)\\
 F\left(x;a,c\right) & = &
   \left\{
     \begin{array}{cc}
       \frac{\gamma\left(a,x^{c}\right)}{\Gamma\left(a\right)} & c>0\\
       1-\frac{\gamma\left(a,x^{c}\right)}{\Gamma\left(a\right)} & c<0
     \end{array}
   \right. \\
 G\left(q;a,c\right) & = &
   \left\{
     \begin{array}{cc}
       \gamma^{-1} \left(a, \Gamma\left(a\right) q \right)^{1/c} &  c>0 \\
       \gamma^{-1} \left(a, \Gamma\left(a\right) \left(1-q\right) \right)^{1/c} & c<0
     \end{array}
   \right. \end{eqnarray*}
where \(\gamma\) is the lower incomplete gamma function, \(\gamma\left(s, x\right) = \int_0^x t^{s-1} e^{-t} dt\).
 \begin{eqnarray*}  \mu_{n}^{\prime} & = & \frac{\Gamma\left(a+\frac{n}{c}\right)}{\Gamma\left(a\right)}\\
 \mu & = & \frac{\Gamma\left(a+\frac{1}{c}\right)}{\Gamma\left(a\right)}\\
 \mu_{2} & = & \frac{\Gamma\left(a+\frac{2}{c}\right)}{\Gamma\left(a\right)}-\mu^{2}\\
 \gamma_{1} & = & \frac{\Gamma\left(a+\frac{3}{c}\right)/\Gamma\left(a\right)-3\mu\mu_{2}-\mu^{3}}{\mu_{2}^{3/2}}\\
 \gamma_{2} & = & \frac{\Gamma\left(a+\frac{4}{c}\right)/\Gamma\left(a\right)-4\mu\mu_{3}-6\mu^{2}\mu_{2}-\mu^{4}}{\mu_{2}^{2}}-3\\
 m_{d} & = & \left(\frac{ac-1}{c}\right)^{1/c}\end{eqnarray*}
Special cases are Weibull \(\left(a=1\right)\), half-normal \(\left(a=1/2,c=2\right)\) and ordinary gamma distributions \(c=1.\) If \(c=-1\) then it is the inverted gamma distribution.
\[h\left[X\right]=a-a\Psi\left(a\right)+\frac{1}{c}\Psi\left(a\right)+\log\Gamma\left(a\right)-\log\left|c\right|.\]
Implementation: scipy.stats.gengamma