2012-01-01 3 views
9

Я пытаюсь вычислить percentile rank баллов, используя модуль python statlib. Функция percentileofscore должна возвращать значение от 0 до 100, однако оно регулярно производит номера за пределами этого диапазона. Пример:Продвинутый рейтинг ранга

>> a = [0,1,2,3,4,5] 
>> percentileofscore(a, 0) 
108.33333333333333 

Я попытался scipy модуль, а также прокат мое с аналогичными результатами.

Я что-то недопонимаю. эта функция?

EDIT - Другие примеры:

percentileofscore([23,23,23,25], 23) 
137.5 
percentileofscore([12,19,65,25], 12) 
112.5 
percentileofscore([112,109,605,25], 25) 
112.5 

Кажется, что запрашивая процентиль самого низкого балла вызывает проблему. Возможно, ошибка?

+0

+1: Интересный –

+0

интересно. Из любопытства вы могли бы добавить еще несколько примеров этого? –

+0

Ошибка без сомнений. Хорошо поймал. –

ответ

7

scipy.stats.percentileofscore, кажется, работает, как ожидалось:

In [2]: import scipy.stats as stats 

In [3]: stats.percentileofscore([0,1,2,3,4,5], 0) 
Out[3]: 16.666666666666664 
+0

Я не должен был проверять свой импорт должным образом при тестировании scipy, спасибо за это. Проблема, похоже, связана только с statlib. – monofonik

+0

Я не думаю, что statlib поддерживается, хотя в коде scipy.stats в коде, который был первоначально унаследован от statlib, было несколько исправлений и улучшений, например, для этого случая http://projects.scipy.org/scipy/ticket/560 – user333700

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