
Visualisierung globaler Fälle von Coronavirus COVID-19
Verwendung eines animierten Zeitreihen-Blasendiagramms
Ich habe hier Ressourcen zusammengestellt, die Ihnen bei den Visualisierungen helfen sollen. Sehen Sie sich das Video vom Live-Webinar vom 26. März 2020 an, lesen Sie, warum ich mich für diese Analysen entschieden habe, greifen Sie auf die Daten zu oder die JMP Live-Berichte Probieren Sie meine angehängten Skripte aus und/oder verwenden Sie die Daten, um Ihre eigenen Analysen durchzuführen.
Im Rahmen dieser kontinuierlichen Bemühungen, Daten über die Ausbreitung des Coronavirus COVID-19 zu kommunizieren, gibt es zahlreiche Aktualisierungen. In der neuesten Version habe ich einige Graph Builder-Plots eingefügt, die sowohl die globale Zusammenfassung als auch die lokalen Zusammenfassungen betrachten. Außerdem werden die Blasendiagramme farblich ergänzt, um die täglichen Veränderungen der Zählungen darzustellen. Es gibt ein Tab-Feld zum Umschalten zwischen logarithmischen und linearen Skalen in den Diagrammen, und in der Abbildung der lokalen Zählwerte verfügt das lineare Skalendiagramm über ein Diagramm mit geteilten Achsen, um die Bereiche mit niedrigeren und höheren Zählwerten zusammen anzuzeigen.
Schauen Sie sich die HTML-Version hier an JMP Live-Seite.
Vorwort:
- Das Coronavirus und alle durch seine Ausbreitung verursachten Probleme sind schwerwiegend und betreffen viele Menschen, zum Teil auf schreckliche Weise. Es ist nicht meine Absicht, mit der Schaffung dieser Figur den Ernst der Sache zu verharmlosen. Es ist auch nicht mein Ziel, Hysterie oder Fremdenfeindlichkeit zu fördern.
- In meinem Skript kodiere ich Ortsnamen neu, die die ursprünglichen Autoren verwenden. Ich habe keine politische Agenda. Wenn ich die Google Map-API zum Geokodieren verwende, benötige ich sie, um mir Länderstandorte zu liefern. „Taiwan, Taiwan“ ergibt einen Restaurantstandort, während „Taiwan, China“ einen Geocode in der Nähe des Zentrums von Taiwan ergibt. Auch dies ist nicht politisch, sondern funktional.
- Alle Daten rund um die Meldung und Erkennung des Coronavirus sind äußerst umstritten. Ich bürge nicht für die Richtigkeit dieser Daten. Es ist jedoch die beste Zusammenstellung öffentlich verfügbarer Daten (auf Englisch), die mir bekannt ist. Wenn Sie etwas Besseres haben, lassen Sie es mich bitte wissen.
- Es sind nicht meine Daten. Die Leute von der Johns Hopkins University, Whiting School of Engineering, im Center for Systems Science and Engineering haben zusammen mit den Daten ein hübsches Dashboard veröffentlicht. Ein großes Dankeschön und ein großes Lob an dieses Team für die Bereitstellung seiner Daten.Lesen Sie ihren Blog und schauen Sie sich auf jeden Fall ihre an Visualisierung.
Sie richteten auch eine ein GitHub-Seite mit den Rohdaten in einem leicht zugänglichen Format. (Kudos x 10^6).
Warum ein Blasendiagramm mit einer Zeitreihenanimation verwenden?
Blasendiagramme haben einen hohen Nutzen, da eine große Anzahl von Dimensionen in einem einzigen Diagramm dargestellt werden kann. Durch die Hinzufügung einer Zeitreihenanimation können die Veränderungen in den Beziehungen zwischen diesen Dimensionen visualisiert und kommuniziert werden, ohne dass der Betrachter aufwändige Vorab-Aufmerksamkeitsprozesse durchführen muss. (auch bekannt als: Sie sehen cool aus und sind leicht zu verstehen)
Beachten Sie, dass ich gesagt habe, dass ein Blasendiagramm nützlich ist, um die Beziehungen von zu betrachten mehrere Dimensionen, die im Laufe der Zeit animiert sind, nicht nur eins Dimension (Variable), animiert über die Zeit. Ich habe Leute gesehen, die ein Lauf-/Kontrolldiagramm-ähnliches Diagramm mit einer einzigen Dimension auf der X-Achse und der Zeit auf der Y-Achse erstellt und dann nach Zeit animiert haben. Dies wird als langwieriger Lauf/Kontrolldiagramm bezeichnet. Bitte tun Sie dies nicht.
Für die Figur, die ich hier konstruieren werde. Die X- und Y-Achse haben einen geodätischen Maßstab, sodass die Punkte auf einer Karte ausgerichtet sind. Wir können die räumlichen Beziehungen von Punkten im Diagramm sehen, die durch die Hintergrundkartenform einen Kontext erhalten. Als Nächstes füge ich eine Größendimension für die Markierungen hinzu, die die kumulative Anzahl der Fälle nach Zeitraum für jeden Standort darstellt. Zuletzt verwende ich die Zeitperiodensequenz, um die Handlung zu animieren, was zu Blasen führt, die im Laufe der Zeit wachsen oder erscheinen. Jeder Punkt ist nach Land und Region gekennzeichnet. In dieser Abbildung ist es möglich, alle einzelnen Punkte auf ihre Länder-ID zu reduzieren oder sie auf ihre Regions-ID innerhalb der Länder-ID aufzuteilen.
Das Skript zum Generieren des Diagramms verfolgt ein sich bewegendes Ziel. Die Autoren der Daten nehmen ständig Änderungen vor, sodass dies möglicherweise nur für ein paar Tage funktioniert, wenn Änderungen an den Quelldaten vorgenommen werden. Ab dem Morgen des 12.02.2020 funktioniert es. Am Ende des Skripts gibt es eine Option zum Veröffentlichen oder Aktualisieren der Abbildung in JMP Live. Dies wird bei Ihnen nicht funktionieren, da Sie nicht über meinen streng geheimen API-Schlüssel für den Zugriff auf das Paket in JMP Live verfügen. Dies könnte als Beispiel dafür nützlich sein, wie das Veröffentlichen und Aktualisieren funktioniert, wenn Sie über JMP Live verfügen.
Wie das Skript funktioniert.
- Richtet alle Variablen ein, die ich später im Skript benötige
- Lädt die Daten herunter und formatiert sie
- Es gibt einige seltsame Dinge in diesem Teil. An mehreren Stellen speichere ich die Daten lokal, schließe die Tabelle und öffne sie dann wieder. Ich hatte Probleme, die sequenzielle Ausführung des Skripts zu erzwingen, und das ist eine Möglichkeit, dies zu erreichen. Manchmal war die Aktualisierung einer Tabelle nicht abgeschlossen, bevor der nächste Schritt begann, und es kam zu wackeligen Tabellen.Diese Brute-Force-Methode passt zu meinem Charakter und Stil.
- Erzeugen Sie das Blasendiagramm
- Finden Sie heraus, ob eine Veröffentlichung oder Aktualisierung erforderlich ist, und veröffentlichen oder aktualisieren Sie dann die Abbildung
Wenn Sie sich das Skript ansehen, fällt Ihnen vielleicht auf, dass ich Abschnitte in Ausdrücke eingeschlossen habe. Dies ist eine praktische Möglichkeit, ein langes Skript übersichtlicher zu gestalten, wenn es mit der Option zum Falten von Code kombiniert wird (überprüfen Sie die Einstellungen für den Skripteditor).
UPDATE 26.03.20
Der Anfang dieser Woche verwendete Datensatz war veraltet. Und heute Morgen wurden die veralteten Daten an einen anderen Ort verschoben. Es versteht sich von selbst, dass dieses Projekt wirklich ein bewegliches Ziel ist! Johns Hopkins CSSE verfügt über ein weiteres Daten-GitHub-Repository, das täglich mit Daten aktualisiert wird. Das neue Skript unten, „COVID-19-Zeitreihendaten kompilieren“, prüft, welche Dateien sich im Repository befinden, lädt sie dann herunter und stellt sie zusammen. Dieser Datensatz weist einige interessante „Merkmale“ auf. Ich habe Recode verwendet, um viele davon zu lösen, und einige kreative Formeln, um den Rest zu lösen.
Einige der Probleme und die Lösung
-Die Standorte für die einzelnen Standorte sind nicht konsistent, daher habe ich den aktuellsten Standort verwendet und diesen überall sonst ersetzt.
- Die kumulierte Anzahl sollte entweder steigen oder gleich bleiben. Wenn die kumulative Anzahl abnimmt, wird der Wert des Vortages verwendet. Dies verhindert negative Zahlen in den täglichen Zählungen, die aus den kumulierten Zählungen abgeleitet werden.
– Die Spaltennamen in den Tabellen sind im Laufe der Zeit nicht konsistent. Die Beschriftungen sind mit den Spaltennamen der Tabelle 3/24/20 vereinheitlicht.
- In einigen Standortnamen gibt es einige Tippfehler und nachgestellte/führende Leerzeichen. Recode behebt diese Probleme.
-Die Standorte sind nach Wert und Farbe sortiert nach der Summe der bestätigten Zählungen an jedem Standort.
-Die Abschlusstabelle enthält keine Formeln. Die Tabelle kann sortiert werden, ohne sortierungsabhängige Berechnungen zu beeinträchtigen.
UPDATE 03.04.20
Ich habe das Skript heute aktualisiert. Bitte beachten Sie, dass die Ausführung etwa eine Minute oder etwas länger dauern wird. Im Bereinigungsskript passiert viel, und die Fertigstellung einiger Formeln dauert etwas länger.
Diese Version enthält am Ende einen Abschnitt, der doppelte Zeilen entfernt, sowie einige andere Optimierungen
Neue Spaltenformeln zur Erstellung der Blasendiagramme „Cum Counts vs. Counts by Day“. Hierbei handelt es sich um einen gleitenden Durchschnitt nach Standortspalten und nicht um den Mittelwert von 5 oder 7 Tagen. Der gleitende Durchschnitt gibt mir noch ein paar Punkte, mit denen ich arbeiten kann.
Nützliche Artikel, die die Grafiken informiert haben:
•Hinweise dazu, was in einer Zeitreihe dargestellt werden soll, insbesondere in einem Blasendiagramm. Beachten Sie, dass kumulative Zählungen zu immer größeren Blasen führen, Zählungen pro Tag jedoch Hotspots zeigen.(Joel Selanikio)
• https://www.futurehealth.live/blog/2020/2/17/all-the-coronavirus-maps-are-wrong
• https://www.futurehealth.live/blog/2020/2/10/coronavirus-dataviz-sucks
•Hinweise zur Verwendung von Karten und Kartenformen. (Kenneth Field)
• https://www.esri.com/arcgis-blog/products/product/mapping/mapping-coronavirus-responsably/
•Hinweise zu nachlaufenden Indikatoren und zur Interpretation von Daten mit unterschiedlichen Achsenskalen. (Kaiser Fung)
• https://junkcharts.typepad.com/numbersruleyourworld/2020/03/how-to-act-like-a-data-scientist-8-dont-use-lagging-indicators-to-forecast.html
Dieses Projekt verfolgt sozusagen ein bewegliches Ziel. Die Autoren der Daten bewegen sie ständig.
Ich habe das Drehbuch aktualisiert (ja, am Valentinstag, aber während ich darauf wartete, dass eine Monsterlasagne fertig gebacken wurde.)
Jetzt ist der Datenabruf etwas einfacher, und statt eines Datenfilterfelds befindet sich jede Kategorie in einem eigenen Tab-Feld.
Außerdem gab es ein Problem, bei dem Punkte nicht im Blasendiagramm angezeigt wurden, und das wurde ebenfalls behoben.
Wirklich interessante und nette Möglichkeit, ein nützliches (und sehr cooles) Drehbuch zu liefern, um mit dieser globalen Tragödie im Bereich der öffentlichen Gesundheit Schritt zu halten, Byron @Byron_JMP .Es ist so nützlich, dass JMP Zeitreihendaten verarbeitet.
Ich wollte den Code in eine .jsl-Datei kopieren, habe aber festgestellt, dass einige Anpassungen erforderlich sind.Sie verweisen beispielsweise auf Ihr JMP Live-Konto.Können Sie das Skript aktualisieren, damit es etwas allgemeiner ist?Und vielen Dank für die Verlinkung GitHub-Seite mit den Rohdaten So kann ich selbst versuchen, mir neue Daten in JMP anzusehen.