2012-01-01 29 views
9

Estoy intentando calcular el percentile rank de una puntuación usando el módulo python statlib. Se supone que la función percentileofscore devuelve un valor entre 0 y 100, sin embargo, produce regularmente números fuera de este rango. Un ejemplo:Cálculo del rango por percentil

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

he probado el módulo scipy, y también han rodado mi propia con resultados similares.

Estoy malentendiendo algo re. ¿esta función?

EDITAR - Más ejemplos:

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

Parece que consultar el percentil de la puntuación más baja que causa el problema. ¿Un error quizás?

+0

+1: Interesante –

+0

interesante. Por curiosidad, ¿podrías agregar algunos ejemplos más de esto? –

+0

Un error sin duda. Buena atrapada. –

Respuesta

7

scipy.stats.percentileofscore parece funcionar como se esperaba:

In [2]: import scipy.stats as stats 

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

No debo haber comprobado mis importaciones correctamente al probar scipy, gracias por aclarar eso. El problema parece ser solo con statlib. – monofonik

+0

No creo que se mantenga statlib, mientras que ha habido varias correcciones de errores y mejoras en scipy.stats en el código que inicialmente se heredó de statlib, por ejemplo para este caso http://projects.scipy.org/scipy/ticket/560 – user333700

Cuestiones relacionadas