Why does the ecdf function return duplicate x values?

조회 수: 13 (최근 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개)

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))

카테고리

Help CenterFile Exchange에서 Exploration and Visualization에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by