2016-03-10 2 views
1

Я пытаюсь использовать ecdf, но я не уверен, что я делаю это правильно. Моя конечная цель - найти, какой квантиль соответствует определенной ценности. В качестве примера:Результаты Quantile vs ecdf

sample_set <- c(20, 40, 60, 80, 100) 
# Now I want to get the 0.75 quantile: 
quantile(x = sample_set, probs = 0.75) 
#result: 
75% 
80 
# Let's use ecdf 
ecdf(x = sample_set) (80) 
#result 
0.8 

Почему это несоответствие? Я делаю какую-то тривиальную ошибку, или это зависит от того, как квантил делает свои расчеты?

Спасибо, Max

+1

Возможно, расчеты имели бы смысл, если бы вы посмотрели на 'plot (ecdf (x = sample_set)); abline (h = 0.75, col = "blue") '? Конечно, один (или оба) этих направлений неоднозначны ...? – joran

ответ

2

Есть две точки. Во-первых, как вы догадались, это зависит от того, как quantile делает свои расчеты. В частности, это зависит от параметра type. То, что вы можете выбрать, это type = 1, так как оно соответствует , обратному эмпирической функции распределения (см. ?quantile). Во-вторых, поскольку дает дискретную, ступенчатую функцию, то есть ecdf не является строго возрастающим, вы не можете получить точное равенство из-за способа квантильности defined (см. Вторую формулу).

+0

Я предполагаю, что вы имеете в виду, что ecdf не * строго * увеличивается. Его возрастающая функция в часто используемом смысле монотонного неубывания. –

+0

@ A.Webb, да, это то, что я имел в виду. Я добавлю это слово, чтобы избежать путаницы. – Julius

Смежные вопросы