2016-06-15 7 views
0

最近、私はorg.apache.commons.math3.stat libのDescriptiveStatistics::getPercentileメソッドが、通常のメソッドよりも与えられた数のパーセンタイルを計算するために異なるアプローチを使用しているという事実に遭遇しました。このSOの答えは違いを説明します。 here計算の背後にある理由apacheのDescriptiveStatistics :: getPercentileメソッドと通常のパーセンタイル計算メソッドの違い

これはバグではなく、意図的に行った決定であるようです。標準的な方法を使わずにapache.commonsのlibのパーセンタイルを計算するためにいくつかの異なる方法を使用する理由は何ですか?

また、この方法の背後には(データセットが大きいと仮定した場合など)、または実際の問題(精度以上のパフォーマンスなど)の前提がありますか。

誰かがこのアルゴリズムの決定の背後にある理由を説明することはできますか。

答えて

0

参照されている質問の回答からわかるように、パーセンタイル計算の定義はさまざまです。

Percentileクラスを使用すると、その(または専門のコンストラクタを使用して)のような(Excelで使用されるように、以下の例では、定義を選択します)、必要に応じて定義を選択することができます:DescriptiveStatisticsについては

new Percentile(quantile).withEstimationType(EstimationType.R_7); 

、することができます

DescriptiveStatistics stats = new DescriptiveStatistics(); 
stats.setPercentileImpl(percentile); 
+0

しかし、私の質問はなぜ異なる方法です。それは、分布またはデータセットのサイズに依存するか、計算効率のためだけに依存するか?私はパーセンタイルを求めるとき、その2つのメソッドが同じデータセットに対して異なる結果を返すことを知っています。だから私はどちらを選択すべきですか(私はそれがコンテキストに依存していると思います。そのため、いつ使うかを知る必要があります) – HarshaXsoad

関連する問題