I am performing a cluster analysis in SAS and some of the variables that I am trying to cluster contain outliers. I've tried to transform the data (log and/or standardize them) but didn't quite work out.

So, for example, let's say I came down to 9 clusters, then one or two clusters will have just one value in them. Deleting outliers is not optional due to the nature of my work.

I want to assign a set of values into groups so that values in the same clusters are more similar (in some sense or another) to each other than to those in other clusters however, if I decrease the number of clusters and basically merge the outliers group with other groups I'm afraid that the merged group won't be homogeneous.

Thus, to sum up my questions, how can I deal with outliers for cluster analysis?

Thanks in advance!


2 Answers 2


Which clustering algorithm did you try?

k-means is known to not work very well with noise. Hierarchical clustering is very likely to produce single-element clusters. That's outliers, nothing wrong with that. Or you might try DBSCAN, in which the "N" stands for "Noise". That algorithm actually is designed to be able to handle some noise objects. You can look up details on Wikipedia.

  • $\begingroup$ Thanks for great info. I was actually implementing hierarchical and distribution-based (EM) clustering methods. I will give it a shot with density-based clustering. $\endgroup$
    – Ken
    Apr 18, 2012 at 15:24
  • $\begingroup$ EM sometimes works well in presence of noise, when you add an additional cluster. It then often converges to having one cluster containing all the noise points. It doesn't mark that cluster as noise though. $\endgroup$ Apr 18, 2012 at 16:06

"Deleting outliers is not optional due to the nature of my work."

Did you mean "Deleting outliers is not an option, due to the nature of my work."?

If you can delete outliers, you can do so before clustering, or you can delete clusters with too few (presumably outlier) members, or you can use a clustering algorithm that doesn't force points into clusters -- such as DBSCAN, recommended in Anony-Mousse's answer. It all depends on how you know something's an outlier, and thus at what point in this process you're declaring it an outlier.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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