定义加权样本的分位数


12

我有一个加权样本,我希望为其计算分位数。1个

理想情况下,在权重相等的情况下(无论是否等于1),结果将与scipy.stats.scoreatpercentile()和的结果一致quantile(...,type=7)

一种简单的方法是使用给定的权重“乘以”样本。这样可以有效地在权重> 1的区域中提供局部“平坦”的ecdf,这在样本实际上是次采样时在直觉上似乎是错误的方法。特别是,这意味着权重均等于1的样本与权重均等于2或3的样本具有不同的分位数。(但是,请注意,[1]中引用的论文确实使用了这种方法。)

http://en.wikipedia.org/wiki/Percentile#Weighted_percentile提供了加权百分比的另一种表示方式。在此公式中尚不清楚是否应首先合并具有相同值的相邻样本并对其权重求和,无论如何quantile(),在未加权/相等加权的情况下,其结果似乎与R的默认类型7不一致。关于分位数的维基百科页面根本没有提到加权情况。

R的“类型7”分位数函数有加权概括吗?

[使用Python,但实际上只是在寻找一种算法,因此任何语言都可以使用]

中号

[1]权重是整数;权重是在http://infolab.stanford.edu/~manku/papers/98sigmod-quantiles.pdf中描述的在“折叠”和“输出”操作中组合的缓冲区的权重。本质上,加权样本是整个未加权样本的子采样,子样本中的每个元素x(i)代表整个样本中的weight(i)元素。


主题很老,但是这里是加权分位数的numpy代码stackoverflow.com/a/29677616/498892
Alleo 2015年

Answers:


5

这是一种可能的方法:

假设您有一个具有相应权重的有序样本。X1X2XnW1,W2,,Wn

定义因此和。

Sk=(k1)Wk+(N1)i=1k1Wi
S1=0Sn=(N1)i=1NWi

对于分位数的插值,找到使得。您的估计可能是pkSkSnpSk+1Sn

Xk+(Xk+1Xk)pSnSkSk+1Sk.

我想您会发现,如果都相等,那么复制R-7。还有其他方法也可以,但是我怀疑它们不会将所有排序的权重都视为同等重要。Wi


如果样本中的两个值相等但具有不同的权重,则可能会出现问题-尽管我还没有。
亨利,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.