Datenvisualisierung für fehlende Daten

8

Ich bin Designer und versuche, einen Datensatz über die Zeit zu zeichnen. Zum Beispiel,

Day1     Day2     Day3      Day4      Day5
 10       53       21        67        38

Ich verwende ein normales Liniendiagramm, um dies zu zeichnen, aber wenn für ein oder zwei Tage dazwischen keine Daten verfügbar sind (wie zum Beispiel unten), gehen die Entwickler davon aus, dass es Null ist, und das Diagramm fällt tatsächlich auf Null ab und geht oben. Ich habe irgendwie das Gefühl, dass das nicht richtig ist.

Day1     Day2     Day3      Day4      Day5
 10                          67        38

Wenn ich MS Excel verwende, um die obigen Daten zu zeichnen (mit fehlenden Werten dazwischen), zeichnet es eine Linie von 67 bis 38 (Liniendiagramm). Wenn ich an Tag 2 beispielsweise 25 eingebe, sehe ich eine Linie von 10 bis 25 und dann eine Lücke von 67 bis 38.

  1. Meine Frage ist nun, ob es richtig ist, einfach die Linie von 25 (Tag 2) bis 67 (Tag 3) zu verbinden, damit ich ein kontinuierliches Diagramm erhalte.

Ich sehe einige Designs, die stattdessen Splines enthalten, wenn gerade Linien zwei Punkte verbinden. Dies ist optisch ansprechend, aber ich weiß, dass Splines für die Dateninterpolation verwendet werden (korrigieren Sie mich, wenn ich falsch liege) und nicht in den von mir beschriebenen Fällen.

  1. Kann ich die bekannten Punkte trotzdem mit einem Spline zeichnen? Ist das akzeptabel?

( https://dribbble.com/shots/2062935-File-Dashboard-Free-PSD/attachments/369112 )

Es tut mir leid, wenn meine Fragen lahm sind, weil meine Kenntnisse in Statistik und Datenvisualisierung geringer sind.

user2637926
quelle

Antworten:

9

Ich würde ehrlich gesagt einfach Datenpunkte ohne Informationen leer lassen. In R:

foo <- structure(c(10,NA,NA,67,38),.Names=paste0("Day",1:5))
plot(foo,xaxt="n",xlab="",ylab="",pch=19,type="o",
  ylim=c(0,max(foo,na.rm=TRUE)))
axis(1,seq_along(foo),names(foo))

Handlung


Alles andere ist vertretbar, wenn es Informationen widerspiegelt, die Sie über Ihre Daten haben. Wenn Ihre Datenbank beispielsweise Verkäufe erfasst hat und Ihr Geschäft an den Tagen 2 und 3 geöffnet war, aber niemand Ihre Widgets kaufen wollte, können Sie gültig auf Nullen schließen und diese zeichnen. (Wenn das Geschäft geschlossen wurde oder Sie nicht mehr über Widgets verfügen, sollten Sie dies nicht tun, da eine Nachfrage nicht befriedigt werden konnte.)

Sie können linear interpolieren, wenn dies eine "gute Vermutung" darüber ist, was "wirklich" in den Zeiträumen ohne Daten passiert ist. Was eine "gute Vermutung" ist, hängt natürlich von Ihrer spezifischen Situation ab.

Ich würde keine Splines verwenden, es sei denn, ich hätte einen sehr guten Grund. Die lineare Interpolation ist einfacher, und man sollte immer einen einfacheren Ansatz verwenden, es sei denn, ein komplexerer Ansatz wie Splines ist gerechtfertigt (Occams Rasiermesser). Außerdem können Splines höherer Ordnung abhängig von Ihren spezifischen Daten explodieren.

Stephan Kolassa
quelle
Danke, Stephan für die schnelle Antwort. Mein Problem ist, wenn ich Daten über einen längeren Zeitraum anzeige, dass möglicherweise drei oder vier Tage dazwischen keine Daten verfügbar sind. In diesem Fall würde es nach Ihrem Vorschlag zu einem Zeilenumbruch kommen (während die Daten angezeigt werden) Zeitleiste). Ich zeige die Anzahl der Bewertungen, die im Laufe der Zeit eingegangen sind. Wenn an einem bestimmten Datum keine Bewertungen abgegeben würden, hätte ich eine Unterbrechung in der Leitung.
user2637926
1
Wenn Bewertungen könnten empfangen wurden, waren aber nicht (weil niemand überprüfen wollte), dann Interpolations - Nullen macht Sinn. Andernfalls (z. B. wurden keine Bewertungen erhalten, weil das System ausgefallen ist) würde ich Löcher für so viele Tage hinterlassen, wie es gibt. Ich habe oft genau diese Situation beim Plotten von Supermarktverkäufen, die für einen Artikel Null sein können oder fehlen können, wenn das Geschäft geschlossen ist (sonntags in Deutschland).
Stephan Kolassa
Ich verstehe, was du sagst. Das hilft. Wenn ich auf meine andere Frage zu Splines zurückkomme, kann ich diese verwenden (hauptsächlich aus ästhetischen Gründen)? Ich habe beispielsweise 10 Bewertungen für Tag 1 und 20 für Tag 2. Kann ich die beiden Punkte mithilfe einer Kurve verbinden? Oder ist das statistisch eine falsche Darstellung?
user2637926
1
Der Einfachheit halber würde ich eine gerade Linie wählen. Alles "kurvige" ( wie hier ) deutet darauf hin, dass Sie wissen, dass sich die Dynamik über das Intervall, das Sie interpolieren, unterscheidet. Wenn Sie das wissen, großartig, und wild werden - wenn nicht, machen Sie nicht den Eindruck, dass Sie es tun.
Stephan Kolassa
1
Wenn Sie eine Vorstellung von dem Tagesmuster haben, können Sie darüber nachdenken, es aufzunehmen, aber das wäre eine andere Handlung. Was bedeutet die vertikale Position der Linie 1/3 des Weges von Mi nach Do? Es kann nicht sein, dass zu diesem Zeitpunkt ein Wert von (sagen wir) 1.200 vorliegt, da die interpolierten Werte bereits tägliche Summen ergeben. Nein, der einzige Grund für die Linien besteht darin, die Punkte zu verbinden. Und da würde ich eher eine einfachere als eine komplexere Lösung wählen. (Wenn drei Punkte ein absteigendes Muster bilden, warum sollte die Linie eine Nullableitung bei der zentralen haben?) Nennen Sie mich einfachheitsbesessen
;-)