У мене є зважений зразок, для якого я хочу обчислити кванти. 1
В ідеалі, де ваги рівні (чи = 1 або іншим чином ), то результати будуть несумісними з тими scipy.stats.scoreatpercentile()
і R - х quantile(...,type=7)
.
Одним з простих підходів було б "множення" вибірки за допомогою наведених ваг. Це фактично дає локально "плоский" ecdf у зонах ваги> 1, що інтуїтивно виглядає як неправильний підхід, коли зразок насправді є субпробором. Зокрема, це означає, що зразок з усіма вагами, рівними 1, має різні кванти, ніж один з вагами, рівними 2, або 3. (Зауважте, однак, що папір, на яку посилається в [1], схоже, використовує цей підхід.)
http://en.wikipedia.org/wiki/Percentile#Weighted_percentile дає альтернативну рецептуру для зваженого процентиля. У цій рецептурі не зрозуміло, чи слід спочатку поєднувати сусідні зразки з однаковими значеннями та підсумовувати їх ваги, і в будь-якому випадку його результати не відповідають рівню за замовчуванням типу 7 quantile()
у невагомому / однаково зваженому випадку. Сторінка вікіпедії на квантових показниках взагалі не згадує зваженого випадку.
Чи існує зважене узагальнення квантильної функції "типу 7" R?
[використовуючи Python, але просто шукаю алгоритм, насправді, тому будь-яка мова буде робити]
М
[1] Ваги - цілі числа; ваги - це ті буфери, які поєднуються в операціях "згортання" та "вихід", як описано в http://infolab.stanford.edu/~manku/papers/98sigmod-quantiles.pdf . По суті зважений зразок - це піддіампліка повного невагомого зразка, причому кожен елемент x (i) у підпробі, що представляє вагові (i) елементи в повному зразку.