Jaki jest dobry sposób graficznego przedstawienia bardzo dużej liczby sparowanych punktów danych?

9

W mojej dziedzinie zwykłym sposobem wykreślania sparowanych danych jest seria cienkich nachylonych segmentów linii, nakładających je na medianę i CI mediany dla dwóch grup:

wprowadź opis zdjęcia tutaj

Jednak ten rodzaj wykresu staje się znacznie trudniejszy do odczytania, ponieważ liczba punktów danych staje się bardzo duża (w moim przypadku mam rzędu 10000 par):

wprowadź opis zdjęcia tutaj

Zmniejszenie alfa trochę pomaga, ale wciąż nie jest świetne. Podczas poszukiwania rozwiązania natknąłem się na ten artykuł i postanowiłem spróbować zastosować „wykres równoległej linii”. Ponownie działa bardzo dobrze w przypadku niewielkiej liczby punktów danych:

wprowadź opis zdjęcia tutaj

Ale jeszcze trudniej jest sprawić, aby tego rodzaju fabuła wyglądała dobrze, gdy jest bardzo duży:N

wprowadź opis zdjęcia tutaj

Przypuszczam, że mógłbym osobno pokazać rozkłady dla dwóch grup, np. Z wykresami pudełkowymi lub skrzypcami, i wykreślić linię z paskami błędów na górze pokazującymi dwie mediany / elementy CI, ale tak naprawdę nie podoba mi się ten pomysł, ponieważ nie byłby w stanie przekazać sparowany charakter danych.

Nie jestem też zbytnio zainteresowany ideą wykresu punktowego 2D: wolałbym bardziej zwartą reprezentację, a najlepiej taką, w której wartości dla dwóch grup są wykreślane wzdłuż tej samej osi. Dla kompletności oto, jak dane wyglądają jak rozproszenie 2D:

wprowadź opis zdjęcia tutaj

Czy ktoś wie o lepszym sposobie przedstawiania sparowanych danych z bardzo dużą próbką? Czy możesz połączyć mnie z kilkoma przykładami?

Edytować

Niestety, najwyraźniej nie wykonałem wystarczająco dobrej pracy, tłumacząc, czego szukam. Tak, wykres rozproszenia 2D działa i istnieje wiele sposobów, dzięki którym można go poprawić, aby lepiej przekazać gęstość punktów - mogłem kodować kolorami kropki zgodnie z oszacowaniem gęstości jądra, mogłem zrobić histogram 2D , Mogłem narysować kontury na kropkach itp. Itp.

Myślę jednak, że to przesada w stosunku do wiadomości, którą próbuję przekazać. I naprawdę nie obchodzi przedstawiający gęstość 2D punktów per se - wszystko muszę zrobić, to pokazać, że wartości dla „barów” są na ogół większe niż dla „kropek”, jak w prosty i przejrzysty sposób, jak to możliwe i bez utraty istotnej sparowanej natury danych. Idealnie chciałbym wykreślić sparowane wartości dla dwóch grup wzdłuż tych samych, a nie ortogonalnych osi, ponieważ ułatwia to ich wizualne porównanie.

Może nie ma lepszej opcji niż wykres rozrzutu, ale chciałbym wiedzieć, czy są jakieś alternatywy, które mogłyby zadziałać.

