AMFA.inc {autoMFA} | R Documentation |

## Incremental Automated Mixtures of Factor Analyzers

### Description

An alternative implementation of AMFA algorithm (Wang and Lin 2020). The number of factors, *q*, is estimated during the fitting process of each MFA model.
Instead of employing a grid search over *g* like the `AMFA`

method, this method starts with a *1* component MFA model and splits components according to their multivariate kurtosis. This uses the same approach as `amofa`

(Kaya and Salah 2015).
Once a component has been selected for splitting, the new components are initialised in the same manner as `vbmfa`

(Ghahramani and Beal 2000).
It keeps trying to split components until all components have had `numTries`

splits attempted with no decrease in BIC, after which the current model is returned.

### Usage

```
AMFA.inc(
Y,
numTries = 2,
eta = 0.005,
itmax = 500,
tol = 1e-05,
conv_measure = "diff",
nkmeans = 1,
nrandom = 1,
varimax = FALSE
)
```

### Arguments

`Y` |
An |

`numTries` |
The number of attempts that should be made to split each component. |

`eta` |
The smallest possible entry in any of the error matrices |

`itmax` |
The maximum number of ECM iterations allowed for the estimation of each MFA model. |

`tol` |
The ECM algorithm terminates if the measure of convergence falls below this value. |

`conv_measure` |
The convergence criterion of the ECM algorithm. The default |

`nkmeans` |
The number of times the |

`nrandom` |
The number of randomly initialised (single component) starting models. |

`varimax` |
Boolean indicating whether the output factor loading matrices should be constrained using varimax rotation or not. |

### Value

A list containing the following elements:

`model`

: A list specifying the final MFA model. This contains:`B`

: A*p*by*p*by*q*array containing the factor loading matrices for each component.`D`

: A*p*by*p*by*g*array of error variance matrices.`mu`

: A*p*by*g*array containing the mean of each cluster.`pivec`

: A 1 by*g*vector containing the mixing proportions for each FA in the mixture.`numFactors`

: A 1 by*g*vector containing the number of factors for each FA.

`clustering`

: A list specifying the clustering produced by the final model. This contains:`responsibilities`

: A*n*by*g*matrix containing the probability that each point belongs to each FA in the mixture.`allocations`

: A*n*by 1 matrix containing which FA in the mixture each point is assigned to based on the responsibilities.

`diagnostics`

: A list containing various pieces of information related to the fitting process of the algorithm. This contains:`bic`

: The BIC of the final model.`logL`

: The log-likelihood of the final model.`totalTime`

: The total time taken to fit the final model.

### References

Wang W, Lin T (2020).
“Automated learning of mixtures of factor analysis models with missing information.”
*TEST*.
ISSN 1133-0686.

Kaya H, Salah AA (2015).
“Adaptive Mixtures of Factor Analyzers.”
*arXiv preprint arXiv:1507.02801*.

Ghahramani Z, Beal MJ (2000).
“Variational inference for Bayesian Mixtures of Factor Analysers.”
In *Advances in neural information processing systems*, 449–455.

Zhao J, Yu PLH (2008).
“Fast ML Estimation for the Mixture of Factor Analyzers via an ECM Algorithm.”
*IEEE Transactions on Neural Networks*, **19**(11), 1956-1961.
ISSN 1045-9227.

### See Also

### Examples

```
RNGversion('4.0.3'); set.seed(3)
MFA.fit <- AMFA.inc(autoMFA::MFA_testdata, itmax = 1, numTries = 0)
```

*autoMFA*version 1.0.0 Index]