bundles / scipy latest / docs
Doc
Normal Inverse Gaussian Distribution
docs/tutorial:stats:continuous_norminvgauss
The probability density function is given by:
\begin{eqnarray*}
f(x; a, b) = \frac{a \exp\left(\sqrt{a^2 - b^2} + b x \right)}{\pi \sqrt{1 + x^2}} \, K_1\left(a * \sqrt{1 + x^2}\right),
\end{eqnarray*}where is a real number, the parameter is the tail heaviness and is the asymmetry parameter satisfying and . is the modified Bessel function of second kind (scipy.special.k1).
A normal inverse Gaussian random variable with parameters and can be expressed as where is norm(0,1) and is invgauss(mu=1/sqrt(a**2 - b**2)). Hence, the normal inverse Gaussian distribution is a special case of normal variance-mean mixtures.
Another common parametrization of the distribution is given by the following expression of the pdf:
\begin{eqnarray*}
g(x, \alpha, \beta, \delta, \mu) = \frac{\alpha\delta K_1 \left(\alpha\sqrt{\delta^2 + (x - \mu)^2}\right)}{\pi \sqrt{\delta^2 + (x - \mu)^2}} \,
e^{\delta \sqrt{\alpha^2 - \beta^2} + \beta (x - \mu)}
\end{eqnarray*}In SciPy, this corresponds to .
Implementation: scipy.stats.norminvgauss