Как рассчитать числа наблюдений в квантилях? - PullRequest
0 голосов
/ 31 января 2019

Рассмотрим, что у меня есть миллион наблюдений за гамма-распределением с параметрами (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

enter image description here

1 Ответ

0 голосов
/ 31 января 2019

Мы можем использовать cut с table:

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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...