# Detecting outliers in circular data?

I've a day of the year data about number of event occurence in different sites:

A day of the year is circular data. I know that a usual detecting of outliers, for example by boxplot is no use here:

How can I detect outliers in this kind of situations?

• Let's start from the output of the boxplot. Can you explain why you don't like it? – user603 Jul 28 '14 at 16:33
• The number is average day in the year of event occurence. Because of that - for example - occurence of the event in 350 day of the year is earlier than 10 day of the year. – Jot eN Jul 28 '14 at 17:10
• Shouldn't you be using a boxplot of the #occurrences? – user603 Jul 28 '14 at 17:15
• No, number of the occurrences is not the case here. – Jot eN Jul 28 '14 at 17:29
• Every event occurs only once a year (in most cases), although It can happened in January and December of the same year. – Jot eN Jul 29 '14 at 17:33

I am battling similar problems at the moment and found some literature that help you.

Abuzaid, Mohamed, Hussin have designed and proposed circular boxplots, see:

Boxplot for circular variables (2012), doi 10.1007/s00180-011-0261-5 http://dl.acm.org/citation.cfm?id=2347773

Outlier labeling via circular boxplot http://eprints.um.edu.my/10365/1/Outlier_labeling_via_circular_boxplot.pdf

There is also an R package that seems to include this: OmicCircos: A Simple-to-Use R Package for the Circular Visualization of Multidimensional Omics Data http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3921174/

One way to go about this would be to calculate the circular dispersion as in this answer. If you set the constant $c$ fairly high, ie. 2 or 3, you may view all observations outside the interval

$\left[\hat\mu - c \hat\delta, \hat\mu + c \hat\delta \right]$

as outliers. In that answer, you may also find some code to visualize this.