Нечетные различия между результатами основной функции R summary () и summarytools descr () - PullRequest
1 голос
/ 14 июня 2019

У меня есть вектор числовых данных (образец ниже).Давайте сохраним вектор как х.Когда я запускаю summary (x) и descr (x), где descr () из пакета summarytools, я согласен с значениями Min, Median, Mean и Max.Тем не менее, мои 1-й и 3-й квартиль значения отличаются.Это первый раз, когда я вижу это расхождение между результатами двух функций.Есть какие-нибудь мысли о том, почему и как это происходит?

Я начал изучать исходный код 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 С резюме ()Q1 = 313,6 и Q3 = 834,5

Когда я запускаю freq (x) и смотрю на совокупный процент, 298,2 составляет 25,53%, 821,4 - 74,47% и 847,7 - 76,6%.Таким образом, похоже, что descr () может перечислять значения вектора x, которые находятся ближе всего, но не под 1-м и 3-м квартилем.

(821,4 + 847,7) / 2 = 834,5
Это соответствует итоговому 3-му квартилю, который не является векторным значением, но ближе к предполагаемому совокупному 75%.Все еще не уверен, каким образом summary () получает 313,6 для 1-го квартиля.

1 Ответ

2 голосов
/ 14 июня 2019

Посмотрите на странице справки для ?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  
...