# Driver for Mixtures of Factor Analyzers

### Description

This driver for `flexmix`

implements estimation of mixtures of
factor analyzers using ML estimation of factor analysis implemented in
`factanal`

in each M-step.

### Usage

1 | ```
FLXMCfactanal(formula = . ~ ., factors = 1, ...)
``` |

### Arguments

`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 |

### Value

`FLXMCfactanal`

returns an object of class `FLXM`

.

### Warning

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.

### Author(s)

Bettina Gruen

### References

G. McLachlan and D. Peel. *Finite Mixture Models*, 2000.
John Wiley and Sons Inc.

### See Also

`flexmix`

### Examples

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | ```
## 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)
}
``` |