2012-01-01 24 views
9

python statlibモジュールを使用してスコアのpercentile rankを計算しようとしています。 スコアのパーセント値関数は、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が維持されているとは思わないが、statlibから最初に継承されたコードのscipy.statsにいくつかのバグ修正と改善がありました。例えば、このケースではhttp://projects.scipy.org/scipy/ticket/560 – user333700