| Type: | Package |
| Title: | Circular Data Analysis |
| Version: | 1.1 |
| Date: | 2026-09-15 |
| Author: | Michail Tsagris [aut, cre] |
| Maintainer: | Michail Tsagris <mtsagris@uoc.gr> |
| Depends: | R (≥ 4.0) |
| Imports: | circular, Directional, glmnet, 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. The standard textbook for such data is the "Directional Statistics" by Mardia, K. V. and Jupp, P. E. (2000). Other references include: Tsagris M. and Alzeley O. (2025). "Circular and spherical projected Cauchy distributions: A Novel Framework for Circular and Directional Data Modeling". Australian & New Zealand Journal of Statistics, 67(1): 77–103. <doi:10.1111/anzs.12434>. Tsagris M., Papastamoulis P. and Kato S. (2025). "Directional data analysis: spherical Cauchy or Poisson kernel-based distribution". Statistics and Computing, 35:51 <doi:10.1007/s11222-025-10583-0>. Alzeley O. and Tsagris (2026). "On the generalized circular projected Cauchy distribution". Mathematics, 14(11): 1934 <doi:10.3390/math14111934>. |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | no |
| Packaged: | 2026-09-14 21:06:06 UTC; mtsag |
| Repository: | CRAN |
| Date/Publication: | 2026-09-15 11:00:47 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.1 |
| Date: | 2026-09-15 |
Maintainers
Michail Tsagris <mtsagris@uoc.gr>.
Author(s)
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.
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 Cauchy) 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
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 Cauchy) 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
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)
Variable selection using the gamma-OMP algorithm
Description
Variable selection using the \gamma-OMP algorithm.
Usage
circ.gomp(y, x, rads = TRUE, type = "vm", xstand = TRUE, thresh = qchisq(0.95, 1),
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 Cauchy) distribution. |
xstand |
Should the values of the predictor variables be standardized prior to the algorithm? |
thresh |
The critical value for the log-likelihood ratio test. This is by default the 95% of the chi-square distribution with 1 degree of freedom. |
tol |
The tolerance value to terminate the Newton-Raphson algorithm. |
maxiters |
The maximum number of iterations allowed in the Newton-Raphson algorithm. |
Details
The function performs variable selection using the \gamma-OMP algorithm (Tsagris et al., 2022).
Value
A list including:
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. |
result |
A matrix with the selected variables and the log-likelihood of the model at each step. |
Author(s)
Michail Tsagris.
R implementation and documentation: Michail Tsagris mtsagris@uoc.gr.
References
Tsagris M., Papadovasilakis Z., Lakiotaki K. and Tsamardinos, I. (2022). The \gamma-OMP Algorithm for
Feature Selection With Application to Gene Expression Data.
IEEE/ACM Transactions on Computational Biology and Bioinformatics, 19(2): 1214–1224.
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.
Presnell B., Morrison S. P. and Littell Ramon C. (1998). Projected multivariate linear models for directional data. Journal of the American Statistical Association, 93(443): 1068–1077.
See Also
Examples
y <- rcirc(500, mu = 3, kappa = 2, rads = TRUE, type = "vm")
x <- matrix( rnorm(500 * 20), ncol = 20)
mod <- circ.gomp(y, x)
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 Cauchy) 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
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", influence = FALSE, 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 Cauchy) distribution. |
influence |
If TRUE, this will compute the influence value of each observation based on the formula of Koh and Liang (2017). |
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
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.
Presnell B., Morrison S. P. and Littell Ramon C. (1998). Projected multivariate linear models for directional data. Journal of the American Statistical Association, 93(443): 1068–1077.
Koh, Pang Wei and Liang, Percy (2017). Understanding Black-Box Predictions via Influence Functions. International Conference on Machine Learning, 1885–1894.
See Also
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 Cauchy) 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
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")
Ridge circular regression
Description
Ridge circular regression.
Usage
circ.ridge(y, x, rads = TRUE, type = "vm", lambda = NULL, nlambda = 100,
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, "pn" is projected normal distribution, "cipc" is CIPC (or wrapped Cauchy) distribution. |
lambda |
A vector with a sequence of the ridge |
nlambda |
The number of |
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 the Newton-Raphson algorithm will perform. |
Details
Ridge regression using the von Mises, the projected normal or the CIPC (or wrapped Cauchy) distribution.
Value
A list including:
runtime |
The runtime of the ridge regression model. |
info |
A matrix with two columns containing the lambda, and the penalized log-likelihood. |
be |
A list with the ridge beta coefficients. |
est |
A list with the ridge estimated compositions. |
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.
Presnell B., Morrison S. P. and Littell Ramon C. (1998). Projected multivariate linear models for directional data. Journal of the American Statistical Association, 93(443): 1068–1077.
See Also
Examples
y <- rcirc(100, mu = 3, kappa = 2, rads = TRUE, type = "vm")
x <- matrix( rnorm(100 * 10), ncol = 10)
circ.ridge(y, x, 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
Examples
u <- rnorm(100, rnorm(3, 0.2) )
circplot(u, 3)
Cross-validation for the ridge circular regression
Description
Cross-validation for the ridge circular regression.
Usage
circridge.cv(y, x, rads = TRUE, type = "vm", lambda = NULL, nlambda = 100, tol = 1e-06,
maxiters = 100, folds = NULL, nfolds = 10, seed = NULL)
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, "pn" is projected normal distribution, "cipc" is CIPC (or wrapped Cauchy) distribution. |
lambda |
A vector with a sequence of the ridge |
nlambda |
The number of |
tol |
The tolerance value to terminate the Fisher scoring algorithm. |
maxiters |
The maximum number of iterations the Fisher scoring algorithm will perform. |
folds |
If you have the list with the folds supply it here. You can also leave it NULL and it will create folds. |
nfolds |
The number of folds to produce. |
seed |
You can specify your own seed number here or leave it NULL. |
Details
K-fold cross-validation for the ridge circular regression models.
Value
A list including:
runtime |
The runtime of the ridge regression model. |
info |
A matrix with two columns containing the lambda and the fit, the |
lambda_opt |
The optimal value of the ridge parameter, |
be |
The coefficients of the ridge circular regression model corresponding to the optimal |
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.
Presnell B., Morrison S. P. and Littell Ramon C. (1998). Projected multivariate linear models for directional data. Journal of the American Statistical Association, 93(443): 1068–1077.
See Also
Examples
y <- rcirc(100, mu = 3, kappa = 2, rads = TRUE, type = "vm")
x <- matrix( rnorm(100 * 10), ncol = 10)
circ.ridge(y, x, type = "vm")
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 Cauchy) 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
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 |
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 Cauchy) 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
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 Cauchy) 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
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 |
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 Cauchy) 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
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
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
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
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 |
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 Cauchy) 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
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 |
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 Cauchy) 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
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)