У меня есть вектор числовых данных (пример ниже). Сохраним вектор как x. Когда я запускаю 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-го квартиля.