Was ist ein geeignetes Diagramm, um die Beziehung zwischen zwei Ordnungsvariablen zu veranschaulichen?
Ein paar Möglichkeiten, die mir einfallen:
- Streudiagramm mit zufälligem Jitter, um zu verhindern, dass sich Punkte gegenseitig verbergen. Anscheinend eine Standardgrafik - Minitab nennt dies ein "Einzelwertdiagramm". Meiner Meinung nach kann dies irreführend sein, da es visuell eine Art lineare Interpolation zwischen Ordnungswerten fördert, als ob die Daten von einer Intervallskala stammen würden.
- Das Streudiagramm wurde so angepasst, dass die Größe (Fläche) des Punkts die Häufigkeit dieser Kombination von Ebenen darstellt, anstatt einen Punkt für jede Abtasteinheit zu zeichnen. Ich habe solche Pläne gelegentlich in der Praxis gesehen. Sie können schwer zu lesen sein, aber die Punkte liegen auf einem Gitter mit regelmäßigen Abständen, was die Kritik des Diagramms mit zitternden Streuungen, das die Daten visuell "intervallisiert", ein wenig überwindet.
- Insbesondere wenn eine der Variablen als abhängig behandelt wird, wird ein Boxplot nach den Ebenen der unabhängigen Variablen gruppiert. Sieht wahrscheinlich furchtbar aus, wenn die Anzahl der Stufen der abhängigen Variablen nicht hoch genug ist (sehr "flach" mit fehlenden Whiskern oder noch schlimmer kollabierten Quartilen, was die visuelle Identifizierung des Medians unmöglich macht), lenkt aber zumindest die Aufmerksamkeit auf den Median und die Quartile, die es gibt relevante deskriptive Statistik für eine Ordinalvariable.
- Wertetabelle oder leeres Zellenraster mit Wärmekarte zur Angabe der Häufigkeit. Optisch anders, aber konzeptionell dem Streudiagramm ähnlich, wobei die Punktfläche die Frequenz anzeigt.
Gibt es andere Ideen oder Überlegungen, welche Handlungen vorzuziehen sind? Gibt es Forschungsbereiche, in denen bestimmte Ordinal-gegen-Ordinal-Diagramme als Standard gelten? (Ich scheine mich an eine Frequenz-Heatmap zu erinnern, die in der Genomik weit verbreitet ist, vermute aber, dass dies häufiger für nominal-vs-nominal gilt.) Vorschläge für eine gute Standardreferenz wären ebenfalls sehr willkommen, ich vermute etwas von Agresti.
Wenn jemand mit einem Plot illustrieren möchte, folgt der R-Code für falsche Beispieldaten.
"Wie wichtig ist Bewegung für dich?" 1 = überhaupt nicht wichtig, 2 = etwas unwichtig, 3 = weder wichtig noch unwichtig, 4 = etwas wichtig, 5 = sehr wichtig.
"Wie oft laufen Sie 10 Minuten oder länger?" 1 = nie, 2 = weniger als einmal pro Woche, 3 = einmal alle ein oder zwei Wochen, 4 = zwei oder drei Mal pro Woche, 5 = vier oder mehr Mal pro Woche.
Wenn es natürlich wäre, "oft" als abhängige Variable und "Wichtigkeit" als unabhängige Variable zu behandeln, wenn ein Plot zwischen beiden unterscheidet.
importance <- rep(1:5, times = c(30, 42, 75, 93, 60))
often <- c(rep(1:5, times = c(15, 07, 04, 03, 01)), #n=30, importance 1
rep(1:5, times = c(10, 14, 12, 03, 03)), #n=42, importance 2
rep(1:5, times = c(12, 23, 20, 13, 07)), #n=75, importance 3
rep(1:5, times = c(16, 14, 20, 30, 13)), #n=93, importance 4
rep(1:5, times = c(12, 06, 11, 17, 14))) #n=60, importance 5
running.df <- data.frame(importance, often)
cor.test(often, importance, method = "kendall") #positive concordance
plot(running.df) #currently useless
Eine verwandte Frage für stetige Variablen fand ich hilfreich, vielleicht ein nützlicher Ausgangspunkt: Was sind Alternativen zu Streudiagrammen, wenn man die Beziehung zwischen zwei numerischen Variablen untersucht?
Antworten:
Ein Wirbelsäulenplot (Mosaikplot) eignet sich gut für die Beispieldaten, kann jedoch schwierig zu lesen oder zu interpretieren sein, wenn einige Kombinationen von Kategorien selten sind oder nicht existieren. Natürlich ist es vernünftig und zu erwarten, dass eine niedrige Frequenz durch eine kleine Kachel und eine Null durch keine Kachel repräsentiert wird, aber die psychologischen Schwierigkeiten können bestehen bleiben. Es ist auch natürlich, dass Leute, die Spineplots mögen, Beispiele auswählen, die gut für ihre Artikel oder Präsentationen geeignet sind, aber ich habe oft Beispiele hervorgebracht, die zu chaotisch waren, um sie in der Öffentlichkeit zu verwenden. Umgekehrt nutzt ein Spineplot den verfügbaren Platz gut aus.
Einige Implementierungen setzen interaktive Grafiken voraus, sodass der Benutzer jede Kachel abfragen kann, um mehr darüber zu erfahren.
Eine Alternative, die auch gut funktionieren kann, ist ein Zwei-Wege-Balkendiagramm (es gibt viele andere Namen).
Siehe zum Beispiel
tabplot
innerhalb http://www.surveydesign.com.au/tipsusergraphs.htmlFür diese Daten ist ein möglicher Plot (erstellt mit
tabplot
Stata, sollte aber in jeder anständigen Software einfach sein)Das Format bedeutet, dass es einfach ist, einzelne Balken mit Zeilen- und Spaltenkennungen zu verknüpfen und mit Häufigkeiten, Proportionen oder Prozenten zu versehen (tun Sie dies natürlich nicht, wenn Sie der Meinung sind, dass das Ergebnis zu beschäftigt ist).
Einige Möglichkeiten:
Wenn eine Variable als Prädiktor für eine Antwort auf eine andere angesehen werden kann, sollte sie wie gewohnt auf der vertikalen Achse aufgetragen werden. Hier betrachte ich "Wichtigkeit" als Messung einer Haltung, die Frage ist dann, ob sie das Verhalten beeinflusst ("oft"). Das kausale Problem ist selbst für diese imaginären Daten oft komplizierter, aber der Punkt bleibt.
Vorschlag Nr. 1 ist immer zu übertreffen, wenn das Gegenteil besser funktioniert, das heißt, es ist einfacher, darüber nachzudenken und zu interpretieren.
Prozentuale oder wahrscheinlichkeitsbezogene Ausfälle sind oft sinnvoll. Eine Darstellung der Rohfrequenzen kann ebenfalls nützlich sein. (Natürlich fehlt dieser Darstellung die Tugend von Mosaikzeichnungen, beide Arten von Informationen gleichzeitig anzuzeigen.)
Sie können natürlich auch die (viel häufigeren) Alternativen von gruppierten Balkendiagrammen oder gestapelten Balkendiagrammen (oder die noch recht seltenen gruppierten Punktdiagramme im Sinne von WS Cleveland) ausprobieren. In diesem Fall denke ich, dass sie nicht so gut funktionieren, aber manchmal funktionieren sie besser.
Einige möchten möglicherweise unterschiedliche Antwortkategorien unterschiedlich färben. Ich habe keine Einwände, und wenn Sie das wollen, würden Sie Einwände in keiner Weise ernst nehmen.
Die Strategie, Diagramm und Tabelle zu hybridisieren, kann allgemeiner oder gar nicht sinnvoll sein. Ein oft wiederholtes Argument ist, dass die Trennung von Abbildungen und Tabellen nur ein Nebeneffekt der Erfindung des Drucks und der damit verbundenen Arbeitsteilung war. es ist wieder unnötig, genauso wie es für Manuskriptautoren war, Illustrationen genau so zu platzieren, wie und wo sie es mochten.
quelle
Hier ist ein kurzer Versuch einer Heatmap . Ich habe schwarze Zellränder verwendet, um die Zellen aufzubrechen, aber vielleicht sollten die Kacheln mehr wie in Glen_bs Antwort getrennt werden.
Hier ist ein Fluktuationsdiagramm, das auf einem früheren Kommentar von Andy W. basiert. Wie er sie beschreibt, "handelt es sich im Grunde genommen nur um gruppierte Streudiagramme für kategoriale Daten, und die Größe eines Punkts wird der Anzahl der Beobachtungen zugeordnet, die in diesen Bereich fallen." Eine Referenz finden Sie unter
quelle
Hier ist ein Beispiel, wie ein Spineplot der Daten aussehen würde. Ich habe das in Stata ziemlich schnell gemacht, aber es gibt eine R-Implementierung . Ich denke in R sollte es nur sein:
spineplot(factor(often)~factor(importance))
Das Spineplot scheint tatsächlich die Standardeinstellung zu sein, wenn Sie R kategoriale Variablen angeben:
plot(factor(often)~factor(importance))
Für jede Kategorie von Bedeutung wird die gebrochene Aufteilung der Kategorien von oft angezeigt. Gestapelte Balken werden mit einer vertikalen Abmessung gezeichnet, die den Bruchteil der häufig angegebenen Wichtigkeitskategorie anzeigt. Die horizontale Dimension zeigt den Bruch in jeder Wichtigkeitskategorie. Somit repräsentieren die Flächen der gebildeten Kacheln die Häufigkeiten oder allgemeiner die Gesamtsummen für jede Kreuzkombination von Bedeutung und häufig.
quelle
Die Art und Weise, wie ich das gemacht habe, ist ein bisschen verworren, aber es könnte leicht genug repariert werden.
Dies ist eine modifizierte Version des Jittering-Ansatzes.
Das Entfernen der Achsen verringert die Versuchung, die Skala als stetig zu interpretieren. Das Zeichnen von Kästchen um die zitternden Kombinationen betont, dass es so etwas wie eine "Skalenunterbrechung" gibt - dass die Intervalle nicht unbedingt gleich sind
Idealerweise sollten die 1..5-Bezeichnungen durch die Kategorienamen ersetzt werden, aber das überlasse ich jetzt der Fantasie. Ich denke, es vermittelt den Sinn davon.
Mögliche Verfeinerungen:
i) die Pausen kleiner machen (ich persönlich bevorzuge größere Pausen) und
ii) Versuch, eine Quasirandom-Sequenz zu verwenden, um das Auftreten eines offensichtlichen Musters innerhalb der Kästchen zu verringern. Obwohl mein Versuch etwas geholfen hat, können Sie feststellen, dass es in den Zellen mit einer geringeren Anzahl von Punkten immer noch Teilsequenzen mit einem mehr oder weniger korrelierten Aussehen gibt (z. B. das Kästchen in der oberen Reihe, 2. Spalte). Um dies zu vermeiden, muss die quasi zufällige Sequenz möglicherweise für jede Unterbox initialisiert werden. (Eine Alternative könnte das Latin-Hypercube-Sampling sein.) Nachdem dies aussortiert wurde, könnte es in eine Funktion eingefügt werden, die genau wie Jitter funktioniert.
quelle
Verwenden des Riverplots des R-Pakets:
quelle
Eine andere Idee, an die ich ursprünglich nicht gedacht hatte, war ein Siebdruck .
Die Größe jeder Kachel ist proportional zur erwarteten Häufigkeit. Die kleinen Quadrate innerhalb der Rechtecke repräsentieren die tatsächlichen Frequenzen. Daher zeigt eine größere Dichte der Quadrate eine höhere Frequenz als erwartet an (und ist blau schattiert); Eine niedrigere Dichte der Quadrate (rot) steht für eine niedrigere Frequenz als erwartet.
Ich denke, ich würde es vorziehen, wenn die Farbe die Größe und nicht nur das Zeichen des Rests darstellt. Dies gilt insbesondere für Flankenfälle, in denen die erwarteten und beobachteten Frequenzen ähnlich sind und der Rest nahe Null ist. Ein dichotomes Rot / Blau-Schema scheint kleine Abweichungen zu überbetonen.
Implementierung in R:
quelle
Ein facettiertes Balkendiagramm in R. Es zeigt die Verteilung von "oft" auf jeder Ebene von "Wichtigkeit" sehr deutlich. Aber es hätte nicht so gut geklappt, wenn die maximale Anzahl zwischen den Stufen der "Wichtigkeit" stärker variiert hätte. Es ist einfach genug,
scales="free_y"
ggplot ( siehe hier ) einzustellen , um viel Leerraum zu vermeiden, aber die Form der Verteilung ist bei niederfrequenten Pegeln von "Wichtigkeit" schwer zu erkennen, da die Balken so klein wären. Vielleicht ist es in solchen Situationen besser, stattdessen die relative Häufigkeit (bedingte Wahrscheinlichkeit) auf der vertikalen Achse zu verwenden.Es ist nicht so "sauber" wie das Tabplot in Stata , mit dem Nick Cox verlinkt hat, vermittelt aber ähnliche Informationen.
R-Code:
quelle