Jaka jest najlepsza wizualizacja tabel awaryjnych?

22

Który wykres jest najlepszy z statystycznego punktu widzenia, aby pokazać tabelę zdarzeń awaryjnych , która jest zazwyczaj analizowana za pomocą testu chi-kwadrat? Czy jest to unikalny wykres słupkowy, ułożony wykres słupkowy, mapa termiczna, wykres konturowy, jitterred scatterplot, wykres z wieloma liniami czy coś innego? Czy należy pokazywać wartości bezwzględne lub wartości procentowe?

Edycja: Lub, jak sugeruje @forecaster w komentarzach, sama tabela liczb jest prostą fabułą i powinna wystarczyć.

rnso
źródło
4
Czasami tabela danych jest najlepszą metodą wizualizacji w porównaniu do wykresów. Tabele nieprzewidziane jest tego klasycznym przykładem.
przepowiednia
1
Ważna uwaga, choć nie zgadzam się, że zawsze jest to najlepsza opcja.
rnso
1
Dlatego powiedziałem „czasami”. Polecam, Stephen Few's Pokaż mi liczby z całą sekcją poświęconą tabelom.
prezenter
1
cóż, najlepsza metoda zależy od tego, co chcesz pokazać, jak duży jest stół, bez pewnych szczegółów jest to zbyt szerokie!
kjetil b halvorsen
3
Większość statystyk stats.stackexchange.com/questions/56322/... wydaje się tutaj mieć znaczenie .
Nick Cox,

Odpowiedzi:

9

Nie będzie tutaj jednego uniwersalnego rozwiązania. Jeśli masz bardzo prosty stół (np. ), po prostu przedstawienie stołu jest prawdopodobnie najlepsze. Jeśli chcesz prawdziwej figury, mozaiki (jak sugeruje @xan) są prawdopodobnie dobrym miejscem na rozpoczęcie. Istnieje kilka innych opcji, które są analogiczne do wykresów mozaikowych, w tym wykresy sitowe, wykresy asocjacyjne i wykresy ciśnienia dynamicznego (patrz moje pytanie tutaj: Alternatywa dla wykresów sitowych / mozaikowych dla tabel awaryjnych ); Książka Michaela Friendlya, Visualizing Categorical Data , byłaby dobrym zasobem (opartym na SAS) na ten temat, a pakiet vcd jest dobrym zasobem do wdrożenia tych pomysłów w R. 2)×2)

Ponieważ tabele mają większą liczbę wierszy i kolumn, moim zdaniem stają się one trudniejsze w użyciu. Innym rodzajem opcji wizualizacji jest wykonanie / wykreślenie analizy korespondencji . Analiza korespondencji jest analogiczna do przeprowadzania analizy głównych składników zarówno w wierszach, jak i kolumnach tabeli awaryjnej. Następnie oba są wykreślane razem z dwupłatem. Oto przykład oparty na R, wykorzystujący dane z odpowiedzi @ xan:

library(ca)
tab = as.table(rbind(c(28, 4,  0, 56),
                     c(38, 5,  9, 10),
                     c( 6, 6, 14, 13) ))
names(dimnames(tab)) = c("activity", "period")
rownames(tab)        = c("feed", "social", "travel")
colnames(tab)        = c("morning", "noon", "afternoon", "evening")
tab
#         period
# activity morning noon afternoon evening
#   feed        28    4         0      56
#   social      38    5         9      10
#   travel       6    6        14      13
plot(ca(tab))

wprowadź opis zdjęcia tutaj

Aby zinterpretować ten wykres, im bliżej znajdują się dwa punkty tego samego typu, tym bardziej podobne są te dwa profile wierszy / kolumn. Im bliżej znajdują się dwa punkty różnych typów, tym większa ich masa prawdopodobieństwa znajduje się w komórce reprezentującej ich przecięcie.

W R znajduje się pakiet ca ; ta winieta ( pdf ) również może być pomocna.

gung - Przywróć Monikę
źródło
Bardzo przydatne. Najwyraźniej zawodzi przy małych wartościach, np .: tt = with (mtcars, table (factor (gear), factor (vs))); wykres (ca (tt)); Błąd w x [, dim]: indeks dolny poza zakresem
rnso
Jest tak, ponieważ jeden z czynników (tj. factor(vs)) Ma tylko dwa poziomy; potrzebujesz co najmniej trzech. Spróbować ttt = with(mtcars, table(factor(gear), factor(cyl))); plot(ca(ttt)).
Gung - Przywróć Monikę
Bardzo dobry obraz relacji między różnymi czynnikami.
rnso
Lub możesz wyświetlić tabelę po zmianie kolejności wierszy i kolumn w kolejności wyników analizy korespondencji.
kjetil b halvorsen
Ciekawy pomysł, @kjetilbhalvorsen. Nie jestem pewien, jak to zrobić z caobiektu, więc kodowałem go od zera. O ile nie popełniłem błędu, zmieniasz kolejność wierszy c(1,3,2)i kolumn c(4,1,3,2). Po tym nie jestem pewien, co powinienem tutaj zobaczyć. Co masz na myśli?
gung - Przywróć Monikę
11

