基本R summary()和summarytools descr()函数结果之间的奇数差异

时间:2019-06-13 23:13:38

标签: r statistics package summarytools

我有一个数字数据向量(下面的示例)。让我们将向量存储为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。

1 个答案:

答案 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