mixcirc.mle: Fitting mixtures of circular distributions

View source: R/mixcirc.mle.R

mixcirc.mleR Documentation

Fitting mixtures of circular distributions

Description

Fitting mixtures of circular distributions.

Usage

mixcirc.mle(u, type ="vm", rads = TRUE, g = 2, tol = 1e-4, maxiters = 500)

Arguments

u

A vector with the circular data expressed in radians, or angles.

type

The distribution to fit, "vm" is von Mises mixtures, "cp" is circular Purkayastha mixtures, "pn" is projected normal mixtures, "gcpc" is GCPC mixtures and "cipc" is CIPC (or wrapped Caucy) mixtures.

rads

If the data are expressed in angles set this to FALSE.

g

The number of groups to fit. It must be greater than or equal to 2.

tol

The tolerance value to terminate the EM algorithm.

maxiters

The maximum number of iterations the EM algorithm will perform.

Details

The functions performs model-based clustering using mixtures of circular distributions. The initial step of the algorithm is based on the k-means algorithm.

Value

A list including:

param

A matrix with the mixing probability of each group and the estimated parameters of the chosen distribution.

loglik

The value of the maximised log-likelihood of the chosen distribution.

probs

The estimated probabilities of each observation to belong to each cluster.

pred

The predicted group of each observation.

iter

The number of iteration required by the EM algorithm.

runtime

The run time of the algorithm. A numeric vector. The first element is the user time, the second element is the system time and the third element is the elapsed time.

Author(s)

Michail Tsagris.

R implementation and documentation: Michail Tsagris mtsagris@uoc.gr.

References

Tsagris M., Papastamoulis P. and Kato S. (2025). Directional data analysis using the spherical Cauchy and the Poisson kernel-based distribution. Statistics and Computing, 35:51.

Perdikis T., Alharbi N. and Tsagris M. (2026). Model–based clustering for spherical and hyper–spherical data using elliptically symmetric distributions.

https://arxiv.org/abs/2605.27496

See Also

bic.mixcirc

Examples

u1 <- rnorm(100)
u2 <- rnorm(100, 1, 0.5)
u <- c(u1, u2)
mixcirc.mle(u, type = "vm")

circda documentation built on Sept. 15, 2026, 5:09 p.m.