Różne elementy wizualne lepiej podkreślą różne funkcje, ale wykresy mozaikowe dobrze sprawdzają się w widoku ogólnym (sprawdzanie, czy coś się wyróżnia). Może właśnie to miałeś na myśli przez uchylony wykres słupkowy. Jak większość opcji, nie są one symetryczne, ponieważ reprezentują częstotliwości względne lepiej w jednym wymiarze niż w drugim. Fajną cechą jest to, że reprezentowane są również częstotliwości krańcowe.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Xan
źródło
To jest dobre. Przedstawione są zarówno liczby, jak i proporcje. Numery można również umieszczać na działce. Jeśli ułożona zostanie kolejność elementów na osi X, będzie ona wyglądać jeszcze lepiej. Przez unik miałem na myśli wspólny wykres słupkowy z kategoriami obok siebie, a nie jeden na drugim (patrz pozycja = „unik” na tej stronie: r-bloggers.com/using-r-barplot-with-ggplot2 ).
rnso
1
+1 Ten projekt często działa bardzo dobrze w przypadku stosunkowo prostych danych ; i odwrotnie, odkryłem, że szybko staje się trudno myśleć o bardziej skomplikowanych danych, pomimo dużego nacisku w literaturze na ich rozszerzalność na tablice nieprzewidziane o dowolnym wymiarze. Mimo to żaden projekt nie działa dobrze w takich okolicznościach. Mały przykład w tym przykładzie jest taki, że wydaje się, że zaakceptowałeś domyślną kolejność alfabetyczną „popołudnie” ... „południe” oferowane przez twój program, podczas gdy zachowanie kolejności czasowej wydaje się bardziej naturalnym wyborem.
Nick Cox,
8

Zgadzam się, że „najlepsza” fabuła nie istnieje niezależnie od zbioru danych, czytelnictwa i celu. W przypadku dwóch mierzonych zmiennych wykresy rozrzutu są prawdopodobnie konstrukcją, która pozostawia po sobie wszystkie inne, z wyjątkiem określonych celów, ale żaden taki lider rynku nie jest widoczny w przypadku danych kategorycznych.

Moim celem jest tutaj tylko wspomnienie prostej metody, często odkrywanej lub wymyślanej na nowo, ale jednak często pomijanej nawet w monografiach lub podręcznikach obejmujących grafikę statystyczną.

Przykład pierwszy, obejmujący te same dane, które opublikował xan:

wprowadź opis zdjęcia tutaj

Jeśli pożądane jest imię, jak to często bywa, jest to dwuwymiarowy wykres słupkowy (w tym przypadku). Nie będę tutaj katalogować innych terminów, z wyjątkiem tego, że wiele wykresów słupkowych jest jedną z popularnych alternatyw o podobnym smaku. (Mój mały sprzeciw wobec „wielokrotnego wykresu słupkowego” jest taki, że „wielokrotność” nie wyklucza bardzo powszechnych wykresów słupkowych ułożonych w stos lub obok siebie, podczas gdy „twoway” dla mnie wyraźniej implikuje układ wierszy i kolumn, chociaż z kolei może podać przykłady, aby to wyjaśnić).

Plusy i minusy dla tego rodzaju fabuły są również proste, ale przeliteruję trochę. Ponieważ lubię ten projekt (który sięga przynajmniej lat 30. XX wieku), inni mogą chcieć dodać ostrzejszą krytykę.

+1. Pomysł jest łatwy do zrozumienia , nawet przez grupy nietechniczne. Wysokości prętów lub długości prętów kodują częstotliwości w tym przykładzie. W innych przykładach mogą kodować procenty obliczone w dowolny sposób, reszty itp.

+2 Struktura wierszy i kolumn jest zgodna ze strukturą tabeli . Możesz także dodać wartości liczbowe. Bardzo małe ilości, a nawet domniemane zera są wyraźnie widoczne, co nie zawsze ma miejsce w przypadku innych wzorów (np. Skumulowane wykresy słupkowe, wykresy mozaikowe). Etykietowanie wierszy i kolumn jest zwykle bardziej wydajne niż dodawanie klucza lub legendy, co wymaga mentalnego „w przód i w tył”. W ten sposób ten projekt hybrydyzuje pomysły na wykresy i tabele, co najwyraźniej niepokoi niektórych czytelników; przeciwnie, argumentowałbym, że wyraźne rozróżnienie między figurami a tabelami to tylko historyczne kaciki, przestarzałe, ponieważ badacze mogą przygotowywać własne dokumenty i nie muszą polegać na projektantach, kompozytorach i drukarkach.

