Mam pewne dane, które muszę wizualizować i nie jestem pewien, jak najlepiej to zrobić. Mam pewien zestaw elementów podstawowych o odpowiednich częstotliwościach i wyniki O \ w \ {0,1 \} ^ n . Teraz muszę wykreślić, jak dobrze moja metoda „znajduje” (tj. Wynik 1) elementy niskiej częstotliwości. Początkowo miałem po prostu oś x częstotliwości i oś y 0-1 z wykresami punktowymi, ale wyglądało to okropnie (szczególnie przy porównywaniu danych z dwóch metod). Oznacza to, że każdy element q \ w Q ma wynik (0/1) i jest uporządkowany według częstotliwości.F = { f 1 , ⋯ , f n } q ∈ Q
Oto przykład z wynikami jednej metody:
Moim następnym pomysłem było podzielenie danych na przedziały i obliczenie lokalnej czułości w przedziałach, ale problem z tym pomysłem polega na tym, że rozkład częstotliwości niekoniecznie jest jednolity. Jak więc najlepiej wybrać interwały?
Czy ktoś wie o lepszym / bardziej użytecznym sposobie wizualizacji tego rodzaju danych w celu przedstawienia skuteczności znajdowania rzadkich (tj. Bardzo niskiej częstotliwości) przedmiotów?
EDYCJA: Aby być bardziej konkretnym, pokazuję zdolność jakiejś metody do rekonstrukcji sekwencji biologicznych pewnej populacji. W celu walidacji z wykorzystaniem danych symulowanych muszę wykazać zdolność do rekonstrukcji wariantów niezależnie od ich liczebności (częstotliwości). W tym przypadku wizualizuję pominięte i znalezione przedmioty, uporządkowane według częstotliwości. Ten wykres nie będzie zawierała zrekonstruowane warianty, które nie są w .
źródło
Odpowiedzi:
To, co zrobiłem w przeszłości, jest w zasadzie tym, co zrobiłeś z dodatkiem lessu . W zależności od gęstości punktów użyłbym przezroczystych punktów (alfa), jak pokazano poniżej i / lub symboli rur („|”), aby zminimalizować nakładanie się.
(Nie sądzę, że paski błędów powinny się tutaj rozszerzać, ale nie jest to łatwy sposób, aby to zrobić za pomocą wewnętrznej funkcji stat_smooth ggplota. Jeśli użyłbyś tej metody dla liczb rzeczywistych w R, moglibyśmy to zrobić przez oszacowanie lessu i jego paska błędów przed wydrukowaniem).
( Edycja: I plusy za komentarze Andy'ego W. na temat próbowania pionowego jittera, jeśli gęstość danych sprawia, że jest to użyteczne, i od Mimshota o odpowiednich przedziałach ufności.)
źródło
geom_point(size=2, alpha=0.4)
zgeom_jitter(size=2, alpha=0.4, position = position_jitter(height = .02))
.ggplot2
na dostarczenie prawidłowych elementów CI? Mam spisek z CI, poza[0,1]
którym wyraźnie pochodzą z niewłaściwych obliczeńZastanów się także, które skale są najbardziej odpowiednie dla twojego przypadku użycia. Załóżmy, że przeprowadzasz kontrolę wizualną w celu modelowania w regresji logistycznej i chcesz wizualizować ciągły predyktor, aby ustalić, czy chcesz dodać do modelu model spline lub wielomianowy. W takim przypadku może być potrzebna skala logarytmicznych szans, a nie prawdopodobieństwa / proporcji.
Funkcja znajdująca się na poniższej liście używa pewnych ograniczonych heurystyk do dzielenia ciągłego predyktora na przedziały, obliczania średniej proporcji, przeliczania na logarytmiczne szanse, a następnie kreślenia
geom_smooth
tych punktów sumarycznych.Przykład tego wykresu, jeśli zmienna towarzysząca ma kwadratowy związek (+ szum) z logarytmicznym prawdopodobieństwem celu binarnego:
Utworzono 2019-02-06 przez pakiet reprezentx (v0.2.1)
Dla porównania, oto jak wyglądałaby ta kwadratowa relacja, gdybyś po prostu wykreślił cyfry 1/0 i dodał
geom_smooth
:Utworzono 25.02.2019 przez pakiet reprezentx (v0.2.1)
Związek z logowaniem jest mniej wyraźny, a używanie
geom_smooth
ma pewne problemy.źródło
Zgadzam się, że opublikowanie zaledwie kilku wierszy przykładowych danych przeszedłoby długą drogę. Jeśli rozumiem pytanie, myślę, że najłatwiej byłoby wykreślić częstotliwość według znalezionego odsetka.
Najpierw wygeneruję kilka przykładowych danych w języku R; popraw mnie, jeśli nie zrozumiałem cię poprawnie.
A teraz po prostu wykreśl częstotliwość (
F
)proportion
:źródło