【问题标题】:Struggling to understand Q1 calculation努力理解 Q1 计算
【发布时间】:2021-02-23 14:55:48
【问题描述】:

假设我们有以下数据集(长度为 24):

x <- c(30L, 49L, 105L, 115L, 118L, 148L, 178L, 185L, 196L, 210L, 236L, 236L,
278L, 287L, 329L, 362L, 366L, 399L, 430L, 434L, 451L, 451L, 477L, 488L, 508L,
531L, 533L, 542L)

如果我们计算五数摘要: 最小值为 30,最大值:542,中值:(287 + 329) /2 = 308...这是最简单的部分!

  • Q1 是子集 [30, 49,105,....287] 的中位数,长度为 14 --> Q1 = [178 + 185]/2 = 181.5
  • Q3 " " " " [329,362,...,542] = [451 + 451] / 2 = 451

现在,如果我们使用函数 summary(dataset) 进行检查...我们得到:

Min.   1st Qu.  Median    Mean    3rd Qu.    Max. 
30.0   183.2    308.0     309.7   451.0      542.0

为什么我们会得到不同的 Q1?函数summary如何计算Q1?

【问题讨论】:

    标签: r statistics stochastic


    【解决方案1】:

    有(至少)九种种计算分位数的方法:参见?quantile。对于这个数据集,9 种方法导致 6 个独特的结果:9 种方法中有 2 种给出 181.5 的答案 ...

    res <- sapply(1:9, function(t) quantile(x, 0.25, type=t))
    names(res) <- 1:9
    sort(res)
    
    ##       1        3        4        6        8        9        2        5 
    ## 178.0000 178.0000 178.0000 179.7500 180.9167 181.0625 181.5000 181.5000 
    ##        7 
    ## 183.2500 
    

    R 中的默认方法是“type 7”,它给出 183.25(summary 中的值打印精度略低,因此显示为 183.2)。

    【讨论】:

    • 这回答了你的问题吗?