Why does the ecdf function return duplicate x values?

11 vues (au cours des 30 derniers jours)
Alex Knight
Alex Knight le 24 Sep 2014
When calling the ecdf function (empirical cumulative distribution function), why is the first "x" value always duplicated? This means that the first 'F' output is always 0. For example:
Trial>> y = 0:10;
Trial>> [f,x] = ecdf( y );
Trial>> disp(x')
0 0 1 2 3 4 5 6 7 8 9 10
Trial>> y = 5:15;
Trial>> [f,x] = ecdf( y );
Trial>> disp(x')
5 5 6 7 8 9 10 11 12 13 14 15
In other words, the minimum value in the input array always appears twice, but the corresponding F value in the first instance is always 0. Since the ECDF is given by:
...is this correct?
Thanks!

Réponse acceptée

Tom Lane
Tom Lane le 24 Sep 2014
This is just for convenience in plotting. Compare these:
>> y = rand(10,1);
>> [f,x] = ecdf(y);
>> subplot(2,1,1); stairs(x,f)
>> subplot(2,1,2); stairs(x(2:end),f(2:end))
Your formula is correct. If you need only the values after each jump in the cdf, you can discard the first value from both x and f.
  1 commentaire
Alex Knight
Alex Knight le 25 Sep 2014
Tom, many thanks - that makes a lot of sense!

Connectez-vous pour commenter.

Plus de réponses (1)

Huiru Li
Huiru Li le 9 Avr 2020
y = rand(10,1);
>> [f,x] = ecdf(y);
>> subplot(2,1,1); stairs(x,f)
>> subplot(2,1,2); stairs(x(2:end),f(2:end))

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by