Package {circda}


Type: Package
Title: Circular Data Analysis
Version: 1.0
Date: 2026-07-20
Author: Michail Tsagris [aut, cre]
Maintainer: Michail Tsagris <mtsagris@uoc.gr>
Depends: R (≥ 4.0)
Imports: circular, Directional, graphics, rangen, Rfast, stats
Suggests: Rfast2
Description: Functions to perform maximum likelihood estimation, model-based clustering, discriminant and regression analysis with a circular response variable. <doi:10.1080/01621459.2019.1585249>.
License: GPL-2 | GPL-3 [expanded from: GPL (≥ 2)]
NeedsCompilation: no
Packaged: 2026-07-20 19:37:35 UTC; mtsag
Repository: CRAN
Date/Publication: 2026-07-29 18:30:02 UTC

Circular Data Analysis

Description

Functions to perform maximum likelihood estimation, model-based clustering, discriminant and regression analysis with a circular response variable.

Details

Package: circda
Type: Package
Version: 1.0
Date: 2026-07-20

Maintainers

Michail Tsagris <mtsagris@uoc.gr>.

Author(s)

Michail Tsagris mtsagris@uoc.gr

References

Scealy J.L. and Wood A.T.A. (2019). Scaled von Mises-Fisher distributions and regression models for paleomagnetic directional data. Journal of the American Statistical Association, 114(528): 1547–1560.


BIC and ICL for the model based clustering with circular distributions

Description

BIC and ICL for the model based clustering with circular distributions.

Usage

bic.mixcirc(u, rads = TRUE, type = "vm", G = 5, tol = 1e-4, maxiters = 500)

Arguments

u

A matrix containing directional data.

rads

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

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.

G

The maximum number of clusters to be tested. Default value is 5.

tol

The tolerance value to terminate the EM algorithm.

maxiters

The maximum number of iterations the EM algorithm will perform.

Details

The function computes the BIC and ICL to decide on the optimal number of clusters when using mixtures of SESPC or mixtures of ESAG distributions.

Value

A plot of the ICL values and a list including:

bic

The BIC values for all the models tested.

icl

The ICL values for all the models tested.

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.

References

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

mixcirc.mle, circ.mle

Examples

u1 <- rnorm(100, 3, 0.1)
u2 <- rnorm(100, 4, 0.1)
u <- c(u1, u2)
bic.mixcirc(u, type = "vm", G = 5)

Prediction of a new observation using discriminant analysis based on circular distributions

Description

Prediction of a new observation using discriminant analysis based on circular distributions.

Usage

circ.da(unew, u, ina, rads = TRUE, type = c("vm", "cp", "pn", "gcpc", "cipc") )

Arguments

unew

The new observation(s) (expressed in radians, or angles) whose group is to be predicted.

u

A numerical vector with the data (expressed in radians, or angles).

ina

A vector indicating the groups of the data y.

rads

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

type

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

Details

Prediction of the class of a new circular vector assuming some distributions.

Value

A matrix with 5 columns, one for each distribution, where each row contains the predicted class of each observation If you chose less distributions to test, the columns of the non-chosen distributions will contain NAs.

Author(s)

Michail Tsagris.

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

References

Tsagris M. and Alenazi A. (2019). Comparison of discriminant analysis methods on the sphere. Communications in Statistics: Case Studies, Data Analysis and Applications, 5(4): 467–491.

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.

Morris J. E. and Laycock P. J. (1974). Discriminant analysis of directional data. Biometrika, 61(2): 335–341.

Mardia K. V. and Jupp P. E. (2000). Directional statistics. Chicester: John Wiley & Sons.

See Also

circda.cv

Examples

u1 <- rnorm(50, 3, 0.2)
u2 <- rnorm(50, 5, 0.4)
u <- c(u1, u2)
ina <- rep(1:2, each = 50)
est <- circ.da(u, u, ina)

MLE of a circular distribution

Description

MLE of a circular distribution.

Usage

circ.mle(u, rads = TRUE, type ="vm", tol = 1e-6, maxiters = 100)

Arguments

u

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

rads

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

type

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

tol

The tolerance value to terminate the Newton-Raphson algorithm.

maxiters

The maximum number of iterations the Newton-Raphson algorithm will perform.

Details

The function performs MLE of circular distributions.

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.

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

Mardia K. V. and Jupp P. E. (2000). Directional statistics. Chicester: John Wiley & Sons.

