This is a companion to Matlab's Statistics toolbox ksdensity function and Philipp Berens' CircStat toolbox.
The difference with Matlab's ksdensity function is that this function is adaped to circular data, such as wind orientation. Using Matlab's function will give biased values at the extremities of the pdf for circular data.
The kernel used in this function is a normal distribution with an automatically computed optimal standard deviation as presented in:
- Silverman B. W. (1998), Density Estimation for Statistics and Data Analysis, Chapman & Hall / CRC, Boca Raton (FL), 47-8.
- Bowman Adrian W. & Adelchi Azzalini (1997) - Applied Smoothing Techniques for Data Analysis, Oxford University Press, 31.
- Wand M. P. & M. C. Jones (1995) - Kernel Smoothing, Chapman & Hall, London, 60-3.
Vlad Atanasiu (2020). Kernel smoothing density estimate for circular data (https://www.mathworks.com/matlabcentral/fileexchange/32614-kernel-smoothing-density-estimate-for-circular-data), MATLAB Central File Exchange. Retrieved .
Thanks Dylan for your comment! The input to the function is indeed in angles, but the data is converted to radians before calling the circular statistic functions. As for your second comment, could you please provide an example of use case and data for which you would like to have the requested functionality? Best, Vlad
A couple of issues with this function: firstly, the circular stats toolbox functions called by this function assume radians as input, while this function uses degrees in its examples.
Secondly, this function requires that the vector of angles over which to calculate the kernel density estimate is identical to the domain of periodicity. If this condition is not satisfied, the function fails badly. This requirement should at the very least be mentioned in the help, and ideally removed entirely.
Published as Matlab toolbox (.mltbx file).
Added circ_irq supplemental file.
Inspired by: Circular Statistics Toolbox (Directional Statistics)