Driver for Mixtures of Factor Analyzers
This driver for flexmix
implements estimation of mixtures of
factor analyzers using ML estimation of factor analysis implemented in
factanal
in each M-step.
FLXMCfactanal(formula = . ~ ., factors = 1, ...)
formula |
A formula which is interpreted relative to the formula
specified in the call to |
factors |
Integer specifying the number of factors in each component. |
... |
Passed to |
FLXMCfactanal
returns an object of class FLXM
.
This does not implement the AECM framework presented in McLachlan and Peel (2000, p.245), but uses the available functionality in R for ML estimation of factor analyzers. The implementation therefore is only experimental and has not been well tested.
Please note that in general a good initialization is crucial for the EM algorithm to converge to a suitable solution for this model class.
Bettina Gruen
G. McLachlan and D. Peel. Finite Mixture Models, 2000. John Wiley and Sons Inc.
## Reproduce (partly) Table 8.1. p.255 (McLachlan and Peel, 2000) if (require("gclus")) { data("wine", package = "gclus") wine_data <- as.matrix(wine[,-1]) set.seed(123) wine_fl_diag <- initFlexmix(wine_data ~ 1, k = 3, nrep = 10, model = FLXMCmvnorm(diagonal = TRUE)) wine_fl_fact <- lapply(1:4, function(q) flexmix(wine_data ~ 1, model = FLXMCfactanal(factors = q, nstart = 3), cluster = posterior(wine_fl_diag))) sapply(wine_fl_fact, logLik) ## FULL set.seed(123) wine_full <- initFlexmix(wine_data ~ 1, k = 3, nrep = 10, model = FLXMCmvnorm(diagonal = FALSE)) logLik(wine_full) ## TRUE wine_true <- flexmix(wine_data ~ 1, cluster = wine$Class, model = FLXMCmvnorm(diagonal = FALSE)) logLik(wine_true) }
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.