Ich habe einen Datensatz mit drei kategorialen Variablen und möchte die Beziehung zwischen allen drei Variablen in einem Diagramm visualisieren. Irgendwelche Ideen?
Derzeit verwende ich die folgenden drei Grafiken:
Jedes Diagramm ist für eine Grundlinien-Depression (Mild, Moderat, Schwerwiegend). Dann betrachte ich in jedem Diagramm die Beziehung zwischen Behandlung (0,1) und Depressionsverbesserung (keine, mäßig, erheblich).
Diese 3 Diagramme dienen zum Anzeigen der 3-Wege-Beziehung. Gibt es jedoch eine bekannte Möglichkeit, dies mit einem Diagramm zu tun?
r
data-visualization
categorical-data
Alejandro Ochoa
quelle
quelle
Antworten:
Dies ist ein interessanter Datensatz, der versucht, grafisch darzustellen, zum Teil, weil er nicht wirklich kategorisch ist. Beide 3-Level - Faktoren sind Ordnungs und es ist möglich , Zusammenspiel zwischen ihnen (vermutlich, es ist schwieriger für ein
mild
baseline
habensubstantial
improvement
- oder vielleichtsubstantial
improvement
etwas anderes bedeutet für jedenbaseline
).Bei mehreren Variablen gibt es normalerweise keine einzige Ansicht, die alle Funktionen anzeigt, die Sie interessieren könnten. Einige Faktoren lassen sich leichter vergleichen als andere. Ich denke, Ihre ursprüngliche Ansicht ist gut und wäre besser mit den Vorschlägen von Nick Cox: Entfernen doppelter Legenden und Verwenden einer ordinalen Farbskala.
Wenn Sie den Unterschied zwischen den Behandlungen am interessantesten sehen, können Sie die Änderung hervorheben, indem Sie ein Diagramm mit gestapelten Bereichen anstelle von gestapelten Balken verwenden.
Ich bin normalerweise vorsichtig beim Stapeln im Allgemeinen, weil es schwieriger ist, die Mittelwerte zu lesen, aber dies verstärkt die Fixsummennatur dieser Daten. Und es macht es einfach, die Summe
moderate
+ zu lesen,substantial
wenn dies relevant ist. Ich habe die Reihenfolge derimprovement
Pegel umgedreht, damit höher für die Frequenz besser ist.Ohne Stapelung ist das Äquivalent ein Steigungsdiagramm.
Es ist einfacher, jedes Level zu lesen, aber schwieriger, das Zusammenspiel zu verstehen. Man muss bedenken, dass die dritte Zeile direkt von den beiden anderen abhängig ist.
In Anbetracht der Ordnungszahl der Daten kann es hilfreich sein, den
improvement
Wert in eine numerische Punktzahl umzuwandeln , wie dies bei Likert- Daten häufig der Fall ist . Zum Beispielnone=0
,moderate=1
,substantial=2
. Dann können Sie diese Variable auf einer kontinuierlichen Skala grafisch darstellen. Der Nachteil ist, dass Sie eine vernünftige Wertung finden müssen (z. B. 0, 1 und 5 wären eine wahrere Darstellung).Kolophon : Diese Plots wurden mit der Funktion Graph Builder im Softwarepaket JMP erstellt (das ich mitentwickle). Obwohl interaktiv erstellt, ist ein Skript zum Beispiel für das Flächendiagramm ohne die Farbanpassungen:
quelle
Hier ist zunächst meine Lektüre aus der Grafik, die die Daten für diejenigen enthält, die spielen möchten (experimentieren Sie, wenn Sie möchten). Hinweis: Off-by-One-Fehler sind ebenso möglich wie grobe Fehler.
Hier ist eine Überarbeitung des ursprünglichen Designs. Ein Detail der Originaldaten macht die Sache einfach: Die Anzahl der Personen in jeder der Prädiktorkombinationen ist gleich, sodass die Häufigkeit und der Prozentsatz der Aufzeichnung gleich sind. Anstelle eines gestapelten (unterteilten, segmentierten) Balkendiagramms trennen wir hier Balken in einem Zweiwege-Balkendiagramm oder einem Tabellenplot.
Viele Details in Grafiken sind genau das, Details. Einige kleine Schwachstellen in einem Diagramm können seine Wirksamkeit beeinträchtigen, und einige kleine Verbesserungen können ebenfalls hilfreich sein.
Um es auszudrücken:
Drei Panels werden hier nicht benötigt, da Achsen, Legende und Text wiederholt werden.
Eine Legende ist immer Fluch und Segen zugleich, was den Leser dazu zwingt, geistig "hin und her" zu gehen (oder sich die Legende zu merken, was nicht ansprechend ist, wie einfach es auch sein mag). Informativer Text direkt neben den Balken ist leichter zu folgen.
Die Obstsalat-Farbcodierung ist entbehrlich. Es scheint auch willkürlich: "Wesentliche" Verbesserung ist eine große Sache, aber ich finde sogar starkes Gelb eine gedämpfte Farbe. Aber wir brauchen keine Farbe, wenn wir zu erklärenden Text haben.
Obwohl einige vor Entsetzen schreien werden, wenn sie die Unterscheidung zwischen Figure und Table verletzen, können wir auch die Frequenzen anzeigen. Es ist hilfreich, "4 Personen in dieser Kategorie" zu denken.
Es ist eine Hommage an die traditionelle Darstellung der Reaktion auf der vertikalen Achse, genau wie im Original.
Trotzdem ist es schwer, eine große Struktur in diesen Daten zu erkennen. Wenn dem so ist, ist es auch schwierig, die Schuld zwischen (a) Daten ohne viel Struktur und (b) den Schwächen eines grafischen Designs zu teilen, um nicht nur Vorhersageeffekte, sondern auch mögliche Interaktionen herauszusuchen. Die Behandlung scheint weniger wichtig als der Ausgangszustand. Aber wie viel Spielraum gab es dann, wenn die Basislinie "mild" war, für eine "wesentliche" Verbesserung? Ich höre hier auf, um mich nicht selbst zum Narren zu halten, wenn das Studium von Daten zur psychischen Gesundheit sicherlich kein Spezialgebiet ist, besonders wenn sich herausstellt, dass die Daten gefälscht sind. Aber wenn sie echt sind, könnten wir es mit einer viel größeren Stichprobe aufnehmen. (Das sagen wir normalerweise, aber los geht's.)
BEARBEITEN Falls gewünscht, kann die Grafik natürlich durch ein ordinales Farbschema kompliziert werden:
Für das Protokoll: Die Grafiken verwendeten Stata-Code, einschließlich meines eigenen Programms, das mit
tabplot
heruntergeladen werden kannssc inst tabplot
.quelle
Ich verwende gerne eine 2-Ebenen-X-Achse für solche Daten. Ihre x-Achsen-Kategorien für ein einzelnes Diagramm könnten also sein:
... mit der gleichen Anzahl von Histogrammbalken nach Kategorien [keine / mäßig / erheblich].
quelle
Ist nicht Mosaik Handlung speziell für diesen Zweck konzipiert?
In R wäre es wie
Jede kategoriale Variable geht zu einer Kante des Quadrats, die durch ihre Beschriftungen unterteilt ist. (Wenn Sie also jede Kante nur auf einer Ebene unterteilen, können höchstens 4 kategoriale Variablen dargestellt werden. IMHO, über 3 hinaus wird es chaotisch und schwieriger zu interpretieren). Die Größe der Rechtecke ist proportional zur Frequenz. Dies ist die Hauptidee hinter der Mosaikzeichnung, und dies gilt auch für diese Antwort und die Antwort von Paweł Kleka.
Die Unterschiede liegen in den Layouts dieser Rechtecke und "Feinheiten", die von einem bestimmten R-Paket für diese Art von Plot bereitgestellt werden. Wie Sie der Antwort von Paweł Kleka entnehmen können,
graphics
unterteilt das Paket die obere Kante in zwei Ebenen, anstatt die rechte Kante zu verwenden. Ich habe einvcd
Paket mit Standardoptionen verwendet, sodass die Farbe den Grad der Zuordnung zwischen den Variablen angibt. Grau bedeutet, dass Daten mit der Variablenunabhängigkeit konsistent sind (Sie können die Hypothese nicht ablehnen). Blau bedeutet, dass eine positive Assoziation zwischen "schwerer" Grundlinie und "wesentlicher" Verbesserung sowohl für "0" - als auch für "1" -Behandlung besteht. (Überraschung, Überraschung! Ich übersetze es wie folgt: Wenn Sie eine schwere Depression haben, werden Sie wahrscheinlich wesentlich besser, ob Sie eine Behandlung haben oder nicht.Man kann die Handlung an seine Bedürfnisse anpassen, siehe zum Beispiel hier . Das Paket hat auch mehrere Vignetten, google "VCD-Mosaik-Beispiel" (wie ich es gerade getan habe). Der eingangs zitierte Wikipedia-Artikel erklärt auch, wie man diese Art von Handlung und Intuition dahinter konstruiert.
Wenn Sie mein Bild mit dem Bild in der Antwort von Paweł Klęka vergleichen zu können , tut es nicht Sache, dass ‚Behandlung‘ auf dem linken Rande jeden Bildes ist. Sie können die Kantenposition leicht ändern, indem Sie die letzte Zeile meines Codes ändern und das Layout Ihren Anforderungen entsprechend anpassen. Es ist üblich, dass links die wichtigste Variable oder die Variable mit der geringsten Anzahl von Bezeichnungen steht. Sie können auch die Reihenfolge der Etiketten ändern (beispielsweise so, daß am rechten Rand die Reihenfolge „none moderieren wesentlich“ ist) , indem der entsprechende Faktor Variable in R bestellt und ihre Niveaus eingestellt wird .
quelle
Ich empfehle Mosaikplot
quelle
Eine Option, die ich in Betracht ziehen würde, ist die Verwendung paralleler Mengen. Einige der Vergleiche sind einfacher als andere, aber Sie können immer noch die Beziehungen zwischen drei kategorialen Variablen sehen.
Hier ist ein Beispiel mit Titanic Survival-Daten:
In R (mit Ihren Tags) habe ich ggparallel für die Implementierung verwendet. Einige Leute haben hier im Lebenslauf diskutiert, wie man es auf andere Weise umsetzt.
quelle
Die Informationen können auch mithilfe des folgenden einfachen Liniendiagramms übermittelt werden:
Die Verbesserung wird durch verschiedene Linientypen angezeigt, während die Grundliniengruppe in Farben angezeigt wird. Diese und der x-Achsen-Parameter (Behandlung hier) können bei Bedarf auch ausgetauscht werden.
quelle
Ähnlich wie bei den oben von nazareno veröffentlichten parallelen Sets können Sie alluviale Diagramme verwenden, die im alluvialen R-Paket enthalten sind. http://www.r-bloggers.com/alluvial-diagrams/
quelle