ali_m
źródło
1
Czy próbowałeś po prostu wykreślić odpowiednie wartości barna osi poziomej i dotpionowej jako wykres rozproszenia?
Do Hoffmanna
@TillHoffmann Tak, wspomniałem o tym na końcu mojego pytania. Jest to prawdopodobnie najlepsza opcja, jaką mam w tej chwili, ale wolałbym bardziej zwartą reprezentację, a najlepiej taką, która reprezentuje wartości obu grup wzdłuż tej samej osi (być może jestem nieracjonalnie wymagająca ...). Dodam wykres rozrzutu do mojego pytania.
ali_m
przepraszam, tęskniłem za tym. Jak obecnie generujesz swoje syntetyczne dane?
Do Hoffmann
2
Czy możesz wyjaśnić, co rozumiesz przez „zwartą” reprezentację? Wykres rozrzutu jest wyraźnie lepszy od wszystkich innych pod względem pokazywania relacji, a także indywidualnie nietypowych danych na małym obszarze; rośnie tylko lepiej wraz ze wzrostem rozmiaru zestawu danych. (10 000 nie jest duże jak na wykres rozrzutu.) Wspominasz tak wiele różnych grafik, że nie można wydedukować tego, czego naprawdę potrzebujesz. Podaj nam cel swojej wizualizacji: jakiego rodzaju informacji chcesz się nauczyć lub przekazać innym? Jak dokładnie i szybko zamierzasz być postrzegany i rozumiany?
whuber
1
@whuber Przepraszamy za niejasność. Miałem nadzieję na sposób przedstawienia danych w taki sposób, aby wartości dla obu grup były narysowane wzdłuż tej samej, a nie ortogonalnej osi (ponieważ znajdują się one na wykresach „linii nachylenia” i „linii równoległej”). Wiadomość jest bardzo prosta - że wartości dla „słupków” są na ogół wyższe niż dla „kropek”. Poza tym nie dbam zbytnio o reprezentację gęstości rozkładu, chociaż chciałbym przekazać, że w próbce znajduje się duża liczba par.
ali_m

Odpowiedzi:

7

Biorąc pod uwagę sposób, w jaki rozumiem twój cel, po prostu obliczę sparowane różnice ( bars - dots), a następnie wykreślę te różnice w histogramie lub wykresie szacowania gęstości jądra. Możesz także dodać dowolną kombinację (1) linii pionowej odpowiadającej zerowej różnicy (2) dowolny wybór percentyli.

Podkreśliłoby to, jaką część danych barsprzekroczyło dots, i ogólnie, jakie są zaobserwowane różnice.

(Mam przyjąć, że nie jesteś zainteresowany wyświetlanie rzeczywistych, surowych wartości barsi dotsw tej samej działce).

Można również wykreślić przedział ufności lub późniejsze wiarygodne przedziały, aby wskazać, czy różnice te są znaczące. (H / T @MrMeritology!)

