2012-01-01 53 views
9

Tôi đang cố tính số percentile rank của một điểm sử dụng mô-đun python statlib. Hàm percentileofscore được cho là trả về giá trị từ 0 đến 100, tuy nhiên, nó thường tạo ra các số nằm ngoài phạm vi này. Ví dụ:Tính toán xếp hạng phần trăm

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

Tôi đã thử mô-đun scipy và cũng đã tự cuộn của mình với kết quả tương tự.

Tôi có hiểu nhầm điều gì đó không. Chức năng này?

EDIT - Thêm ví dụ:

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

Có vẻ như là truy vấn trăm của số điểm thấp nhất gây ra vấn đề. Một lỗi có lẽ?

+0

+1: Thú vị –

+0

Thú vị thật. Trong tò mò, bạn có thể thêm một số ví dụ về điều này? –

+0

Lỗi không nghi ngờ gì. Nice bắt. –

Trả lời

7

scipy.stats.percentileofscore dường như làm việc như mong đợi:

In [2]: import scipy.stats as stats 

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

Tôi không được kiểm tra hàng nhập khẩu đúng cách khi thử nghiệm scipy, cảm ơn bạn đã xóa thông tin đó. Vấn đề dường như chỉ với statlib. – monofonik

+0

Tôi không nghĩ rằng statlib được duy trì, trong khi đã có một số sửa lỗi và cải tiến trong scipy.stats trong mã ban đầu được thừa kế từ statlib, ví dụ cho trường hợp này http://projects.scipy.org/scipy/ticket/560 – user333700

Các vấn đề liên quan