R中生成的分位数和百分位数之间的差异

Difference between Quantile and Percentile generated in R

请原谅我的数学问题,但为什么这两个代码的结果不同?预计 2015 年第 63 行和第 82 行累计百分比中的费用与第二行产生的费用相同。首先是 X63 的 0.591,X82 的 0.858,cumsum_pct 中的第二个代码分别显示 0.792 和 0.966。谢谢

set.seed(1)
library('dplyr')
Claims6 <- data.frame(year = factor(rep(c(2015, 2016), each = 10)),Expense = runif(20))

Claims6 %>% 
  group_by(year) %>% 
  do(data.frame(t(quantile(.$Expense, probs = c(0.10, 0.30, 0.63, 0.82)))))

# A tibble: 2 x 5
# Groups:   year [2]
# year    X10.  X30.  X63.  X82.
# <fct>  <dbl> <dbl> <dbl> <dbl>
# 1 2015  0.0488 0.439 0.591 0.858
# 2 2016  0.101  0.262 0.592 0.805

Claims6 %>% group_by(year) %>% 
  arrange(year,Expense) %>%
  mutate(pct = round(Expense / sum(Expense),2),
         cumsum_pct = round(cumsum(Expense) / sum(Expense),2))

# A tibble: 20 x 4
# Groups:   year [2]
# year  Expense   pct cumsum_pct
# <fct>   <dbl> <dbl>      <dbl>
#   1 2015   0.0332  0.01       0.01
# 2 2015   0.0505  0.01       0.02
# 3 2015   0.384   0.07       0.09
# 4 2015   0.463   0.09       0.18
# 5 2015   0.467   0.09       0.26
# 6 2015   0.538   0.1        0.37
# 7 2015   0.617   0.12       0.48
# 8 2015   0.792   0.15       0.63
# 9 2015   0.966   0.18       0.82
# 10 2015   0.972   0.18       1   
# 11 2016   0.0622  0.01       0.01
# 12 2016   0.106   0.02       0.03
# 13 2016   0.178   0.04       0.07
# 14 2016   0.298   0.06       0.13
# 15 2016   0.445   0.09       0.23
# 16 2016   0.591   0.12       0.35
# 17 2016   0.592   0.12       0.47
# 18 2016   0.765   0.16       0.63
# 19 2016   0.872   0.18       0.81
# 20 2016   0.904   0.19       1   

这是两个相关但独立的摘要统计数据。第一个与排序有关,第二个与累计和有关。它们将涵盖相同的值范围,但元素的权重不同。

在下面的简单示例中,使用 quantile 的第一个计算与采样相关,表明 50% 的样本是 2,介于第二个和第三个值之间。即使第一个 and/or 最后一个值更极端,你也会得到相同的中值——quantile 只关心顺序。

第二个是数值的累积分布,显示50%的累积和在3处。

nums = c(0, 1, 3, 4) 
quantile(nums)
#   0%  25%  50%  75% 100% 
# 0.00 0.75 2.00 3.25 4.00 

data.frame(nums = nums) %>%   
    mutate(pct = nums / sum(nums),
           cumsum_pct = cumsum(pct))
#    nums  pct cumsum_pct
# 1    0 0.000      0.000
# 2    1 0.125      0.125
# 3    3 0.375      0.500
# 4    4 0.500      1.000

同样,您提供的两个计算结果之间的数字通常不会匹配,因为它们做的事情不同。 quantile 一个通过有序元素列表告诉给定分数的值,而另一个告诉累计和达到总数的给定分数时的值。