Sra S. (2012). A short note on parameter approximation for von Mises-Fisher distributions: and a fast implementation of I_s(x). Computational Statistics, 27(1): 177–190.

Presnell Brett, Morrison Scott P. and Littell Ramon C. (1998). Projected multivariate linear models for directional data. Journal of the American Statistical Association, 93(443): 1068–1077.

Tsagris M. and Alzeley O. (2025). Circular and spherical projected Cauchy distributions: A Novel Framework for Circular and Directional Data Modelling. Australian & New Zealand Journal of Statistics, 67(1): 77–103. https://arxiv.org/pdf/2302.02468.pdf

Alzeley O. and Tsagris M. (2026). On the generalized circular projected Cauchy distribution. Mathematics, 14(11): 1934. https://www.mdpi.com/2227-7390/14/11/1934

Purkayastha S. (1991). A Rotationally Symmetric Directional Distribution: Obtained through Max- imum Likelihood Characterization. The Indian Journal of Statistics, Series A, 53(1): 70–83.

Cabrera J. and Watson G. S. (1990). On a spherical median related distribution. Communications in Statistics-Theory and Methods, 19(6): 1973–1986

See Also

mixcirc.mle

Examples

u <- rcirc(100, mu = 3, kappa = 2, rads = TRUE, type = "vm")
circ.mle(u, rads = TRUE, type = "vm")

Regression model using a circular distribution

Description

Regression model using a circular distribution.

Usage

circ.reg(y, x, rads = TRUE, type = "vm", xnew = NULL, tol = 1e-6, maxiters = 100)

Arguments

y

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

x

The independent variable(s). Can be Euclidean or categorical (factor variables).

rads

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

type

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

xnew

The new values of some independent variable(s) whose circular values you want to predict. The can be Euclidean or categorical. If you have no new x values, leave it NULL (default).

tol

The tolerance value to terminate the Newton-Raphson algorithm.

maxiters

The maximum number of iterations allowed in the Newton-Raphson algorithm.

Details

The functions performs regression using circular distributions.

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.

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

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

circ.regs

Examples

y <- rcirc(100, mu = 3, kappa = 2, rads = TRUE, type = "vm")
x <- rnorm(100)
circ.reg(y, x, rads = TRUE, type = "vm")

Many simple circular regressions

Description

Many simple circular regressions.

Usage

circ.regs(y, x, rads = TRUE, type = "vm", tol = 1e-6, logged = FALSE,
maxiters = 100, ncores = 1)

Arguments

y

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

x

A numerical matrix with many variables. A circular regression will be fit to each of these variables.

rads

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

type

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

tol

The tolerance value to terminate the Newton-Raphson algorithm.

logged

Do you want the logarithm of the p-value to be returned?

maxiters

The maximum number of iterations the Newton-Raphson algorithm will perform.

ncores

A number specifying the number of cores to use. If more than 1, then parallel processing is performed.

Details

The function performs many regressions with one circular dependent variable and one Euclidean independent variable. For each colum of x a circular regression model is fitted and the hypothesis testing of no association between y and this variable is performed.

Value

A matrix with two columns, the test statistics and their associated (log) p-values.

Author(s)

Michail Tsagris.

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

References

Mardia K. V. and Jupp P. E. (2000). Directional statistics. Chicester: John Wiley & Sons.

Presnell Brett, Morrison Scott P. and Littell Ramon C. (1998). Projected multivariate linear models for directional data. Journal of the American Statistical Association, 93(443): 1068–1077.

Tsagris M. and Alzeley O. (2025). Circular and spherical projected Cauchy distributions: A Novel Framework for Circular and Directional Data Modelling. Australian & New Zealand Journal of Statistics, 67(1): 77–103. https://arxiv.org/pdf/2302.02468.pdf

Purkayastha S. (1991). A Rotationally Symmetric Directional Distribution: Obtained through Max- imum Likelihood Characterization. The Indian Journal of Statistics, Series A, 53(1): 70–83.

See Also

circ.reg

Examples

y <- rcirc(100, mu = 3, kappa = 2, rads = TRUE, type = "vm")
x <-  matrix(rnorm(100 * 10), ncol = 10)
circ.regs(y, x, rads = TRUE, type = "vm")

Circular histogram

Description

Histogram of circular data.

Usage

circplot(u, mu = NULL, rads = TRUE, col = 3, lwd = 2)

Arguments

u

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

mu

The estimated circular mean or a circular location estimate. If this is not available the circular mean is caclulated internally.

rads

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

col

The color of the arrow pointing the mean direction.

