Von Mises Distribution#
There is one shape parameter \(\kappa>0\), with support \(x\in\left[-\pi,\pi\right]\). For values of \(\kappa<100\) the PDF and CDF formulas below are used. Otherwise, a normal approximation with variance \(1/\kappa\) is used. [Note that the PDF and CDF functions below are periodic with period \(2\pi\). If an input outside \(x\in\left[-\pi,\pi\right]\) is given, it is converted to the equivalent angle in this range.]
\begin{eqnarray*} f\left(x;\kappa\right) & = & \frac{e^{\kappa\cos x}}{2\pi I_{0}\left(\kappa\right)}\\
F\left(x;\kappa\right) & = & \frac{1}{2} + \frac{x}{2\pi} + \sum_{k=1}^{\infty}\frac{I_{k}\left(\kappa\right)\sin\left(kx\right)}{I_{0}\left(\kappa\right)\pi k}\\
G\left(q; \kappa\right) & = & F^{-1}\left(x;\kappa\right)\end{eqnarray*}
where \(I_{k}(\kappa)\) is a modified Bessel function of the first kind.
\begin{eqnarray*} \mu & = & 0\\
\mu_{2} & = & \int_{-\pi}^{\pi}x^{2}f\left(x;\kappa\right)dx\\
\gamma_{1} & = & 0\\
\gamma_{2} & = & \frac{\int_{-\pi}^{\pi}x^{4}f\left(x;\kappa\right)dx}{\mu_{2}^{2}}-3\end{eqnarray*}
This can be used for defining circular variance.
Implementation: scipy.stats.vonmises