I am working with mixture models. The common way to determine the number of the mixture components is fitting several mixture models with a different number of mixture components and then select the best fit model using, for example, selection criteria such as AIC, BIC and CAIC. However, this will require some efforts and computational times. My question is, is there a way to determine the number of the mixture components prior to run EM algorithm? Any help, please?
If there was a general fast and easy method to do it, for any given data, people wouldn't bother themselves with criteria such as AIC, BIC as you listed. These are all heuristics. This problem is also prevalent in many clustering algorithms. You're lucky if your data is < 4D so that you can easily plot it. In high dimensional spaces, you can just get an idea by performing MDS which tries to preserve the distances between data points, and visualize afterwards. Note that while this might be helpful in some cases, it can sometimes fail you badly. For a good alternative, you might look at Variational Bayesian GMM, that doesn't need presetting the number of mixtures. It is also computationally cumbersome, but a quite different approach compared to classical ones.