Probability Density Function using ksdensity is not normalized
9 次查看(过去 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!