Mercurial > hg > octave-nkf
changeset 18194:1461b9cfac4e
empirical_pdf.m: Fix calculation when distribution has ties (bug #41008).
empirical_pdf.m: Use histc to calculate relative frequency when the the same
value occurs multiple times in the data.
author | Rik <rik@octave.org> |
---|---|
date | Thu, 02 Jan 2014 13:23:51 -0800 |
parents | d3c6842ef188 |
children | 1b6db9303933 |
files | scripts/statistics/distributions/empirical_pdf.m |
diffstat | 1 files changed, 13 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/statistics/distributions/empirical_pdf.m +++ b/scripts/statistics/distributions/empirical_pdf.m @@ -37,7 +37,16 @@ error ("empirical_pdf: DATA must be a vector"); endif - pdf = discrete_pdf (x, data, ones (size (data))); + uniq_vals = unique (data); + if (numel (data) != numel (uniq_vals)) + ## Handle ties, multiple elements with same value + p = histc (data, uniq_vals); + data = uniq_vals; + else + p = ones (size (data)); + endif + + pdf = discrete_pdf (x, data, p); endfunction @@ -52,6 +61,9 @@ %!assert (empirical_pdf (single (x), v), single (y)) %!assert (empirical_pdf (x, single (v)), single (y)) +%% Test distribution with ties +%!assert (empirical_pdf (2, [1 2 3 2]), 0.5) + %% Test input validation %!error empirical_pdf () %!error empirical_pdf (1)