Ma réponse à cette question est la même que dans une réponse à votre question précédente . Pour une fonction de densité de probabilité, l'intégrale sur l'espace entier est 1 . En divisant par la somme, on obtient pas vous donner la densité correcte. Pour obtenir la bonne densité, vous devez diviser par la surface. Pour illustrer mon propos, essayez l'exemple suivant.
[f, x] = hist(randn(10000, 1), 50); % Create histogram from a normal distribution.
g = 1 / sqrt(2 * pi) * exp(-0.5 * x .^ 2); % pdf of the normal distribution
% METHOD 1: DIVIDE BY SUM
figure(1)
bar(x, f / sum(f)); hold on
plot(x, g, 'r'); hold off
% METHOD 2: DIVIDE BY AREA
figure(2)
bar(x, f / trapz(x, f)); hold on
plot(x, g, 'r'); hold off
Vous pouvez voir par vous-même quelle méthode correspond à la bonne réponse (courbe rouge).
Une autre méthode (plus simple que la méthode 2) pour normaliser l'histogramme consiste à diviser par sum(f * dx)
qui exprime l'intégrale de la fonction de densité de probabilité, c'est-à-dire
% METHOD 3: DIVIDE BY AREA USING sum()
figure(3)
dx = diff(x(1:2))
bar(x, f / sum(f * dx)); hold on
plot(x, g, 'r'); hold off