lwd

The thickness of the above arrow of the circular mean.

Value

A circular histogram.

Author(s)

Michail Tsagris.

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

See Also

circ.mle

Examples

u <- rnorm(100, rnorm(3, 0.2) )
circplot(u, 3)

Column-wise MLE of some circular distributions

Description

Column-wise MLE of some circular distributions.

Usage

colcirc.mle(u, rads = TRUE, type = "vm", tol = 1e-07, maxiters = 100, parallel = FALSE)

Arguments

u

A numerical matrix with the circular data.

rads

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

type

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

tol

The tolerance level to stop the iterative process of finding the MLEs.

maxiters

The maximum number of iterations to implement. This is for the "spml" only.

parallel

Should the computations take place in parallel? This is for the "spml" only.

Details

The function performs MLE of circular distributions for each column of a matrix.

Value

A matrix with two, columns. The first one contains the parameters of the distribution and the second columns contains the log-likelihood values.

Author(s)

Michail Tsagris.

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

References

Mardia K. V. and Jupp P. E. (2000). Directional statistics. Chicester: John Wiley & Sons.

Sra S. (2012). A short note on parameter approximation for von Mises-Fisher distributions: and a fast implementation of I_s(x). Computational Statistics, 27(1): 177–190.

Presnell Brett, Morrison Scott P. and Littell Ramon C. (1998). Projected multivariate linear models for directional data. Journal of the American Statistical Association, 93(443): 1068–1077.

Tsagris M. and Alzeley O. (2025). Circular and spherical projected Cauchy distributions: A Novel Framework for Circular and Directional Data Modelling. Australian & New Zealand Journal of Statistics, 67(1): 77–103. https://arxiv.org/pdf/2302.02468.pdf

Alzeley O. and Tsagris M. (2026). On the generalized circular projected Cauchy distribution. Mathematics, 14(11): 1934. https://www.mdpi.com/2227-7390/14/11/1934

Purkayastha S. (1991). A Rotationally Symmetric Directional Distribution: Obtained through Max- imum Likelihood Characterization. The Indian Journal of Statistics, Series A, 53(1): 70–83.

Cabrera J. and Watson G. S. (1990). On a spherical median related distribution. Communications in Statistics-Theory and Methods, 19(6): 1973–1986

See Also

circ.mle

Examples

u <- matrix( circda::rcirc(200 * 10, mu = 3, kappa = 5), ncol = 10 )
res <- colcirc.mle(u)

Density values for circular distributions

Description

Density values for circular distributions.

Usage

dcirc(u, rads = TRUE, mu, kappa, rho, type = "vm", logden = FALSE)

Arguments

u

A vector with the values at which the density is to be computed.

rads

The data are expressed in rads (TRUE) or angles (FALSE)?

mu

A vector with the circular mean (in radians).

kappa

A vector with the concentration parameter.

rho

A vector with the \rho parameter of the GCPC distribution.

type

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

logden

If you want the log of the density set this equal to TRUE.

Details

The function computes the density of a given circular distribution at the given points.

Value

A vector with the density values of the circular distribution computed at the given points.

Author(s)

Michail Tsagris.

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

References

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

rcirc

Examples

u <- rcirc(100, mu = 3, kappa = 2, rads = TRUE, type = "vm")
mod <- circ.mle(u, rads = TRUE, type = "vm")
f <- dcirc(u, rads = TRUE, mu = mod$param[1], kappa = mod$param[2], logden = TRUE)
sum(f)

Cross validation for estimating the classification rate

Description

Cross validation for estimating the classification rate.

Usage

circda.cv(u, ina, rads = TRUE, folds = NULL, nfolds = 10, stratified = FALSE,
          type = c("vm", "cp", "pn", "gcpc", "cipc"), seed = NULL)

Arguments

u

A numerical vector with the data (expressed in radians, or angles).

ina

A variable indicating the groupings.

rads

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

folds

Do you already have a list with the folds? If not, leave this NULL.

nfolds

How many folds to create?

stratified

Should the folds be created in a stratified way? i.e. keeping the distribution of the groups similar through all folds?

seed

If seed is TRUE, the results will always be the same.

type

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

Details

Cross-validation for the estimation of the performance of a classifier.

Value

A vector with 5 numbers, one for each distribution, containing the percentage of correct classification. If you chose less distributions to test, the elements of the non-chosen distributions will contain NAs.

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.

