Mam ważoną próbkę, dla której chcę obliczyć kwantyle. 1
Najlepiej, przy czym masy są takie same (zarówno = 1 lub inaczej), wyniki mogą być zgodne z tymi, scipy.stats.scoreatpercentile()
i R: quantile(...,type=7)
.
Jednym prostym podejściem byłoby „pomnożenie” próbki przy użyciu podanych wag. To skutecznie daje lokalnie „płaski” plik pdf w obszarach wagi> 1, co intuicyjnie wydaje się niewłaściwym podejściem, gdy próbka jest w rzeczywistości podpróbkowaniem. W szczególności oznacza to, że próbka z wagami równymi 1 ma inne kwantyle niż ta z wagami równymi 2 lub 3. (Należy jednak zauważyć, że papier wymieniony w [1] wydaje się stosować to podejście).
http://en.wikipedia.org/wiki/Percentile#Weighted_percentile daje alternatywne sformułowanie dla ważonego percentyla. W tym sformułowaniu nie jest jasne, czy sąsiadujące próbki o identycznych wartościach należy najpierw połączyć, a ich wagi zsumować, a w każdym razie wyniki nie wydają się zgodne z domyślnym typem R 7 quantile()
w przypadku nieważonego / jednakowo ważonego. Strona wikipedii na temat kwantyli w ogóle nie wspomina o przypadku ważonym.
Czy istnieje ważone uogólnienie funkcji kwantylu „typu 7” R?
[używa Pythona, ale po prostu szuka algorytmu, naprawdę, więc wystarczy dowolny język]
M.
[1] Wagi są liczbami całkowitymi; wagi są tymi buforami, które są łączone w operacjach „zwinięcia” i „wyjścia”, jak opisano w http://infolab.stanford.edu/~manku/papers/98sigmod-quantiles.pdf . Zasadniczo próbka ważona jest podpróbkowaniem pełnej próbki nieważonej, przy czym każdy element x (i) w podpróbce reprezentuje elementy wagi (i) w pełnej próbce.
Odpowiedzi:
To jest jedno z możliwych podejść:
Załóżmy, że masz zamówioną próbkę o odpowiednich wagach .X1≤X2≤⋯≤Xn W1,W2,…,Wn
Zdefiniuj więc i .
Aby interpolować kwantyl , znajdź taki, że . Twoja ocena może być wtedyp k SkSn≤p≤Sk+1Sn
Myślę, że przekonasz się, że jeśli są równe, to odtwarza R-7. Są też inne podejścia, ale podejrzewam, że nie traktują wszystkich uporządkowanych wag jako równie ważne.Wi
źródło