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
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 个评论
Devinya Herath
2011-10-5
Do you know any way to find the data point(xi) corresponding to the peak (s)?
the cyclist
2011-10-5
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.
Devinya Herath
2011-10-6
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?
the cyclist
2011-10-6
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.
类别
在 帮助中心 和 File Exchange 中查找有关 Kernel Distribution 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!