Für Längsschnittdaten mit einem numerischen Ergebnis kann ich Spaghetti-Diagramme verwenden, um die Daten zu visualisieren. Zum Beispiel so etwas (entnommen aus der UCLA Stats-Site):
tolerance<-read.table("http://www.ats.ucla.edu/stat/r/faq/tolpp.csv",sep=",", header=T)
head(tolerance, n=10)
interaction.plot(tolerance$time, tolerance$id, tolerance$tolerance,
xlab="time", ylab="Tolerance", legend=F)
Aber was ist, wenn mein Ergebnis binär 0 oder 1 ist? Zum Beispiel zeigt in den "ohio" -Daten in R die binäre "resp" -Variable das Vorhandensein einer Atemwegserkrankung an:
library(geepack)
ohio2 <- ohio[2049:2148,]
head(ohio2, n=12)
resp id age smoke
2049 1 512 -2 1
2050 0 512 -1 1
2051 0 512 0 1
2052 0 512 1 1
2053 1 513 -2 1
2054 0 513 -1 1
2055 0 513 0 1
2056 1 513 1 1
2057 1 514 -2 1
2058 0 514 -1 1
2059 0 514 0 1
2060 1 514 1 1
interaction.plot(ohio2$age+9, ohio2$id, ohio2$resp,
xlab="age", ylab="Wheeze status", legend=F)
Die Spaghetti-Handlung gibt eine schöne Figur, ist aber nicht sehr informativ und sagt mir nicht viel. Was wäre ein geeigneter Weg, um diese Art von Daten zu visualisieren? Vielleicht etwas, das einen Wahrscheinlichkeitswert auf der y-Achse enthält?
ohio
Daten (2.15) (zumindest nicht als Teil der Basis). Ist es in einer neueren Version oder über eine andere Bibliothek? Dies wäre eine interessante Anwendung für eine Wärmekarte mit Personen auf der Y-Achse und Ergebnissen auf der X-Achse. Zeichnen Sie dann 1 Antworten als schwarz und 0 Antworten als weiß. Durch Sortieren der Matrix erhalten Sie dann einen Überblick über die Häufigkeit unterschiedlicher Muster.geepack
Paket ist.Antworten:
Es gibt einige Möglichkeiten, dies zu umgehen.
Jitter die Variablen leicht, um die Linien auseinander zu verschmieren
Erstens, da sowohl das Alter als auch das Ergebnis sehr diskret sind, können wir es uns leisten, sie leicht zu zittern, um einige Trends aufzuzeigen. Der Trick besteht darin, Transparenz in der Linienfarbe zu verwenden, damit das Ausmaß der Überlappung leichter erkannt werden kann.
Lust bekommen
Es ist auch möglich, diese Art von Kurven zu verwenden, um den Fluss der Motive anzuzeigen. Es ist wie eine Modifikation des obigen Diagramms, verwendet jedoch die Breite der Linie, um die Frequenz darzustellen, anstatt Überlappungen zu verwenden.
Zeigen Sie das Schicksal eines jeden Falles
Dies mag kontraintuitiv klingen, aber wenn Sie die Fälle systematisch anordnen, funktioniert es genauso gut, die aggregierte Geschichte zu erzählen. Hier wird das Ergebnis jedes Falles entlang einer grauen Farbreferenzlinie angezeigt. Ich habe dort keine Legende
legend
hinzugefügt, aber mit dem Befehl kann sie ganz einfach hinzugefügt werden. Blau ist "resp = 0" und Rot ist "resp = 1". Die Zeit (Alter) ist auf der x-Achse verteilt. Ihre Daten sind bequem nach Ergebnismustern sortiert, sodass ich nichts tun musste. Wenn sie nicht vorsortiert sind, müssen Sie den Befehl wiedcast
im Paket verwenden,reshape2
um die Daten ein wenig zu massieren.Tabellierung
Visualisierung ist nicht der einzige Ausweg. Da es höchstens 16 verschiedene Muster geben würde, können Sie diese auch tabellieren. Verwendung
+
und-
zu erstellen Muster wie+ + + +
und+ - - -
und dann für jedes dieser Muster, die Zählwerte und Prozent befestigen. Dies kann die Informationen gleichermaßen effektiv anzeigen.quelle