# Separating the populations in a bimodal distribution

I have a data set which displays a bimodal distribution. This was determined by plotting a histogram of the frequency vs number.

I now need to separate the two original populations and therefore find an intersection point of sorts. From the plot it looks like the point might be approx. -1.0 to -0.8.

Is there a straight forward calculation or function that I can use to locate this point more accurately?

• Have you ever heard of finite mixture modeling? You may think of the observed distribution as a mixture of two distributions, and you can make inference about where the "split" occurs within this framework. Apr 21, 2012 at 15:48
• Hi Macro. Thanks for the idea. It sounds like something that would work but in looking it up it seems pretty complex. I'm no stats wizz so really after something simple here, even if it's an approximation.
– Carl
Apr 22, 2012 at 2:56
• Well, you could move the threshold for the "split", and optimize the resulting likelihood. The likelihood may be non-differentiable in the threshold, but it's just a one-dimensional line search so you should be able to use derivative-free methods for the optimization. Apr 25, 2012 at 15:26
• Thanks for the help Marco. I ended up finding a programatic solution (running under Linux) which works quite well, especially for this type of data (i.e. astronomy related). Would it be accepted if I post the details of that as an answer? What's the etiquette?
– Carl
Apr 26, 2012 at 11:30
• If you've found a satisfactory solution, I'd suggest posting it as an answer and accepting your own answer :) Apr 26, 2012 at 12:05

Actually that algorithm sounds like it is using precisely the methodology that Macro was suggesting. The idea is that you have a distribution $$F(x)=pF_{1}(x)+(1-p)F_{2}(x)$$ where $F_1$ and $F_2$ are specified up to a few parameters that are estimated from the data. In your case $F_1$ and $F_2$ are both Gaussian and there would be 5 parameters to estimate from the data, $p, σ_1, σ_2, μ_1$, and $μ_2$ the mixture proportion and the standard deviations and means respectively for the distributions $F_1$ and $F_2$. There is actually no unique separation point since the distributions overlap. But the algorithm probably picks the crossing point for the densities. Since these are Gaussian distributions there will only be one unless one has a very large variance compared to the other. Without knowing the algorithm, I wouldn't know how many of these parameters are estimated. For example both standard deviations could be estimated or they could be assumed equal and only a pooled standard deviation would be estimated. 5 parameters estimated in the first case and 4 in the second. After the parameters of $F_1$ and $F_2$ are estimated you use the distributions specified by the estimates to calculate the crossing point.

• Can you clarify what you mean by "Since these are [Gaussian] distributions there will only be one unless one has a very large variance compared to the other"? Are you speaking of the densities? If you have any two continuous strictly positive densities $f_1$ and $f_2$ with unbounded support, how can you not have at least one intersection point? May 21, 2012 at 17:13
• @cardinal Usually the densities will only cross in one place (where the right hand tail of one meets the left hand tail of the other). But say the one on the right has a very large variance so that the density is very spread out then it can cross at both the right hand tail (dropping below as you move left and then the lefthand tail crossing above. I didn't say that they couldn't intersect. I just meant that the intersection point need not necessarily be the point you want to define as the separation point. May 21, 2012 at 17:49
• If they both terminate without crossing then there is a welldefined separation interval or point. May 21, 2012 at 17:49
• Sorry, Michael. Even though I read it three times at least, my eyes skipped over only each time. May 21, 2012 at 18:02

For anyone else interested, I used Gaussian Mixture Modeling (GMM) algorithm to determine the means of the two populations and separate them.

http://www-personal.umich.edu/~ognedin/gmm/gmm_user_guide.pdf

Gnedin, O. (2010). Quantifying bimodality

• This is an old post - but is it possible to update the link, or add the journal reference? Thanks.
– Scot
May 29, 2021 at 16:57
• @Scot - updated with a new link. It's not in a published journal though but I've provided the author, year, and title incase it goes missing again
– Carl
May 30, 2021 at 12:05
• Thank you so much for updating!
– Scot
May 30, 2021 at 21:30

You can use the Otsu's method, you can think at your histogram as the histogram of the grey values of pixels in an image.

Then, in computer vision and image processing, Otsu's method, named after Nobuyuki Otsu (大津展之 Ōtsu Nobuyuki)1, is used to automatically perform clustering-based image thresholding, or, and that is your case, the reduction of a graylevel image to a binary image.

The algorithm assumes that the image contains two classes of pixels following bi-modal histogram (foreground pixels and background pixels), it then calculates the optimum threshold separating the two classes so that their combined spread (intra-class variance) is minimal, or equivalently (because the sum of pairwise squared distances is constant), so that their inter-class variance is maximal.

1Otsu, Nobuyuki. "A threshold selection method from gray-level histograms." IEEE transactions on systems, man, and cybernetics 9.1 (1979): 62-66.

You can use the check to "normality" (there are many packages): The algorithm is simple: split var into bins. count the number of observations and the expected, take the difference, standardize by expected. The bin in which we have the min of standardized res - will contain the desired optimal threshold for dichotomisation! (2 bins with max stdRes= modes of yours 2 distributions ;-). Don't fogot play with (try) differrent bin numbers! Next you try to clarify within this interval via model selection (KLIC/CAIC/BIC/etc).