Speeding up the ksdensity function

6 views (last 30 days)
Hi!
I need to calculate a kernal density estimate on a [81000*1] vector of random variables. I need the density estimates on the exact data points themselves. Hence my support is also the same [81000*1] vector of input random variables. When I use the ksdensiy function as,
[f,~] = ksdensity(data,data);
% length(data)=81000
it seems to take forever to get the density estimate. Is there a faster method I could use for this?
Thanks.

Accepted Answer

the cyclist
the cyclist on 13 Jun 2016
I don't know the algorithmic complexity of the kernel density function, but I know that one needs to do function evaluations at not just the input points, but "nearby" points as well. I can imagine that things blow up fast.
I can imagine it might be faster to use ksdensity at only, say, 1/10 of the points, and then interpolate (using, e.g. interp1) at the points in between. I don't know how much accuracy you would lose, though.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!