| fitmssg {mixSSG} | R Documentation | 
Computing the maximum likelihood estimator for the mixtures of skewed sub-Gaussian stable distributions using the EM algorithm.
Description
Each d-dimensional skewed sub-Gaussian stable (SSG) random vector \bf{Y}, admits the representation given by Teimouri (2022):
{\bf{Y}} \mathop=\limits^d {\boldsymbol{\mu}}+\sqrt{P}{\boldsymbol{\lambda}}\vert{Z}_0\vert + \sqrt{P}{\Sigma}^{\frac{1}{2}}{\bf{Z}}_1,
where \boldsymbol{\mu} (location vector in {{{R}}}^{d}, \boldsymbol{\lambda} (skewness vector in {{{R}}}^{d}), \Sigma (positive definite symmetric dispersion matrix), and 0<\alpha \leq 2 (tail thickness) are model parameters. Furthermore, P is a positive stable random variable, {Z}_0\sim N({0},1), and \bf{Z}_1\sim N_{d}\bigl({\bf{0}}, \Sigma\bigr). We note that Z, Z_0, and \boldsymbol{Z}_1 are mutually independent.
Usage
fitmssg(Y, K, eps = 0.15, initial = "FALSE", method = "moment", starts = starts)Arguments
| Y | an  | 
| K | number of component. | 
| eps | threshold value for stopping EM algorithm. It is 0.15 by default. The algorithm can be implemented faster if  | 
| initial | logical statement. If  | 
| method | either  | 
| starts | a list of initial values if  | 
Value
a list of estimated parameters corresponding to K clusters, predicted labels for clusters, the log-likelihood value across iterations, the Bayesian information criterion (BIC), and the Akaike information criterion (AIC).
Author(s)
Mahdi Teimouri
References
M. Teimouri, 2022. Finite mixture of skewed sub-Gaussian stable distributions, arxiv.org/abs/2205.14067.
M. Teimouri, S. Rezakhah, and A. Mohammadpour, 2018. Parameter estimation using the EM algorithm for symmetric stable random variables and sub-Gaussian random vectors, Journal of Statistical Theory and Applications, 17(3), 439-41.
J. A. Hartigan, M. A. Wong, 1979. Algorithm as 136: A k-means clustering algorithm, Journal of the Royal Statistical Society. Series c (Applied Statistics), 28, 100-108.
Examples
data(bankruptcy)
out1<-fitmssg(bankruptcy[,2:3], K=2, eps = 0.15, initial="FALSE", method="moment", starts=starts)
n1 <- 100
n2 <- 50
omega1 <- n1/(n1 + n2)
omega2 <- n2/(n1 + n2)
alpha1 <- 1.6
alpha2 <- 1.6
mu1 <- c(-1, -1)
mu2 <- c(6, 6)
sigma1 <- matrix( c(2, 0.20, 0.20, 0.5), 2, 2 )
sigma2 <- matrix( c(0.4, 0.10, 0.10, 0.2  ), 2, 2 )
lambda1 <- c(5, 5)
lambda2 <- c(-5, -5)
Sigma <- array( NA, c(2, 2, 2) )
Sigma[, , 1] <- sigma1
Sigma[, , 2] <- sigma2
starts<-list( c(omega1,omega2), c(alpha1,alpha2), rbind(mu1,mu2), Sigma, rbind(lambda1,lambda2) )
Y <- rbind( rssg(n1 , alpha1, mu1, sigma1, lambda1),  rssg(n2, alpha2, mu2, sigma2, lambda2) )
out2<-fitmssg(Y, K=2, eps=0.15, initial="TRUE", method="moment", starts=starts)