I have a "distance matrix". let's say a 6x6 distance matrix, each cell is the Mahalanobis distance of two "clusters" (or sets/groups of things in a multidimensional space),

I want to "count" the number of actual clusters (significantly separated clusters) using this distance matrix,

My question is if I only know the Mahalanobis distance between two clusters can I say anything about how well they are separated?

More information: these distances come from a Gaussian Mixture model fitting 6 Gaussians to a dataset that can have 1-4 actual clusters in it.

| cite | improve this question | | | | |
  • 2
    $\begingroup$ The key question to me is: when is separation meaningful? IMHO, separation can help finding meaningful clusters, but if you only optimize for separation, it by no means the results are meaningful; they are just some mathematical optimum that may be completely detached from reality. Now if you only have Mahalanobis distances, it's hard to say how well clusters are separated and how much they overlap, as this distance value is center to center, and not cluster border to cluster border. $\endgroup$ – Has QUIT--Anony-Mousse Jan 11 '13 at 21:40

Couldn't you do a discriminant function analysis of the new groups? and with that you should get a classification rate table, and the % correctly classified via cross-validation should give you an idea of how well the groups are separated.

| cite | improve this answer | | | | |
  • $\begingroup$ Thanks for your answer, I don't understand what you mean by "new groups", And by what I read about discriminant function analysis (en.wikipedia.org/wiki/Discriminant_function_analysis) I can't apply it to a distance matrix. Would you please, elaborate? $\endgroup$ – Ali Jan 11 '13 at 15:53
  • 1
    $\begingroup$ so you did a finite mixture model, and that found a mixture of several Gaussian densities, so each observation should now belong to one of these distributions identified in the finite mixture model. What I have done before is make a new variable in the data which is the group each data point is assigned to in the mixture analysis and treat it as a known group, then use that as the input into a discriminant function. A discriminant function works off a distance matrix, you classify each observation to a group if its distance to a particular group mean vector is the minimum of all mean vectors $\endgroup$ – Corey Sparks Jan 11 '13 at 16:00
  • $\begingroup$ Thanks again for clarification, 1- Isn't this kind of circular? assign cluster membership, then use this membership to evaluate the goodness of assignment? 2- Any package/tutorial recommendations to do the DFA? 3- let me go back one step, the reason I use six Gaussians, when I know there are a maximum of 4 clusters in the data, is that the data is not normally distributed (or each cluster does not have normal distribution) this is why I need more than one Gaussian to "cover" one big not-normal cluster and I still will have Gaussians left to cover small clusters. Does this make any sense? $\endgroup$ – Ali Jan 11 '13 at 16:29
  • $\begingroup$ oh, it's absolutely circular, but if you're wanting to see how well the clusters are distinguished from one another, then DFA or something like it is the way to go. The DFA typically will have a test statistics with it, like a Wilk's lambda or Pillai trace to test for differentiation between the groups, but if you have lots of observations, this can be a little conservative, I like the crossvalidation classification rate. This site may get you started: statmethods.net/advstats/discriminant.html But this is assuming you're using R, I know how to do it in sas too, using proc discrim $\endgroup$ – Corey Sparks Jan 11 '13 at 16:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.