R 如何以分位数计算观测值的数量?

R 如何以分位数计算观测值的数量?,r,statistics,probability,frequency,quantile,R,Statistics,Probability,Frequency,Quantile,假设我有一百万个观测值,遵循伽马分布和参数(3,5)。我可以使用summary()找到分位数,但我试图找出分成10个部分的每条红线之间有多少观察值 a = rgamma(1e6, shape = 3, rate = 5) summary(a) Min. 1st Qu. Median Mean 3rd Qu. Max. 0.0053 0.3455 0.5351 0.6002 0.7845 4.4458 我们可以使用切割和表格: table(cut(a, quan

假设我有一百万个观测值,遵循伽马分布和参数(3,5)。我可以使用
summary()
找到分位数,但我试图找出分成10个部分的每条红线之间有多少观察值

a = rgamma(1e6, shape = 3, rate = 5)

summary(a)

  Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
0.0053  0.3455  0.5351  0.6002  0.7845  4.4458

我们可以使用
切割
表格

table(cut(a, quantile(a, 0:10 / 10)))

# (0.00202,0.22]   (0.22,0.307]  (0.307,0.382]  (0.382,0.457]  (0.457,0.535]  (0.535,0.622] 
#          99999         100000         100000         100000         100000         100000 
#  (0.622,0.724]  (0.724,0.856]   (0.856,1.07]    (1.07,3.81] 
#         100000         100000         100000         100000 
但是考虑到分位数是什么,这可能不是很有趣。也许您还需要尝试理论分位数:

table(cut(a, qgamma(0:10 / 10, 3, 5)))

#      (0,0.22]  (0.22,0.307] (0.307,0.383] (0.383,0.457] (0.457,0.535] (0.535,0.621] (0.621,0.723] 
#         99978        100114        100545         99843         99273         99644        100104 
# (0.723,0.856]  (0.856,1.06]    (1.06,Inf] 
#        100208         99883        100408 
没什么有趣的,因为如果你的数据真的遵循伽马分布,并且你有一系列的观测,那么你可以非常确定在第q个和(q+x)个理论分位数之间会有接近x%的数据。在较小的样本中,第二种方法可能很有趣


编辑:根据您最新的问题,很明显,10%、20%的答案不是分位数。假设最小值是0,最大值是2,如果你认为10%是0.2,那么你想要

table(cut(a, seq(min(a), max(a), length = 10 + 1)))

# (0.00418,0.428]   (0.428,0.853]    (0.853,1.28]      (1.28,1.7]      (1.7,2.13]     (2.13,2.55] 
#          361734          436176          155332           37489            7651            1335 
#     (2.55,2.97]      (2.97,3.4]      (3.4,3.82]     (3.82,4.25] 
#             231              38              11               2 

假设你说的是十分位数,你会发现前10%包含了10%的观察值(100000),10-20%的范围也是如此。我想我没有解释自己。这个数据的直方图将给我一个左偏分布。我想把x轴分成10个部分,看看每10%中有多少个观察值。谢谢Julius Vainora,但很抱歉,我说的是把直方图的x轴分成10个部分,并想找出每一部分中有多少个观察值。@Justin,如果你按照分位数来划分,那么答案还是一样的,不是吗?我又加了一个猜测,你可能在想什么。@Justin,我的最后一行代码确实是你想要的。它将
a
的范围划分为10个相等的部分,并计算出您想要的内容。我刚刚更新了问题并添加了一个绘图。例如,在第一个间隔中应该有更少的观测值,在第二个间隔中应该有更多的观测值,依此类推,然后,它们将再次开始减少。太好了!这就是我的意思