Probability Density Function using ksdensity is not normalized
15 ビュー (過去 30 日間)
古いコメントを表示
I have a vector "columnA" of N data points. I want to find the PDF. I use:
xi = min(columnA):1e-9:max(columnA);
f = ksdensity(columnA,xi);
plot(xi,f)
But when I use trapz to integrate f:
trapz(f)/length(xi)
the value is too far from 1. Even when increasing the range of xi, I still do not get reasonable value.
回答 (3 件)
VladTheInstaller
2017 年 1 月 15 日
Actually, the output from ksdensity is normalized, but you will have to use numerical integration along the appropriate space. In your case,
trapz(xi,f)
should be close to 1.
0 件のコメント
Image Analyst
2014 年 8 月 21 日
Why not use hist() or histc() to get the histogram? The histogram is essentially the probability density function.
0 件のコメント
Youssef Khmou
2014 年 8 月 21 日
The ksdensity produces a Probability density function, no need to divide by the length of the x vector :
x=randn(200,1);
y=[min(x):0.1:max(x)];
p=ksdensity(x,y);
sum(p)
% plot(y,p)
0 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!