Définition des quantiles sur un échantillon pondéré

12

J'ai un échantillon pondéré, pour lequel je souhaite calculer des quantiles. 1

Idéalement, où les poids sont égaux (si = 1 ou autre), les résultats seraient conformes à celles de scipy.stats.scoreatpercentile()et R de quantile(...,type=7).

Une approche simple serait de «multiplier» l'échantillon en utilisant les poids donnés. Cela donne effectivement un ecdf localement "plat" dans les zones de poids> 1, ce qui semble intuitivement être la mauvaise approche lorsque l'échantillon est en fait un sous-échantillonnage. En particulier, cela signifie qu'un échantillon dont les poids sont tous égaux à 1 a des quantiles différents de celui dont les poids sont tous égaux à 2 ou 3. (Notez cependant que l'article référencé dans [1] semble utiliser cette approche.)

http://en.wikipedia.org/wiki/Percentile#Weighted_percentile donne une formulation alternative pour le centile pondéré. Il n'est pas clair dans cette formulation si des échantillons adjacents avec des valeurs identiques doivent d'abord être combinés et leurs poids additionnés, et en tout cas ses résultats ne semblent pas être cohérents avec le type par défaut de R 7 quantile()dans le cas non pondéré / également pondéré. La page wikipedia sur les quantiles ne mentionne pas du tout le cas pondéré.

Existe-t-il une généralisation pondérée de la fonction quantile "type 7" de R?

[en utilisant Python, mais juste à la recherche d'un algorithme, vraiment, donc n'importe quel langage fera l'affaire]

M

[1] Les poids sont des entiers; les poids sont ceux des tampons qui sont combinés dans les opérations de "réduction" et de "sortie" comme décrit dans http://infolab.stanford.edu/~manku/papers/98sigmod-quantiles.pdf . Essentiellement, l'échantillon pondéré est un sous-échantillonnage de l'échantillon complet non pondéré, chaque élément x (i) du sous-échantillon représentant les éléments de pondération (i) de l'échantillon complet.

Misha
la source
Le sujet est assez ancien, mais voici le code numpy pour les quantiles pondérés stackoverflow.com/a/29677616/498892
Alleo

Réponses:

5

C'est une approche possible:

Supposons que vous ayez un échantillon ordonné avec les poids respectifs .X1X2XnW1,W2,,Wn

Définissez donc et .

Sk=(k1)Wk+(N1)i=1k1Wi
S1=0Sn=(N-1)je=1NWje

Pour une interpolation du quantile , trouvez tel que . Votre estimation pourrait alors êtrepkSkSnpSk+1Sn

Xk+(Xk+1-Xk)pSn-SkSk+1-Sk.

Wje

Henri
la source
Il peut y avoir un problème si deux valeurs de l'échantillon sont égales mais ont des poids différents - je n'y ai pas pensé.
Henry