Sean Easter
źródło
Dodając do tej odpowiedzi: możesz również wykreślić przedziały ufności dla sparowanych różnic, które wizualnie wskażą, czy różnice są znaczące, czy nie.
MrMeritology
Przy tak wielu parach może być interesujące sprawdzenie, czy różnica zależy również od „punktu początkowego”, aby dopasować model taki jak a może nawet kwadratowy termin! Graficznie narysuj paisr, jak pokazano, ale ze zmniejszoną alfa i kolorem w zależności od nachylenia.yB=μ+offset(yA)+Δ(yAy¯A
kjetil b halvorsen 25.04.16
2

Przy tak wielu parach masz możliwość dokładniejszego zbadania struktury, na przykład jeśli różnica zależy od „punktu początkowego” !yByAyA

Możesz dopasować model taki jak a nawet możesz dodać kwadratowy wyraz lub można zastąpić wyrażenie liniowe + kwadratowe splajnem za pomocą uogólnionego modelu addytywnego (lub splajnów regresji).

yB=μ+offset(yA)+Δ(yAy¯A)+ϵ
+Δ2(yAy¯A)2

Graficznie możesz pokazać linie tak, jak pokazano, ze zmniejszonym współczynnikiem alfa (*), być może jeszcze bardziej zmniejszając, pokazując tylko losową próbkę linii. Następnie możesz pokolorować linie zgodnie ze spadkiem ...

W przypadku wykresów Blanda-Altmana, wspomnianych w komentarzu Nicka Coxa, patrz na przykład Umowa między metodami z wieloma obserwacjami na osobę lub przeglądanie znacznika.

(*) współczynnik alfa jest tutaj parametrem graficznym, który powoduje, że punkty na wykresie są przezroczyste, więc pierwsze wykreślone punkty nie są całkowicie zasłonięte przez późniejsze wykreślanie.

kjetil b halvorsen
źródło
1
W podobnym duchu, myślę, knując różnicę (A B) w porównaniu ze średnią (A + B) / 2 jest powszechnym urządzeniem w wielu dziedzinach. Nazwa, która utknęła w statystykach medycznych, to „wykresy Blanda-Altmana”, chociaż autorzy, których to dotyczy, nie twierdzili, że są oryginalni, a ich idea sięga przynajmniej 50 lat.
Nick Cox,
1

Wolałbym wykres rozproszenia 2D. Narysowałbym linię odniesienia w kolorze jasnoszarym, aby uzyskać większy kontrast w zatłoczonym regionie. Aby złagodzić zatłoczenie, narysuj znaczniki bez obramowania, jeszcze bardziej zmniejsz alfa, zmniejsz rozmiar znacznika.

To powiedziawszy, jeśli jesteś bardziej zainteresowany typowymi parami niż skrzydłami rozkładu, spróbuj wykreślić liniowo sumę skumulowaną w dotsstosunku do skumulowanej sumy bars. Fabuła jest nadal 2D, ale z dużo mniejszym atramentem. Aby zapisać także obszar kreślenia, możesz obrócić wykres o 45 °, aby rama służyła jako kierunek odniesienia.

Ten wykres pokazuje również dowolny trend w danych. Jeżeli proces jest znany jako stacjonarny, sortowania parami, na przykład, ich średnią geometryczną, sqrt(bars*dots).

Rainald62
źródło
0

Poleciłbym wykreślić linie, jakie masz dla mediany i kwartyli, lub tyle percentyli, ile byś chciał w tej sprawie. Mediana może pozostać grubsza / bardziej dostrzegalna niż inne linie percentyla. Pomogłoby to zachować zdolność do zobaczenia, jak zachowują się dane w całej dystrybucji, bez uszczerbku dla prostoty i znajomości wykresu, który jest obecnie używany w twojej dziedzinie.

Ponadto przy tak dużej próbie prawdopodobnie średnia lub mediana trendu ze słupkami błędów byłaby wystarczająca, ponieważ tak dokładnie cieszyłbyś się twierdzeniem o granicy centralnej. Pole biomedyczne opiera się również na tych sparowanych wykresach liniowych, ale często tak jest, ponieważ wielkość próby może być rzędu 10-20, dlatego ważne jest zwizualizowanie potencjalnych punktów dźwigni.

Łoś
źródło
0

Moja pierwsza sugestia to wykres rozrzutu.

Jeśli 10000 kropek nierównomiernie rozmieszczonych na twojej działce jest nadal niejasną chmurą, rozważ mapę ciepła. Kolor piksela przy x = 10,5, y = 11,5 wskazuje, ile razy wartość między 10,45 a 10,55 jest odwzorowywana na wartość między 11,45 a 11,55: 0 = biały = RGB (255,255,255), 1 = niebieski = RGB (0, 0,255), 2 = RGB (1,0254), ... 256 i więcej = RGB (255,0,0) = czerwony

Dirk Horsten
źródło
Zasadniczo daje mi to ten sam rodzaj reprezentacji, co rozproszenie 2D, z wyjątkiem mniejszej rozdzielczości. Mogę w końcu zrobić coś takiego, ale idealnie liczyłem na bardziej zwartą reprezentację, która wykreśli wartości dla obu grup wzdłuż tej samej osi, a nie osi ortogonalnych.
ali_m
1
Patrząc na swój wykres rozproszenia, widzę, że tracisz dużo informacji w środku „plamy atramentu”. Musisz coś zrobić, stosując transformację (logarytm?) Lub sugerowaną przeze mnie mapę zdrowia.
Dirk Horsten
Przepraszam! Twoja sugestia jest całkowicie rozsądna - po prostu nie wykonałem wystarczająco dobrej pracy, tłumacząc, czego szukam. Tak, dwuwymiarowy wykres (rozproszenie, mapa cieplna, wykres konturowy itp.) Wykonałby dobrą robotę w reprezentowaniu gęstości punktów próbki, ale myślę, że to więcej informacji, niż naprawdę muszę wyświetlić. Wszystko, co muszę zrobić, to pokazać, że wartości dla „słupków” są na ogół wyższe niż dla „kropek”. Szukam najprostszego możliwego sposobu, aby to pokazać, zachowując sparowany charakter danych.
ali_m
Czy przekątna na wykresie cewnika nie wskazuje wystarczająco dobrze kierunku?
Dirk Horsten
Nie, ale może mam nieuzasadnione oczekiwania :-)
ali_m