Tsagris M. and Alenazi A. (2019). Comparison of discriminant analysis methods on the sphere. Communications in Statistics: Case Studies, Data Analysis and Applications, 5(4), 467–491.

Mardia K. V. and Jupp, P. E. (2000). Directional statistics. Chicester: John Wiley & Sons.

Morris J. E. and Laycock P. J. (1974). Discriminant analysis of directional data. Biometrika, 61(2): 335–341.

See Also

circ.da

Examples

u1 <- rnorm(50, 3, 0.5)
u2 <- rnorm(50, 3, 0.5)
u <- c(u1, u2)
ina <- rep(1:2, each = 50)
circda.cv(u, ina)

Density values for mixtures of circular distributions

Description

Density values for mixtures of circular distributions.

Usage

dmixcirc(u, rads = TRUE, probs, mu, kappa, rho, type = "vm", logden = FALSE)

Arguments

u

A vector with the values at which the density is to be computed.

rads

The data that to be generated will be expressed in rads (TRUE) or angles (FALSE)?

probs

A vector with the mixing probability of each group.

mu

A vector with the circular mean (in radians) of each group.

kappa

A vector with the concentration parameter of each group.

rho

A vector with the \rho parameter of the GCPC distribution.

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.

logden

If you want the log of the density set this equal to TRUE.

Details

The function computes the density of a mixture of circular distributions at the given points.

Value

A vector with the density values of a mixture of circular distributions computed at the given points.

Author(s)

Michail Tsagris.

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

References

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

mixcirc.mle

Examples

u1 <- rnorm(100)
u2 <- rnorm(100, 1, 0.2)
u <- c(u1, u2)
mod <- mixcirc.mle(u, type = "vm")
f <- dmixcirc(u, rads = TRUE, probs = mod$param[, 1], mu = mod$param[, 2], kappa = mod$param[, 3])
hist(f)

Circular histogram

Description

Histogram of circular data.

Usage

mix.circplot(u, ina, mu, rads = TRUE, lwd = 2)

Arguments

u

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

ina

A numeric vector indicating the groups of the data.

mu

The estimated circular mean or a circular location estimate. If this is not available the circular mean is caclulated internally.

rads

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

lwd

The thickness of the above arrow of the circular means.

Value

A circular histogram ith different colours for each group and each circular mean.

Author(s)

Michail Tsagris.

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

See Also

circplot

Examples

u <- c( rnorm(50, 1, 0.3 ), rnorm(50, 2, 0.5 ) )
ina <- rep(1:2, each = 50)
mix.circplot(u, ina = ina, mu = c(1, 3) )

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

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")

Random value generation from circular distributions

Description

Random value generation from circular distributions.

Usage

rcirc(n, rads = TRUE, mu, kappa, rho, type = "vm")

Arguments

n

The sample size.

rads

The data that to be generated will be expressed in rads (TRUE) or angles (FALSE)?

mu

A vector with the circular mean or location parameter (in radians).

kappa

A vector with the concentration parameter.

rho

A vector with the \rho parameter of the GCPC distribution.

type

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

Details

The function simulates random values simulation from a given circular distribution.

Value

A vector with the simulated data.

Author(s)

Michail Tsagris.

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

References

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

circ.mle, rmixcirc

Examples

u <- rcirc(100, mu = 3, kappa = 2, rads = TRUE, type = "vm")
circ.mle(u, rads = TRUE, type = "vm")

Random value generation from mixtures of circular distributions

Description

Random value generation from mixtures of circular distributions.

Usage

rmixcirc(n, rads = TRUE, probs, mu, kappa, rho, type = "vm")

Arguments

n

The sample size.

rads

The data that to be generated will be expressed in rads (TRUE) or angles (FALSE)?

probs

A vector with the mixing probability of each group.

mu

A vector with the circular mean or location parameter (in radians) of each group.

kappa

A vector with the concentration parameter of each group.

rho

A vector with the \rho parameter of the GCPC distribution.

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.

Details

The function simulates random values simulation from a given mixture of circular distributions.

Value

A list including:

id

An indicator of the group of each simulated vector.

u

A vector with the simulated data.

Author(s)

Michail Tsagris.

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

References

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

mixcirc.mle

Examples

u1 <- rnorm(100)
u2 <- rnorm(100, 1, 0.5)
u <- c(u1, u2)
mod <- mixcirc.mle(u, type = "vm")
y <- rmixcirc(500, rads = TRUE, probs = mod$param[, 1], mu = mod$param[, 2], kappa = mod$param[, 3])
hist(y$u)