Skip to contents

Each class is a Gaussian mixture sum_r pi_kr phi(x; mu_kr, Sigma) with a covariance common to all subclasses; EM alternates within-class subclass responsibilities and a weighted LDA M-step, and Pr(G = k | x) is proportional to Pi_k times the class mixture density (ESL eqs 12.59-12.61).

Usage

morie_esl_mda(
  X,
  g,
  subclasses = 2,
  weights = NULL,
  query = NULL,
  max_iter = 1000,
  tol = 1e-12
)

Arguments

X

Predictors, N by p.

g

Class labels.

subclasses

Subclasses per class (one value or one per class).

weights

Optional starting responsibilities: a list, one n_k by R_k matrix per class (as mda.start); by default each class is split into contiguous blocks after sorting on its first column.

query

Points to classify (default X).

max_iter, tol

EM controls.

Value

Named list: posterior, prediction, means, mixing, covariance, loglik, iterations, converged, classes.

References

Hastie, T. & Tibshirani, R. (1996). JRSS B 58, 155-176.

Examples

i <- 1:90
X <- cbind(sin(i) + ((i %% 3) == 0) * 1.5, cos(2 * i) + ((i %% 3) == 1) * 1.2)
morie_esl_mda(X, i %% 3, 2)$loglik
#> [1] -157.7736