Von Mises Distribution¶
Von Mises distribution over the circle.
Class Hierarchy¶
Von Mises¶
- class VonMises[source]¶
Bases:
DifferentiableThe von Mises distribution is a continuous probability distribution on the circle, analogous to the normal distribution on the line. The probability density function is:
\[p(x; \mu, \kappa) = \frac{1}{2\pi I_0(\kappa)}\exp(\kappa \cos(x - \mu))\]where:
\(\mu\) is the mean direction
\(\kappa\) is the concentration parameter
\(I_0(\kappa)\) is the modified Bessel function of the first kind of order 0
As an exponential family:
Sufficient statistic: \(\mathbf{s}(x) = (\cos(x), \sin(x))\)
Base measure: \(\mu(x) = -\log(2\pi)\)
Natural parameters: \(\theta = \kappa(\cos(\mu), \sin(\mu))\)
- split_mean_concentration(p: Array) tuple[Array, Array][source]¶
Split the natural parameters into mean and concentration parameters.
- Parameters:
p – Natural parameters array
- Returns:
Tuple of (mean_angle, concentration)
- join_mean_concentration(mu0: float, kappa0: float) Array[source]¶
Join the mean and concentration parameters into natural parameters.
- Parameters:
mu0 – Mean angle
kappa0 – Concentration parameter
- Returns:
Natural parameters array
- sufficient_statistic(x: Array) Array[source]¶
Compute sufficient statistics: (cos(x), sin(x)).
- Parameters:
x – Data point
- Returns:
Sufficient statistics array
- log_base_measure(x: Array) Array[source]¶
Log base measure: -log(2pi).
- Parameters:
x – Data point
- Returns:
Log base measure (scalar)
- log_partition_function(params: Array) Array[source]¶
Compute log partition function.
- Parameters:
params – Natural parameters
- Returns:
Log partition function value (scalar)
- sample(key: Array, params: Array, n: int = 1) Array[source]¶
Generate n samples from the Von Mises distribution.
Uses batched rejection sampling with wrapped Cauchy proposal, adapted from NumPyro’s implementation (Devroye, 1986).
For very small concentration (kappa < 0.01), samples uniformly on the circle since the distribution is nearly uniform.
- Parameters:
key – JAX random key
params – Natural parameters
n – Number of samples
- Returns:
Array of n samples with shape (n, 1)