我有一个数字数据向量(下面的示例)。让我们将向量存储为 x。当我运行summary(x) 和descr(x) 时,descr() 来自summarytools 包,我对Min、Median、Mean 和Max 值达成一致。但是,我的第一和第三四分位数值不同。这是我第一次看到两个函数结果之间的这种差异。关于为什么以及如何发生这种情况的任何想法?
我开始探索 descr() 源代码,但还没有走多远,也无法访问 summary() 源以查看其中是否存在差异。但是,在查看一些累积百分比时,我认为它们计算分位数的方式可能有所不同。
x = c(1132.1, 731.1, 851.2, 704.0, 226.3, 1703.6, 853.6, 821.4, 1192.9, 814.2, 880.2, 1270.8, 784.2, 606.5, 702.8, 863.6, 419.2, 1486.9, 1325.8, 493.2, 847.7, 552.5, 709.3, 508.3, 400.0, 711.4, 1161.5, 778.4, 626.2, 365.0, 329.1, 457.7, 446.2, 564.1, 376.9, 463.3, 239.7, 250.9, 266.5, 298.2, 186.2, 79.0, 149.9, 178.7, 79.4, 91.8, 12.6)
install.packages("")
library(summarytools)
descr(x)
summary(x)
使用descr() Q1= 298.20 和Q3= 847.70 使用summary() Q1= 313.6 和Q3= 834.5
当我运行 freq(x) 并查看累积百分比时,298.2 为 25.53%,821.4 为 74.47%,847.7 为 76.6%。所以看起来 descr() 可能会列出最接近但不低于第 1 和第 3 四分位数的 x 向量的值。
(821.4+847.7)/2 = 834.5
这与汇总的第三四分位数相匹配,这不是向量值,但更接近估计的累积 75%。仍然不确定 summary() 如何获得第一个四分位数的 313.6。