Функция R median и ecdf () дают разные результаты. Почему? - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть вектор ve c с 80 значениями, если я применяю функцию медианы (ve c), я получаю значение. Однако то, что я хотел бы сделать, - это наоборот, учитывая числовую оценку процентиля, которому он принадлежит. Я нашел функцию ecdf (), но получаю разные результаты. Это упрощенный пример

> vec = c(100,150,150,150,150,150,200)
> median(vec)
# This gives the expected result
[1] 150

# However if I go the other way around, meaning I pass the value and try to return the percentile I get:
rev_med <- ecdf(vec)
rev_med(150)
[1] 0.8571429

!!!

Я ожидаю, что поведение пройдет 150 и получит 50%, так как это медиана вектора

Что идет не так здесь?

1 Ответ

1 голос
/ 23 апреля 2020

ecdf дает эмпирический CDF, который является функцией F, для которой F(x) = P[X <= x], где X - случайная величина, создающая входной вектор vec.

Это оценка; median - это другая оценка.

Но вы можете видеть, что ecdf дает разумный ответ:

mean(vec <= 150)
# [1] 0.8571429

Тем не менее, мы можем использовать объект ecdf для получения 150 как Медиана:

quantile(ecdf(vec), .5)
# 50% 
# 150 

См. ?ecdf; это не полный ответ, но, надеюсь, в любом случае он освещает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...