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:
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):
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:
Ale jeszcze trudniej jest sprawić, aby tego rodzaju fabuła wyglądała dobrze, gdy jest bardzo duży:
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:
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ć.
bar
na osi poziomej idot
pionowej jako wykres rozproszenia?Odpowiedzi:
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
bars
przekroczyłodots
, i ogólnie, jakie są zaobserwowane różnice.(Mam przyjąć, że nie jesteś zainteresowany wyświetlanie rzeczywistych, surowych wartości
bars
idots
w 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!)
źródło
Przy tak wielu parach masz możliwość dokładniejszego zbadania struktury, na przykład jeśli różnica zależy od „punktu początkowego” !yb-yZA yZA
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= μ + przesunięcie (yZA) + Δ (yZA-y¯ZA) + ϵ +Δ2)(yZA-y¯ZA)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 znacznikanijak-altman-fabuła.
(*) 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.
źródło
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
dots
stosunku do skumulowanej sumybars
. 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)
.źródło
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.
źródło
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
źródło