KSdensity peaks

Hi,
How could I retrieve the peaks for a density estimation and also how to choose the threshold for it?
Thank you, A.

回答(1 个)

the cyclist
the cyclist 2011-3-25
There is a function KSDENSITY that will do kernel density estimation. A good start would be reading the help file:
help ksdensity
which also has a couple examples.
You can get the peaks by using the function MAX on the output. I don't think I can concisely explain how to choose a threshold. Maybe the Wikipedia article on kernel density estimation could get you started there?

4 个评论

Do you know any way to find the data point(xi) corresponding to the peak (s)?
Call
[f,xi] = ksdensity(x);
then
[max_f index_to_max] = max(f);
finds the maxima and
xi(index_to_max)
gives the xi coordinates of the maxima.
Yes. It gives Just one maximum value. If, for a given bandwidth (the 'width' parameter of the ksdensity function)h, there exists multiple peaks,how can we extract the corresponding data points (xi)? Do you have any idea?
If you know how many peaks you are looking for, you could use the sort() function to put the "f" values in order, and find the indices. If you do not know how many peaks you are looking for, then you could use the diff() function to find values that are larger than either of the values next to it.

请先登录,再进行评论。

标签

提问:

2011-3-24

Community Treasure Hunt

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

Start Hunting!

Translated by