Definindo quantis sobre uma amostra ponderada

12

Eu tenho uma amostra ponderada, para a qual desejo calcular quantis. 1

Idealmente, onde os pesos são iguais (seja = 1 ou não), os resultados seriam consistentes com os de scipy.stats.scoreatpercentile()e R's quantile(...,type=7).

Uma abordagem simples seria "multiplicar" a amostra usando os pesos fornecidos. Isso efetivamente fornece um ecdf localmente "plano" nas áreas de peso> 1, que intuitivamente parece a abordagem errada quando a amostra é realmente uma subamostra. Em particular, isso significa que uma amostra com pesos iguais a 1 possui quantis diferentes de uma amostra com pesos iguais a 2 ou 3. (Observe, no entanto, que o artigo mencionado em [1] parece usar essa abordagem).

http://en.wikipedia.org/wiki/Percentile#Weighted_percentile fornece uma formulação alternativa para o percentil ponderado. Não está claro nesta formulação se amostras adjacentes com valores idênticos devem primeiro ser combinadas e seus pesos somados e, em qualquer caso, seus resultados não parecem ser consistentes com o tipo padrão de R 7 quantile()no caso não ponderado / igualmente ponderado. A página da Wikipedia sobre quantis não menciona o caso ponderado.

Existe uma generalização ponderada da função quantil "tipo 7" de R?

[usando Python, mas apenas procurando por um algoritmo, realmente, qualquer linguagem serve]

M

[1] Pesos são inteiros; os pesos são os dos buffers combinados nas operações "recolhimento" e "saída", conforme descrito em http://infolab.stanford.edu/~manku/papers/98sigmod-quantiles.pdf . Essencialmente, a amostra ponderada é uma subamostragem da amostra completa não ponderada, com cada elemento x (i) na subamostra representando elementos de peso (i) na amostra completa.

Misha
fonte
Tópico é bastante antiga, mas aqui é o código numpy para quantiles ponderada stackoverflow.com/a/29677616/498892
Alleo

Respostas:

5

Esta é uma abordagem possível:

Suponhamos que você tenha uma amostra ordenada com os respectivos pesos .X1X2XnW1,W2,...,Wn

Defina então e .

Sk=(k-1)Wk+(N-1)Eu=1k-1WEu
S1=0 0Sn=(N-1)Eu=1NWEu

Para uma interpolação do quantil , encontre tal que . Sua estimativa pode então serpkSkSnpSk+1Sn

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

Acho que você descobrirá que, se os são todos iguais, isso reproduz o R-7. Também existem outras abordagens, mas suspeito que elas não tratam todos os pesos ordenados como sendo igualmente importantes.WEu

Henry
fonte
Pode haver um problema se dois valores na amostra forem iguais, mas tiverem pesos diferentes - ainda não pensei nisso.
Henry