W przypadku normalnie dystrybuowanych danych wykresy pudełkowe są świetnym sposobem na szybką wizualizację mediany i rozprzestrzeniania się danych, a także obecności jakichkolwiek wartości odstających.
Jednak w przypadku bardziej ciężkich rozkładów wiele punktów jest pokazanych jako wartości odstające, ponieważ wartości odstające są zdefiniowane jako znajdujące się poza stałym współczynnikiem IQR, i zdarza się to oczywiście znacznie częściej w przypadku rozkładów ciężkich.
Czego ludzie używają do wizualizacji tego rodzaju danych? Czy jest coś bardziej dostosowanego? Używam ggplot na R, jeśli to ma znaczenie.
r
distributions
data-visualization
data-transformation
ggplot2
static_rtti
źródło
źródło
Odpowiedzi:
Głównym problemem PO wydaje się, że jest to, że mają one bardzo ciężkie dane ogoniastych - i nie sądzę, większość obecnych odpowiedzi właściwie radzić sobie z tego problemu w ogóle , więc jestem promowanie mój poprzedni komentarz do odpowiedzi.
Jeśli chcesz pozostać przy boxplots, niektóre opcje są wymienione poniżej. Utworzyłem niektóre dane w R, które pokazują podstawowy problem:
Środkowa połowa danych jest zmniejszona do małego paska o szerokości kilku mm. Ten sam problem dotyczy większości innych sugestii - w tym wykresów QQ, wykresów paskowych, wykresów ulowych / rozgrzanych pszczół i wykresów skrzypcowych.
Teraz kilka potencjalnych rozwiązań:
1) transformacja ,
Jeśli logi lub odwrotności tworzą czytelny wykres pudełkowy, mogą być bardzo dobrym pomysłem, a oryginalna skala nadal może być pokazana na osi.
Dużym problemem jest to, że czasami nie ma „intuicyjnej” transformacji. Istnieje mniejszy problem, który wprawdzie same kwantyle tłumaczą się transformacjami monotonicznymi wystarczająco dobrze, ale płoty nie; jeśli po prostu wykreślisz przekształcone dane (tak jak ja tutaj), wąsy będą miały inne wartości x niż na oryginalnym wykresie.
Tutaj użyłem grzechu odwrotnego-hiperbolicznego (asinh); w ogonach jest trochę logarytmiczny i podobny do liniowego bliskiego zera, ale ludzie na ogół nie uważają za intuicyjną transformację, więc ogólnie nie poleciłbym tej opcji, chyba że dość intuicyjna transformacja taka jak log jest oczywista. Kod do tego:
2) podziałki skali - weź skrajne wartości odstające i ściśnij je w wąskie okna na każdym końcu o znacznie bardziej skompresowanej skali niż w środku. Jeśli to zrobisz, zdecydowanie polecam całkowite przełamanie całej skali.
3) przycinanie skrajnych wartości odstających (których normalnie nie radziłbym bez wyraźnego zaznaczenia tego, ale wygląda to na następny wykres, bez „<5” i „2>” na obu końcach), oraz
4) co nazywam „strzałkami” skrajnie odstających - podobnie jak przycinanie, ale z liczbą przyciętych wartości wskazanych na każdym końcu
źródło
Osobiście lubię używać stripplotu z fluktuacją przynajmniej w celu wyczucia danych. Poniższy wykres przedstawia sieć w R (przepraszam, że nie ggplot2). Lubię te wątki, ponieważ są bardzo łatwe do interpretacji. Jak mówisz, jednym z powodów tego jest brak transformacji.
Beeswarm pakiet oferuje doskonałą alternatywą dla stripplot (dzięki @January za sugestię).
Z twoimi danymi, ponieważ są one w przybliżeniu normalnie rozpowszechniane, kolejną rzeczą do wypróbowania może być qqplot, w tym przypadku qqnorm .
źródło
beeswarm
paczki.Możesz trzymać się wykresów pudełkowych. Istnieją różne możliwości definiowania wąsów. W zależności od grubości ogona, liczby próbek i tolerancji na wartości odstające możesz wybrać dwa bardziej lub mniej skrajne kwantyle. Biorąc pod uwagę twój problem, unikałbym wąsów określonych w IQR.
Chyba że oczywiście chcesz przekształcić swoje dane, co w tym przypadku utrudnia zrozumienie.
źródło
Zakładam, że to pytanie dotyczy zrozumienia danych (w przeciwieństwie do „zarządzania” nimi).
Jeśli dane są grubościenne i / lub multimodalne, uważam, że te „warstwy” ggplot2 są bardzo przydatne w tym celu:
geom_violin
igeom_jitter
.źródło