Mam 82 respondentów w 2 grupach (43 w grupie A i 39 w grupie B), którzy wypełnili ankietę obejmującą 65 pytań Likerta w zakresie od 1 do 5 (zdecydowanie się zgadzam - zdecydowanie się nie zgadzam). Mam zatem ramkę danych z 66 kolumnami (1 dla każdego pytania + 1 wskazująca przydział grupy) i 82 wierszami (1 dla każdego respondenta).
Używając R lub SPSS, ktoś zna dobry sposób na wizualizację tych danych.
Potrzebuję czegoś takiego:
(od Jasona Bryera )
Ale nie mogę uruchomić początkowej sekcji kodu. Alternatywnie znalazłem naprawdę dobre przykłady wizualizacji danych Likerta z poprzedniego postu Zweryfikowany krzyżowo: Wizualizacja danych odpowiedzi na pytanie Likerta, ale nie ma przewodników ani instrukcji, jak tworzyć te wyśrodkowane wykresy zliczania lub skumulowane wykresy słupkowe za pomocą R lub SPSS.
źródło
Odpowiedzi:
Jeśli naprawdę chcesz używać skumulowanych wykresów słupkowych z tak dużą liczbą przedmiotów, oto dwa możliwe rozwiązania.
Za pomocą
irutils
Kilka miesięcy temu natknąłem się na ten pakiet.
Począwszy od zatwierdzenia 0573195c07 w Github , kod nie będzie działał z
grouping=
argumentem. Chodźmy na piątkową sesję debugowania.Zacznij od pobrania skompresowanej wersji z Github. Musisz zhakować
R/likert.R
plik, w szczególności funkcjelikert
iplot.likert
. Najpierw używana jest funkcja inlikert
,cast()
alereshape
pakiet nigdy nie jest ładowany (chociażimport(reshape)
wNAMESPACE
pliku znajduje się instrukcja ). Możesz to załadować wcześniej. Po drugie, jest błędny dyspozycja sprowadzić pozycje etykiet, gdziei
jest zwisające wokół linii 175. To musi być stała, a także, na przykład poprzez zastąpienie wszystkich wystąpieńlikert$items[,i]
zlikert$items[,1]
. Następnie możesz zainstalować pakiet w sposób, w jaki jesteś przyzwyczajony na swoim komputerze. Na moim komputerze Mac tak zrobiłemNastępnie, używając R, spróbuj wykonać następujące czynności:
To powinno po prostu działać, ale renderowanie wizualne będzie okropne z powodu dużej liczby elementów. Działa jednak bez grupowania (np.
plot(likert(resp))
).Proponuję zatem zredukować zestaw danych do mniejszych podzbiorów pozycji. Np. Używając 12 przedmiotów
Dostaję „czytelny” skumulowany wykres słupkowy. Prawdopodobnie możesz je później przetworzyć. (Są to
ggplot2
obiekty, ale zgridExtra::grid.arrange()
powodu problemów z czytelnością nie będziesz w stanie rozmieścić ich na jednej stronie !)Alternatywne rozwiązanie
Chciałbym zwrócić uwagę na inny pakiet, HH , który pozwala na wykreślanie skal Likerta jako rozbieżnych stosów wykresów słupkowych. Możemy ponownie użyć powyższego kodu, jak pokazano poniżej:
ale to trochę skomplikuje, ponieważ musimy przekonwertować częstotliwości na liczby, podzbiór
likert
wytworzonego obiektuirutils
, odłączyć pakiet itp. Zacznijmy więc od świeżych (zliczających) statystyk:Aby użyć zmiennej grupującej, musisz pracować z
array
wartościami liczbowymi.Spowoduje to utworzenie dwóch oddzielnych paneli, ale zmieści się na jednej stronie.
Edytuj 2016-6-3
źródło
HH::as.pyramidLikert
.t(apply(resp, 2, table))
jet(apply(resp, 2, table))[,levels(resp[,1])]
. I tobie też +1!Zacząłem pisać post na blogu o odtwarzaniu wielu wykresów w poście, o którym wspomniałeś ( Wizualizowanie danych odpowiedzi na pytania Likerta ) w SPSS, więc przypuszczam, że będzie to dobra motywacja do jego ukończenia.
Jak zauważa Michelle, fakt, że masz grupy, stanowi nowy zwrot w porównaniu z poprzednimi pytaniami. I chociaż grupy można wziąć pod uwagę przy użyciu skumulowanych wykresów słupkowych, IMO są one o wiele łatwiej włączone do przykładowego wykresu punktowego w oryginalnym poście chl. Dodałem kod SPSS, aby wygenerować to na końcu postu, w zasadzie wymaga wiedzy, jak przekształcić dane w odpowiednim formacie, aby wygenerować wspomnianą fabułę (adnotacja podana w kodzie, miejmy nadzieję, że część z tego wyczyści). Tutaj użyłem zbędnego kodowania (koloru i kształtu), aby rozróżnić punkty pochodzące z dwóch grup, i sprawiłem, że punkty są półprzezroczyste, abyś mógł określić, kiedy się pokrywają (inną opcją byłoby unikanie punktów, gdy się pokrywają).
Dlaczego jest to lepsze niż skumulowane wykresy słupkowe? Skumulowane wykresy słupkowe kodują informacje o długości słupków. Podczas próby porównania długości prętów, w obrębie tej samej kategorii osi lub między panelami, układanie w stosy wyklucza, aby pręty miały wspólną skalę. Na przykład podałem obraz na ryc. 2, na którym dwa paski są umieszczone na wykresie, w którym ich początkowe położenie jest inne, który pasek jest szerszy (wzdłuż osi poziomej)?
Porównaj to z wykresem na rycinie 3 poniżej, na którym dwa pręty (o tej samej długości) są wykreślone z tego samego punktu początkowego. Celowo sprawiłem, że zadanie było trudne, ale powinieneś być w stanie stwierdzić, który z nich jest dłuższy.
Skumulowane wykresy słupkowe robią zasadniczo to, co pokazano na rysunku 2. Wykresy punktowe można uznać za bardziej podobne do tego, co pokazano na rysunku 3, wystarczy zastąpić pasek kropką na końcu paska.
Nie powiem, że nie generuj żadnego konkretnego wykresu do eksploracyjnej analizy danych, ale sugerowałbym unikanie skumulowanych wykresów słupkowych przy użyciu tak wielu kategorii. Wykresy punktowe też nie są panaceum, ale uważam, że porównywanie paneli z wykresami punktowymi jest znacznie łatwiejsze niż w przypadku skumulowanych wykresów słupkowych. Zastanów się również nad niektórymi radami, które zamieszczam na moim blogu, aby znaleźć tabele, spróbuj uporządkować i / lub rozdzielić wykresy na znaczące kategorie i upewnij się, że elementy, które chcesz obejrzeć w tandemie, są bliżej siebie na wykresach. Podczas gdy niektóre metody kreślenia mogą dobrze skalować się do wielu pytań (przykładowe są mapy jakościowe), bez sortowania nadal trudno będzie zidentyfikować jakiekolwiek znaczące wzorce (poza oczywistymi wartościami odstającymi).
Uwaga na temat używania SPSS. SPSS może generować dowolne z poprzednich linków powiązanych z wykresami, chociaż często wymaga znajomości kształtowania danych (to samo dotyczy ggplot, ale ludzie opracowywali pakiety, aby zasadniczo wykonać dla ciebie przekształcenie). Aby zrozumieć, jak działa lepiej język GPL SPSS, sugerowałbym przeczytanie książki Hadleya Wickhama na ggplot2w Use R! seria. Ustanawia gramatykę niezbędną do zrozumienia działania GPL SPSS i jest znacznie łatwiejszy do odczytania niż podręcznik programowania GPL dostarczany z SPSS! Jeśli masz jakieś pytania dotyczące generowania określonych wykresów w SPSS, najlepiej zadać jedno pytanie dla jednego wykresu (mówiłem już wystarczająco dużo tutaj!) Zaktualizuję tę odpowiedź linkiem, ale jeśli kiedykolwiek zacznę tworzyć post na blogu replikujący niektóre inne wykresy. Aby sprawdzić koncepcję map cieplnych lub wykresów fluktuacji, możesz zobaczyć inny mój post na blogu, na przykład Corrgrams w SPSS .
Kod SPSS użyty do wygenerowania rysunku 1
źródło
No cóż, wymyśliłem kod, zanim wyjaśniłeś. Powinienem poczekać, ale pomyślałem, że powinienem to opublikować, aby każdy, kto tu przyjdzie, mógł ponownie użyć tego kodu.
Atraktyczne dane do wizualizacji
Kod dla mapy cieplnej
Jest to w zasadzie szablon wizualizacji przedmiotów Likerta na mapie cieplnej ze strony Jasona Bryona.
źródło
Kod @ RJ tworzy taki wykres, który jest tak naprawdę tabelą z zacienionymi komórkami. Jest raczej zajęty i nieco trudny do rozszyfrowania. Zwykły stół bez cieniowania może być bardziej skuteczny (i można również umieścić dane w bardziej znaczącej kolejności).
Oczywiście zależy to od głównego komunikatu, który próbujesz przekazać, ale myślę, że jest to prostsze i nieco łatwiejsze do zrozumienia. Ma także pytania i odpowiedzi w (najczęściej!) Logicznej kolejności.
źródło