Was sind gute Möglichkeiten, um Verteilungen über die Zeit mit R zu zeichnen?

8

Ich habe ~ 400 Personen und jeweils> 10.000 Zeitpunkte (Simulationsergebnisse), die ich überwachen möchte, wenn sie sich im Laufe der Zeit ändern. Das Zeichnen aller Personen ist zu chaotisch, das Zeichnen von Mittelwert + -sd, min / max oder Quantilen ist zu wenig Information für meinen Geschmack. Ich frage mich, was andere Leute sich ausgedacht haben, um diese Art von Daten zu visualisieren. Wenn es weniger Datenpunkte gäbe , würde ich Beanplots für jeden Zeitpunkt verwenden, aber das würde für so viele Zeitpunkte nicht funktionieren.

Wütend
quelle
Möchten Sie wiederholte Messungen (Verteilung von Werten innerhalb von Clustern auf Personenebene) oder Panelergebnisse (Funktionen der Antwortvariablen innerhalb der Person im Zeitverlauf) untersuchen oder untersuchen Sie nur die Ergebnisse als Funktion der Zeit? Bean-Plots (oder Violin-Plots) ignorieren Clustering, können jedoch verwendet werden, um zeitdiskrete Beobachtungen zu visualisieren. Haben Sie schon an beliebte Glätter wie LOESS oder das Glätten von Splines gedacht?
AdamO
@AdamO Ich möchte nur die Verteilung der Ergebnisse über die Zeit sehen. Ich bin daran interessiert, wie sich die Verteilung einer Statistik auf individueller Ebene ("Aktivitätsstufe") ändert, um ein Netzwerk von Individuen zu beobachten. Jedes der Individuen interagiert mit einer Teilmenge der anderen, dies ändert sich auch im Laufe der Zeit.
Livid
Smoothers sind dazu in der Lage. Es ist kein Spaghetti-Plot, der einzelne Statistiken zeigt, aber Sie können einen gemittelten Trend über die Zeit visualisieren.
AdamO
@AdamO Ich verstehe den Vorschlag der Glättung nicht, da ich einfach den Durchschnitt bei jedem Zeitschritt zeichnen kann, um das zu sehen.
Livid
1
@Glen_b Ich würde nur zu jedem Zeitpunkt Quantile berechnen und daraus eine Zeitreihe erstellen, anstatt Boxplots zu verwenden. Ich erwarte jedoch komplexe Verteilungen.
Livid

Antworten:

1

Ich würde entweder einen Glatter verwenden, wie zum Beispiel:

geom_smooth(method='loess')

oder ich würde Ihre Daten unterabtasten und nur alle 5 Personen und alle 10 Zeitschritte (zum Beispiel) zeichnen.

library(ggplot2)    
# Data looks like:
#   Subject   Timestep  Y
#   1         1         0.5
#   1         2         0.6    
#   1         3         0.6
#   1         4         0.7
temp=subset(data, ((as.numeric(subject)%%5)==0) & ((as.numeric(Timestep)%%10)==0))
qplot(Timestep,Y,data=temp)

oder beides.

S. Robinson
quelle
1

Dies sind einige großartige Vorschläge. Mein Vorschlag ist, Halbviolinendiagramme zu verwenden, wie in http://biostat.mc.vanderbilt.edu/HmiscNew gezeigt, wobei die R- HmiscPaketfunktion summarySund die latticeGrafiken verwendet werden.

Frank Harrell
quelle