Saya memiliki sampel tertimbang, yang ingin saya hitung kuantil. 1
Idealnya, jika bobotnya sama (baik = 1 atau tidak), hasilnya akan konsisten dengan bobot scipy.stats.scoreatpercentile()
R dan quantile(...,type=7)
.
Salah satu pendekatan sederhana adalah "memperbanyak" sampel menggunakan bobot yang diberikan. Itu secara efektif memberikan "flat" ecdf lokal di bidang berat> 1, yang secara intuitif tampak seperti pendekatan yang salah ketika sampel sebenarnya merupakan sub-sampling. Secara khusus, ini berarti bahwa sampel dengan bobot semua sama dengan 1 memiliki kuantil berbeda dari satu dengan bobot semua sama dengan 2, atau 3. (Namun, perhatikan bahwa makalah yang dirujuk dalam [1] tampaknya menggunakan pendekatan ini.)
http://en.wikipedia.org/wiki/Percentile#Weighted_percentile memberikan formulasi alternatif untuk persentil tertimbang. Tidak jelas dalam formulasi ini apakah sampel yang berdekatan dengan nilai yang identik harus dikombinasikan terlebih dahulu dan bobotnya dijumlahkan, dan dalam kasus apa pun hasilnya tidak konsisten dengan tipe default R 7 quantile()
pada case tanpa bobot / bobot yang sama. Halaman wikipedia pada kuantil sama sekali tidak menyebutkan case berbobot.
Apakah ada generalisasi tertimbang dari fungsi kuantil "tipe 7" R?
[menggunakan Python, tetapi hanya mencari algoritma, sungguh, jadi bahasa apa pun akan melakukannya]
M.
[1] Bobot adalah bilangan bulat; bobotnya adalah buffer yang digabungkan dalam operasi "collapse" dan "output" seperti yang dijelaskan dalam http://infolab.stanford.edu/~manku/papers/98sigmod-quantiles.pdf . Pada dasarnya sampel tertimbang adalah sub-sampel dari sampel tidak tertimbang penuh, dengan setiap elemen x (i) dalam sub-sampel mewakili berat (i) elemen dalam sampel penuh.