我有一个数字数据向量(下面的示例)。让我们将向量存储为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()可能会列出最接近但不在第一四分位数和第三四分位数以下的x向量的值。
(821.4 + 847.7)/ 2 = 834.5
这与摘要第三四分位数相匹配,该摘要四分位数不是矢量值,但更接近估计的累积75%。仍然不确定summary()如何获得第一四分位数的313.6。
答案 0 :(得分:2)
查看?quantile
的帮助页面。计算分位数的方法有多种,descr()
使用type = 2
,而summary
使用默认的type = 7
:
> quantile(x, type = 2)
0% 25% 50% 75% 100%
12.6 298.2 564.1 847.7 1703.6
> quantile(x, type = 7)
0% 25% 50% 75% 100%
12.60 313.65 564.10 834.55 1703.60