正态逆高斯分布#

概率密度函数由下式给出

\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*}

其中 \(x\) 是一个实数,参数 \(a\) 是尾部重度,\(b\) 是满足 \(a > 0\)\(|b| \leq a\) 的不对称参数。 \(K_1\) 是第二类修正贝塞尔函数 (scipy.special.k1).

具有参数 \(a\)\(b\) 的正态逆高斯随机变量可以表示为 \(X = b V + \sqrt(V) X\),其中 \(X\)norm(0,1)\(V\)invgauss(mu=1/sqrt(a**2 - b**2))。因此,正态逆高斯分布是正态方差-均值混合的特殊情况。

分布的另一种常用参数化由以下 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*}

在 SciPy 中,这对应于 \(a = \alpha \delta, b = \beta \delta, \text{loc} = \mu, \text{scale}=\delta\).

实现: scipy.stats.norminvgauss