EMsinvMmix {ClusTorus} | R Documentation |
Fitting mixtures of bivariate von Mises distribution
Description
EMsinvMmix
returns fitted parameters of J-mixture of
bivariate sine von Mises distributions.
Usage
EMsinvMmix(
data,
J = 4,
parammat = EMsinvMmix.init(data, J),
THRESHOLD = 1e-10,
maxiter = 100,
type = c("circular", "axis-aligned", "general"),
kmax = 500,
verbose = TRUE
)
Arguments
data |
n x 2 matrix of toroidal data on |
J |
number of components of mixture density |
parammat |
6 x J parameter data with the following components:
|
THRESHOLD |
number of threshold for difference between updating and updated parameters. |
maxiter |
the maximal number of iteration. |
type |
a string one of "circular", "axis-aligned", "general", and "Bayesian" which determines the fitting method. |
kmax |
the maximal number of kappa. If estimated kappa is
larger than |
verbose |
boolean index, which indicates whether display additional details as to what the algorithm is doing or how many loops are done. |
Details
This algorithm is based on ECME algorithm. That is,
constructed with E - step and M - step and M - step
maximizes the parameters with given type
.
If type == "circular"
, then the mixture density is
just a product of two independent von Mises.
If type == "axis-aligned"
, then the mixture density is
the special case of type == "circular"
: only need to
take care of the common concentration parameter.
Iftype == "general"
, then the fitting the mixture
density is more complicated than before, check the detail of
the reference article.
Value
returns approximated parameters for bivariate normal
distribution with list
:
list$Sigmainv[j]
: approximated covariance matrix for
j-th bivariate normal distribution, approximation of the j-th von Mises.
list$c[j]
: approximated |2\pi\Sigma|^{-1}
for
j-th bivariate normal distribution, approximation of the j-th von Mises.
References
Jung, S., Park, K., & Kim, B. (2021). Clustering on the torus by conformal prediction. The Annals of Applied Statistics, 15(4), 1583-1603.
Examples
data <- ILE[1:200, 1:2]
EMsinvMmix(data, J = 3,
THRESHOLD = 1e-10, maxiter = 200,
type = "general", kmax = 500, verbose = FALSE)