I've just started using R a couple of weeks ago and I'm new to programming.

I'm doing some EM algorithm clustering using the Mclust package provided in R. This seems to be exactly what I need, however the number of clusters that I get when I run it is more than I expect. I assume that my problem can be solved using prior control, but whenever I use the script

mclustBIC(mydata, prior = priorControl())

I get the following error message:

Error in chol.default(priorParams$scale) :
the leading minor of order 3 is not positive definite

G is an integer vector specifying the numbers of mixture components (clusters) for which the BIC is to be calculated. The default is G=1:9, unless the argument x is specified, in which case the default is taken from the values associated with x.

Actually I wanted the code to run G from 1 to 9, and give me the optimal G from the highest BIC value.

If I execute the code without prior control, it runs fine without any errors, but the output is a large number of clusters, higher than expected. I was hoping that prior control can regularize my data, and the output will be a more accurate and lower number of clusters.