MATLAB: Why the kernel density function never touches x axes

kernel densitystatistics

Hello:
I want plot kernel density function with the attached test data. I have used foll. code:
Xgrid1 = linspace(min(X),max(X),1000);
pdfEst_1 = ksdensity(X,Xgrid1,'function','pdf');
plot(Xgrid1,pdfEst_1,'Color','B','linew',1.8);
However, the generated density function never touches the x-axes & always moves up, without any closed bounds. Any possible ways that the generated PDFs touches x – axes?

Best Answer

Now that we've clarified some things, let me capture my reply in an actual answer.
The issue is that you have defined your X range to cover only places where the estimated PDF has support, because you actually have some data there. If, instead, you extend the range far enough away from the data, then the estimated PDF will go to zero (or at least approach zero).
For example:
extendRange = (max(X)-min(X))/2;
Xgrid1 = linspace(min(X) - extendRange,max(X) + extendRange,1000);
pdfEst_1 = ksdensity(X,Xgrid1,'function','pdf');
figure
plot(Xgrid1,pdfEst_1,'Color','B','linew',1.8);
Exactly how far out you need to go will depend on the kernel you choose for ksdensity.