KSdensity peaks
Ältere Kommentare anzeigen
Hi,
How could I retrieve the peaks for a density estimation and also how to choose the threshold for it?
Thank you, A.
Antworten (1)
the cyclist
am 25 Mär. 2011
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 Kommentare
Devinya Herath
am 5 Okt. 2011
Do you know any way to find the data point(xi) corresponding to the peak (s)?
the cyclist
am 5 Okt. 2011
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
am 6 Okt. 2011
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
am 6 Okt. 2011
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.
Kategorien
Mehr zu Kernel Distribution finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!