Вычислить приблизительные квантили для потока целых чисел, используя моменты?

20

мигрировал из math.stackexchange .

Я обрабатываю длинный поток целых чисел и рассматриваю возможность отслеживания нескольких моментов, чтобы иметь возможность приблизительно рассчитать различные процентили для потока без сохранения большого количества данных. Какой самый простой способ вычислить процентили из нескольких моментов. Есть ли лучший подход, который предполагает хранение небольшого количества данных?

jonderry
источник
2
Знаете ли вы что-нибудь конкретное о распределительных свойствах вашего потока? Например, они, скажем, положительные? Граничит? Любые другие детали, которые вы можете предоставить, будут полезны. Моменты довольно легко рассчитать и сохранить для потока. Здесь также есть предыдущие вопросы о прямой оценке квантилей из потока, что похоже на то, что вы действительно пытаетесь сделать. Вы можете искать и просматривать их.
кардинал
Они представляют время обработки, поэтому они являются положительными и в основном плотно сгруппированы, если только в системе нет какой-либо технической проблемы или перегрузки. Я буду искать квантильные вопросы; они могут быть достаточно хорошими. Тем не менее мне любопытно, как перейти от моментов к вычислению значения, связанного с произвольным процентилем. Я знаю, что запоминать моменты легко, а то, как их использовать, я не знаю.
Jonderry
Вы видели этот вопрос ?
кардинал

Ответы:

15

Вы не заявляете об этом явно, но из вашего описания проблемы кажется вероятным, что вы хотите получить набор квантилей с высоким смещением (например, 50-й, 90-й, 95-й и 99-й процентили).

Если это так, у меня был большой успех с методом, описанным в «Эффективном вычислении смещенных квантилей над потоками данных» Cormode et al. Это быстрый алгоритм, который требует мало памяти, и его легко реализовать.

Метод основан на более раннем алгоритме Гринвальда и Ханны, который поддерживает небольшую выборку входного потока вместе с верхними и нижними границами ранга значений в выборке. Это требует больше места, чем набор нескольких моментов, но будет гораздо лучше точно описать интересную хвостовую область распределения.

NPE
источник
1
εNN
2

Существует более свежий и гораздо более простой алгоритм для этого, который обеспечивает очень хорошие оценки экстремальных квантилей.

Q

Смотрите https://github.com/tdunning/t-digest

Тед Даннинг
источник