如何利用累积频率百分比计算百分位数?求数据集的25/50/75百分位数
如何用累积频率计算分组数据的25th、50th、75th百分位数
首先得给你点个赞,你猜的没错——50th百分位数确实就是中位数!不过你之前把累积频率的数值和百分位数搞混啦,咱们一步步理清楚怎么计算:
一、先搞懂核心公式和参数含义
对于分组数据的百分位数,咱们用插值法来计算,通用公式是这样的:
P_k = L + [(k/100 * N - F) / f] * w
每个参数的意思得记牢:
- $P_k$:就是咱们要找的第k百分位数(比如k=25、50、75)
- L:目标百分位数所在组的下限(比如组是55-65,那下限就是55)
- N:数据的总频数(也就是所有数据点的总数,看表格最后一行的累积频数就行)
- F:目标组前面所有组的累积频数(就是比目标组下限小的所有数据的数量)
- f:目标组自己的频数(这个组里有多少个数据)
- w:目标组的组距(组的上限减下限,比如55-65的组距就是10)
二、用你的表格数据练手(以50th百分位数为例)
从你描述的情况来看,第5行数值60对应的累积频率是36.6%,这说明到这个组为止,只有36.6%的数据在它以下,还没到50%的门槛。咱们得继续往下找,直到找到累积频率首次≥50%的那个组——那才是中位数所在的组。
举个贴合你情况的模拟例子:假设总频数N=100,表格里的组是这样的:
- 组1:数值50(对应区间45-55),频数10,累积频数10,累积频率10%
- 组2:数值55(对应区间55-60),频数12,累积频数22,累积频率22%
- 组3:数值60(对应区间60-65),频数14,累积频数36,累积频率36%(就是你说的36.6%)
- 组4:数值65(对应区间65-70),频数20,累积频数56,累积频率56%
- ...
那50th百分位数就在数值65对应的组里,因为它的累积频率56%第一次超过了50%。代入公式计算:
- L=65(组的下限)
- k=50,所以$(50/100)*100=50$
- F=36(前一组的累积频数,也就是到60组为止的总数)
- f=20(65组的频数)
- w=5(如果组是65-70,组距就是5)
算出来就是:$P_{50}=65 + [(50-36)/20]*5 = 65 + 3.5 = 68.5$
三、计算25th和75th百分位数的步骤
方法和中位数完全一样,只是换了k值:
- 25th百分位数(Q1,第一四分位数)
- 先算$(25/100)*N$,找到累积频率首次≥这个数值的组
- 把对应的L、F、f、w代入公式就能算出P25
- 75th百分位数(Q3,第三四分位数)
- 先算$(75/100)*N$,找到累积频率首次≥这个数值的组
- 同样代入公式计算出P75
四、踩过的坑要记牢
你之前误以为累积频率的36.6%是中位数,这是个常见误区:百分位数是数据的具体数值,而累积频率是“小于等于这个数值的数据占总数据的比例”。比如50th百分位数的意思是,有50%的数据都小于等于这个数值,它是一个数据值,不是百分比哦~
内容的提问来源于stack exchange,提问作者Foo Fighter




