Normal Inverse Gaussian Distribution#
The probability density function is given by:
f(x;a,b)=aexp(√a2−b2+bx)π√1+x2K1(a∗√1+x2),
where x is a real number, the parameter a is the tail heaviness and b is the asymmetry parameter satisfying a>0 and |b|≤a. K1 is the modified Bessel function of second kind (scipy.special.k1
).
A normal inverse Gaussian random variable with parameters a and b can be expressed as X=bV+√(V)X where X is norm(0,1)
and V 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:
g(x,α,β,δ,μ)=αδK1(α√δ2+(x−μ)2)π√δ2+(x−μ)2eδ√α2−β2+β(x−μ)
In SciPy, this corresponds to a=αδ,b=βδ,loc=μ,scale=δ.
Implementation: scipy.stats.norminvgauss