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
Here's an example showing how prior control works:
treesBIC <- mclustBIC(trees) # default (no prior)
plot(treesBIC, legendArgs = list(x = "bottom", ncol = 2, cex = .75))
treesBICprior <- mclustBIC(trees, prior = priorControl()) # with prior
plot(treesBICprior, legendArgs = list(x = "bottom", ncol = 2, cex = .75))
Hi Aedin,
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.
Thanks, I really appreciate your input.