Calculer des quantiles approximatifs pour un flux d'entiers en utilisant des moments?

20

migré depuis math.stackexchange .

Je traite un long flux d'entiers et j'envisage de suivre quelques instants afin de pouvoir calculer approximativement divers centiles pour le flux sans stocker beaucoup de données. Quelle est la façon la plus simple de calculer des centiles à partir de quelques instants. Existe-t-il une meilleure approche qui implique de ne stocker qu'une petite quantité de données?

jonderry
la source
2
Savez-vous quelque chose de spécifique sur les propriétés de distribution de votre flux? Par exemple, sont-ils, disons, positifs? Délimité? Tout autre détail que vous pourrez fournir vous sera utile. Les moments sont assez faciles à calculer et à stocker pour un flux. Il y a aussi des questions précédentes sur l'estimation directe des quantiles à partir d'un flux, ce qui ressemble à ce que vous essayez vraiment de faire. Vous pouvez les rechercher et les parcourir.
cardinal
Ils représentent les temps de traitement, ils sont donc positifs et généralement très groupés, sauf en cas de problème technique ou de surcharge dans le système. Je vais chercher les questions quantiles; Ils pourraient être assez bons. Je suis toujours curieux de savoir comment passer des moments au calcul de la valeur associée à un centile arbitraire. Je sais que stocker des moments est facile, c'est comment les utiliser que je ne connais pas.
jonderry
Avez-vous vu cette question ?
cardinal

Réponses:

15

Vous ne le dites pas explicitement, mais d'après votre description du problème, il semble probable que vous recherchiez un ensemble de quantiles fortement biaisé (par exemple, 50e, 90e, 95e et 99e centiles).

Si tel est le cas, j'ai eu beaucoup de succès avec la méthode décrite dans «Calcul efficace des quantiles biaisés sur les flux de données» par Cormode et al. C'est un algorithme rapide qui nécessite peu de mémoire et qui est facile à mettre en œuvre.

La méthode est basée sur un algorithme antérieur de Greenwald et Khanna qui maintient un petit échantillon du flux d'entrée ainsi que des limites supérieure et inférieure sur le rang des valeurs dans l'échantillon. Elle nécessite plus d'espace qu'une collection de quelques instants, mais sera bien meilleure pour décrire avec précision la région de queue intéressante de la distribution.

NPE
la source
1
ϵnn
2

Il existe un algorithme plus récent et beaucoup plus simple pour cela qui fournit de très bonnes estimations des quantiles extrêmes.

q

Voir https://github.com/tdunning/t-digest

Ted Dunning
la source