I have some circular data (ie, angles in $[0, 2\pi)$), and I need to analyze it in terms of its modes. I hope this is the right place to ask for help solving this.

The main thing I need to be able to distinguish is if the data is uniform, uni-modal or bi-modal, and identify the mode(s) and their respective dispersions (if they exist). The data is histograms of angles rather than raw angle values.

To make matters more complicated, the data might have more than 2 modes. If this is the case, it would suffice to identify the two strongest modes, but the existence of a third mode shouldn't affect the estimate of the second or first modes.

  • $\begingroup$ Hi there! Is this meant to be an automated process i.e. try to find an algorithm to deduce the number of modes? As if thats the case a possibility is, to fit the data with some form of density smoothing method, and then use a derivative approach with suitable interpolation to obtain the number of maximums. This is just an idea..beyond that you could just plot the data (which is a given really, but i thought i lay it out explicitly) $\endgroup$
    – Chinny84
    Commented Feb 5, 2014 at 1:18
  • $\begingroup$ @Chinny84 Yes, I need this to be automated, and ideally fast to compute too as I have hundreds of millions of sets of data to classify. Can you suggest any density smoothing method that could be appropriate here? $\endgroup$ Commented Feb 5, 2014 at 2:32
  • $\begingroup$ There are plenty of functions in python that does both the fitting and derivative. Though I don't think if you have ~$10^{8}$ datasets, that this would be terribly efficient using what i said. What technology are you using? is this real time? or will a batch process be ok? $\endgroup$
    – Chinny84
    Commented Feb 5, 2014 at 10:55


You must log in to answer this question.

Browse other questions tagged .