Для приблизительно нормально распределенных данных коробочные диаграммы - отличный способ быстро визуализировать медиану и распространение данных, а также присутствие любых выбросов.
Однако для распределений с более тяжелыми хвостами многие точки показаны как выбросы, поскольку выбросы определяются как находящиеся вне фиксированного коэффициента IQR, и это, конечно, происходит намного чаще с распределениями с тяжелыми хвостами.
Итак, что люди используют для визуализации такого рода данных? Есть что-то более адаптированное? Я использую ggplot на R, если это имеет значение.
r
distributions
data-visualization
data-transformation
ggplot2
static_rtti
источник
источник
Ответы:
Центральная проблема ОП , как представляется, является то , что они имеют очень тяжелые-хвостатые данные - и я не думаю , что большинство настоящих ответов фактически имеем дело с этим вопросом на всех , поэтому я продвижения мой предыдущий комментарий к ответу.
Если вы хотите остаться с коробками, некоторые варианты перечислены ниже. Я создал некоторые данные в R, которые показывают основную проблему:
Средняя половина данных уменьшается до крошечной полосы шириной в пару мм. Та же самая проблема затрагивает большинство других предложений - в том числе графики QQ, полосы, графики улья / пчелиного тепла и участки скрипки.
Теперь несколько потенциальных решений:
1) трансформация ,
Если бревна или перевернутые диаграммы дают удобочитаемую коробочную диаграмму, они могут быть очень хорошей идеей, и исходный масштаб все еще может быть показан на оси.
Большая проблема в том, что иногда нет «интуитивного» преобразования. Есть меньшая проблема, которая заключается в том, что, хотя сами квантили достаточно хорошо транслируют монотонные преобразования, заборы этого не делают; если вы просто нанесите на карту преобразованные данные (как я сделал здесь), усы будут иметь другие значения х, чем в исходном графике.
Здесь я использовал обратный гиперболический грех (asinh); это похоже на бревно в хвостах и похоже на линейное приближение к нулю, но люди обычно не находят это интуитивно понятным преобразованием, поэтому в общем случае я бы не рекомендовал эту опцию, если не очевидно достаточно интуитивное преобразование, такое как log Код для этого:
2) разрывы шкалы - возьмите крайние выбросы и сожмите их в узкие окна на каждом конце с гораздо более сжатой шкалой, чем в центре. Я настоятельно рекомендую сделать полный перерыв по всей шкале, если вы сделаете это.
3) обрезание экстремальных выбросов (что я бы обычно не советовал, не указав это очень четко, но похоже на следующий график, без "<5" и "2>" на обоих концах), и
4) то, что я буду называть экстремально-выпадающими "стрелками" - аналогично усечению, но с отсеченным значением, указанным на каждом конце
источник
Лично мне нравится использовать стрипплот с джиттером, чтобы хотя бы почувствовать данные. График ниже с решеткой в R (извините, не ggplot2). Мне нравятся эти графики, потому что их очень легко интерпретировать. Как вы говорите, одна из причин этого заключается в том, что нет никаких преобразований.
Пакет beeswarm предлагает отличную альтернативу стрипплоту (спасибо @January за предложение).
С вашими данными, поскольку они примерно нормально распределены, еще одна вещь, которую можно попробовать - это qqplot, в данном случае qqnorm .
источник
beeswarm
пакета.Вы можете придерживаться коробок. Существуют разные возможности определения усов. В зависимости от толщины хвоста, количества образцов и допуска к выбросам вы можете выбрать два более или менее экстремальных квантиля. Учитывая вашу проблему, я бы избегал усов, определенных в IQR.
Если, конечно, вы не хотите преобразовать свои данные, что в этом случае затрудняет понимание.
источник
Я предполагаю, что этот вопрос о понимании данных (в отличие от «управления» ими в противном случае).
Если данные являются «тяжелыми хвостами» и / или мультимодальными, я считаю эти «слои» ggplot2 очень полезными для цели:
geom_violin
иgeom_jitter
.источник