重み付けされたサンプルの変位値の定義


12

分位を計算したい重み付きサンプルがあります。1

理想的には、重みが等しい場合(= 1またはそれ以外)、結果はscipy.stats.scoreatpercentile()とRの結果と一致しquantile(...,type=7)ます。

単純なアプローチの1つは、指定された重みを使用してサンプルを「乗算」することです。これにより、重量が1を超える領域で局所的に「フラットな」ecdfが効果的に得られます。これは、サンプルが実際にサブサンプリングである場合、直感的に間違ったアプローチのように見えます。特に、すべてが1の重みを持つサンプルは、すべてが2または3の重みを持つサンプルとは異なる分位点を持つことを意味します(ただし、[1]で参照されている論文はこのアプローチを使用しているようです)。

http://en.wikipedia.org/wiki/Percentile#Weighted_percentileは、加重パーセンタイルの代替公式を提供します。この定式化では、同じ値を持つ隣接するサンプルを最初に組み合わせて重みを合計する必要があるかどうかは明確ではなく、いずれの場合も、その結果はquantile()、重みなし/等しい重みの場合のRのデフォルトタイプ7と一致しないようです。変位値に関するウィキペディアのページでは、加重ケースについてはまったく言及していません。

Rの「タイプ7」クォンタイル関数の加重一般化はありますか?

[Pythonを使用しますが、アルゴリズムを探しているだけです。実際、どの言語でも実行できます]

M

[1]重みは整数です。重みは、http://infolab.stanford.edu/~manku/papers/98sigmod-quantiles.pdfで説明されているように、「折りたたみ」操作と「出力」操作で結合されるバッファーの重みです。基本的に、重み付けされたサンプルは、重み付けされていない完全なサンプルのサブサンプリングであり、サブサンプル内の各要素x(i)は、完全なサンプル内のweight(i)要素を表します。


トピックはかなり古いですが、ここに重み付き変位値のnumpyコードがありますstackoverflow.com/a/29677616/498892
Alleo

回答:


5

これは可能なアプローチの1つです。

バツ1バツ2バツnW1W2Wn

Sk=k1Wk+N1=1k1W
S1=0Sn=N1=1NW

pkSkSnpSk+1Sn

バツk+バツk+1バツkpSnSkSk+1Sk

もしあなたがそれを見つけるだろうと思う W


サンプル内の2つの値が等しいが、重みが異なる場合、問題が発生する可能性があります。
ヘンリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.