Why does the ecdf function return duplicate x values?

31 ビュー (過去 30 日間)
Alex Knight
Alex Knight 2014 年 9 月 24 日
回答済み: Huiru Li 2020 年 4 月 9 日
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!

採用された回答

Tom Lane
Tom Lane 2014 年 9 月 24 日
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 件のコメント
Alex Knight
Alex Knight 2014 年 9 月 25 日
Tom, many thanks - that makes a lot of sense!

サインインしてコメントする。

その他の回答 (1 件)

Huiru Li
Huiru Li 2020 年 4 月 9 日
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