R语言中quantile函数求分位数

 

1、分位数表示有百分之多少的数值小于该处的数值。

quantile函数默认返回五个数值:

最小值、第一分位数值、 第二分位(中位数)、第三分位数值、最大值。

 

当数值个数为奇数时最为简单:

举例1:

> a <- c(1, 3, 4, 6, 7, 9, 15)
> a                             ## 测试向量, 长度为7,奇数
[1]  1  3  4  6  7  9 15
> quantile(a)     ## 中位数为6; 第一分位为3和4的平均值,即3.5; 第三分位为7和9的平均值,即8;
  0%  25%  50%  75% 100% 
 1.0  3.5  6.0  8.0 15.0 

 

举例2:

> a <- c(1, 2, 3, 4, 6, 7, 9, 15, 20)
> a                               ## 测试向量,长度为9, 奇数
[1]  1  2  3  4  6  7  9 15 20
> quantile(a)      ## 中位数为6; 第一分位为3; 第二分位为9;
  0%  25%  50%  75% 100% 
   1    3    6    9   20 

 

 

当数值个数为偶数时,计算较为复杂。

无论是数值个数是奇数还是偶数,其计算公式为:

 x%(n - 1) + 1;  得到的数值表示所求的x%的位置及其左右的权重, 采用加权平均的方法计算具体的分位数

 

举例1:n为奇数

> a <- c(1, 3, 4, 6, 7, 9, 15)
> a                          ## 测试向量,长度为n = 7;奇数
[1]  1  3  4  6  7  9 15
> quantile(a)
  0%  25%  50%  75% 100% 
 1.0  3.5  6.0  8.0 15.0 

 

计算第一分位:

x%(n - 1) + 1 = 25%(7 - 1) + 1 = 1.5 + 1 = 2.5;

2.5表示所求的25%分位数位于第2个数和第3个数之间,且权重分别为0.5、0.5;

以及可计算25%分位数为:

3 * 0.5 + 4 * 0.5 = 1.5 + 2 = 3.5; 

 

举例2:n为偶数

> a <- c(1, 5, 8, 9, 12, 20)
> a                       ## 测试向量, n = 6; 偶数
[1]  1  5  8  9 12 20
> quantile(a)
   0%   25%   50%   75%  100% 
 1.00  5.75  8.50 11.25 20.00 

 

计算第一分位:

x%(n - 1)+ 1 = 25%(6 - 1)+ 1 = 1.25 + 1 = 2.25;

表明25%分位的数位于第2个数和第3个数之间;且第2个数的权重为0.75,第3个数的权重为0.25,即:

5 * 0.75 + 8 * 0.25 = 3.75 + 2.00 = 5.75.

 

同理计算第三分位:

x%(n - 1) + 1 = 75%(6 - 1)+ 1 = 3.75 + 1 = 4.75;

表明75%分位为数在第4个数和第5个数之间; 且第4个数的权重为0.25,第5个数的权重为0.75, 即:

9 * 0.25 + 12 * 0.75 = 2.25 + 9 = 11.25

 

 

 

 

   

 

posted @ 2022-05-14 19:23  小鲨鱼2018  阅读(5106)  评论(0编辑  收藏  举报