# Gaussian Mixture Model based clustering for unimodal, time series data

### Problem:

I have a simulated data set which is comprised of multiple sub-populations (or samples), each sub-population is drawn from, and described by, its own Gaussian distribution (although by chance, sub-populations can have identical distribution properties). Below, we can see this data set shown as a function of measurement index (or time): Because this dataset is simulated, I know where the sub-population "boundaries are", and I have marked them on the plot (red lines indicate the sub-population mean, while blue is a $$\mu\pm1\sigma$$ boundary).

If one looks at the PDF of the entire data set, then we see something that resembles a Gaussian Mixture Distribution -- this may not be a Gaussian Mixture Distribution in the conventional sense, as the "weights" are defined by the number of points in a given sub-population, rather than the probability of an observation belonging to a component distribution of the mixture.

### Objective:

What I want to achieve, is the ability to split this dataset back into its component sub-populations. I think some kind of GMM based clustering may be the way to do this. I've tried using the R library Mclust, but had only limited success.

If I import the data as univariate, then I get some strange classification results (for G = 2 and G = 16): As you can see, nothing looks very Gaussian.

If I keep the indexing (or temporal information), and import as $$x-y$$ data, then I get some more reasonable classification, but not in the way I would expect for this kind of data: Here we can see that the clusters are being found as ellipsoids -- a consequence of the model choice and constraints. In my case I would expect/want a "rectangular" profile

I don't expect to be able to perfectly reconstruct the sub-populations, especially if they have very similar distribution properties, but I would like to find a method of decomposing the data set in an unbiased way -- i.e. remove the bias of my choice of decomposition if I were to do it manually.

If anyone can suggest a way I can achieve this, either with another R library, or another technique -- maybe my GMM approach is a dead end.

My fundamental objective is to split the data set into its constituent component sub-populations in an unbiased way.

• Have you considered changpoint analysis where you attempt to estimate points in time when the mean and/or variance of the time series changes? – Ryan Volpi Jan 25 at 15:20
• I haven't heard of this kind of analysis! Would you be willing to expand a bit on it? I'm open to other alternatives and I'm not wedded to the GMM, it just seemed the most intuitive. – Q.P. Jan 25 at 15:22
• @RyanVolpi I just wanted to say thanks, as I did some research into this -- it's exactly what I want! – Q.P. Jan 25 at 21:09