+3. Rozszerzenia konstrukcji trójdrożnych i wyższych są w zasadzie łatwe . Umieść dwie lub więcej zmiennych jako zmienne złożone na jednej lub obu osiach lub podaj tablicę takich wykresów. Oczywiście im bardziej skomplikowany projekt, tym bardziej skomplikowana interpretacja.

+4. Projekt wyraźnie dopuszcza zmienne porządkowe na każdej osi. Porządek można wyrazić (np.) Poprzez odpowiednie zacienienie, a także porządek kategorii na tej osi. Porządek kategorii na osiach można ustalić na podstawie ich znaczenia lub lepiej na podstawie częstotliwości; kolejność alfabetyczna według etykiet tekstowych może być domyślna, ale nigdy nie powinna być jedynym rozważanym wyborem.

-1. Działając ogólnie w projekcie, fabuła może być mniej skuteczna w pokazywaniu pewnych rodzajów relacji . W szczególności mozaikowa fabuła może bardzo wyraźnie wyjaśnić odstępstwa od niepodległości. I odwrotnie, gdy relacje między zmiennymi kategorialnymi są skomplikowane lub niejasne, wówczas zazwyczaj żaden wykres nie jest dobry w ukazaniu więcej niż tego słabego faktu.

-2. Pod pewnymi względami projekt nieefektywnie wykorzystuje przestrzeń , pozostawiając miejsce dla każdej kombinacji krzyżowej, niezależnie od tego, czy i jak często. Jest to wadą tej samej zasady uważanej za cnotę. Konkretny projekt nad kategoriami przestrzeni jednakowo niezależnie od ich częstotliwości; poświęcenie, które często poświęca czytelne marginalne etykiety, które bardzo cenię. W tym przykładzie etykiety tekstowe są bardzo krótkie, ale nie jest to typowe.

Uwaga: dane Xana wyglądają na wymyślone, więc nie będę próbował interpretacji bardziej niż w przypadku innych odpowiedzi. Ale pewna mądrość domowa zasługuje na ostatnie słowo: najlepszy projekt dla ciebie to taki, który najlepiej przekazuje tobie i twoim czytelnikom strukturę niektórych prawdziwych danych, na których ci zależy.

Inne przykłady obejmują

Jak możesz wyobrazić sobie związek między 3 zmiennymi kategorycznymi?

Wykres zależności między dwiema zmiennymi porządkowymi

Nick Cox
źródło
1
+1 za kolejną wykonalną opcję i świetną dyskusję. Pozwól, że zadam pytanie o dwukierunkowe wykresy słupkowe / wskaż inny możliwy minus: istnieje nieoznakowane, ale wyraźnie widoczne „pole”, w którym można wykreślić słupki. Gdy pasek zbliża się do górnej części pudełka, osiąga 100%. Jak określa się tę wartość? (Uwaga: tabele nieprzewidziane są zawsze w pewnym sensie wielomianowe, w / ze znaną sumą.) Utworzenie górnej części sumy wiersza lub sumy kolumn będzie promować różne wnioskowania percepcyjne. (Nie wydaje się, aby używana była suma tabeli, ponieważ wiele taktów byłoby zbyt małych, aby je rozróżnić.)
Gung - Przywróć Monikę
1
@gung Dzięki. Mogę komentować własny program Stata, użyty tutaj i w moich przykładach w innym miejscu w CV. Program pochodzi tabplotz SSC. Wysokość prętów stanowi koniecznie ułamek wysokości najwyższego lub najdłuższego pręta; ilość dostępnego miejsca zależy od liczby wyświetlanych wierszy. Użytkownik może zastąpić domyślny rozmiar luki, ale ryzykuje, że paski się zetkną lub zasłoną. Jeśli słupki mogą być zarówno ujemne, jak i dodatnie, rzeczy nie są łatwiejsze. Wyobrażam sobie, że to samo ograniczenie gryzie z każdym innym programem. Krótko mówiąc, nie dotykające się paski oznaczają białe pola!
Nick Cox,
8

Aby uzupełnić odpowiedzi @ gung i @ xan, oto przykład wykresów mozaikowych i asocjacyjnych używanych vcdw R.

> tab
        period
activity morning noon afternoon evening
  feed        28    4         0      56
  social      38    5         9      10
  travel       6    6        14      13

Aby uzyskać działki:

require(vcd)
mosaic(tab, shade=T, legend=T)
assoc(tab, shade=T, legend=T)

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Obie intuicyjnie przedstawiają odstępstwa od oczekiwanych częstotliwości ... Domyślnie jest to model wzajemnej niezależności , ale można go zmienić (np. Na wspólną niezależność, jeśli istnieje wyraźna zmienna odpowiedzi) za pomocą expectedargumentu.

Zobacz też:

landroni
źródło