clemm_em: EM algorithm for CLEMM

Description Usage Arguments Value Examples

Description

EM algorithm for CLEMM estimation

Usage

1
clemm_em(da, K, u, iter, stopping=1e-7, opts=NULL, init, typ="G", add_eye="False")

Arguments

da

Data for clustering

K

Selected number of clusters

u

Selected number of envelope dimension

iter

Maximum iteration for EM algorithm

stopping

Stopping criterion

opts

Parameters for manifold optimization

init

Initial values for EM

typ

CLEMM Type, "G": General CLEMM; "S": CLEMM-Shared

add_eye

Add 0.01*I_r to prevent S_k being too singular

iteration

Number of iterations

Value

ll_seq

Observed Log-likelihood sequence

a

Estimation of mixing weights

muEst

Estimation of clusters centers

SigmaEst

Estimation of clusters covariance

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
set.seed(999)
K <- 3;r <- 15; u<- 1;N <- 1000;md=1
da <- data_generation(r, u, N, K, md)
pi0 <- c(0.3, 0.2, 0.5)
idx <- sample(1:K, N, replace = TRUE, prob = pi0)
dat <- matrix(NA, N, r)
for (j in 1:K) {
    if(md <= 3){
      x_tmp <- rmvnorm(sum(idx==j), mean = da$mu[, j], sigma = da$Sigma[, , j])
    }else{ x_tmp <- rmvnorm(sum(idx==j), mean = da$mu[, j], sigma = da$Sigma)}
    dat[idx==j, ] <- x_tmp
}

opts <- c()
opts$record <- 0
opts$mxitr <- 2000
opts$xtol <- 1e-10
opts$gtol <- 1e-10
opts$ftol <- 1e-10

init=list()
init$centers = da$mu
init$wt = pi0
init$cov = da$Sigma

res_clemm = clemm_em(dat, K, u, iter=800, opts=opts, init=init)

kusakehan/CLEMM documentation built on May 24, 2019, 2:46 p.m.