Hörst du den Virus?

Alexander Rogausch, Francisca Hartmann, Jan Enno Bohlke, Jean Luc Busch, Lukas Burger

Hörst du den Virus?

Haben Menschen während der Corona-Maßnahmen andere Musik gehört? Das Projekt visualisiert positive und negative Stimmungen von Songs über die Zeit.

Im Projekt “Hörst du den Virus?” wird der Zusammenhang zwischen “Social Distancing” im Zuge der Corona-Pandemie und der Musikvalenz von Ende Januar bis Mitte Mai 2020 untersucht. Insbesondere ist es das Ziel dieser Visualisierung einen Vergleich zwischen verschiedenen europäischen Ländern zu ermöglichen und somit die Stimmung eines Landes widerzuspiegeln. Dabei wurden zudem die Genre-Daten sowie die Corona-Neuinfektionen in den verschiedenen Kalenderwochen visualisiert. Die Daten wurden durch eine Spotify-API erworben, wobei der Server freundlicherweise dafür von netShelter zur Verfügung gestellt wurde. Durch die Untersuchung konnte festgestellt werden, dass insbesondere Italien zu bestimmten Kalenderwochen deutliche Einbrüche in der Valenz hat, was auf den Verlauf der Pandemie innerhalb des Landes zurückzuführen ist.

Hintergrund

Einführung

Im Rahmen der Vorlesung „Grundlagen der Datenvisualisierung“ an der Hochschule Mannheim, wurde ein Projekt mit dem Hauptthema “Social Distancing” entwickelt. Hierbei wurden für die Umsetzung keine weiteren Vorgaben gegeben, weshalb viele möglichen Themengebiete diskutiert wurden. Letztendlich wurde sich dazu entschieden die Musik, die während des “Social Distancing” gehört wurde, auszuwerten.

Motivation

Sämtliche Studierende dieser Gruppe waren sich darüber einig, dass im Grunde jeder Mensch auf irgendeine Art und Weise in Kontakt mit Musik kommt. Da es durch Veranstaltungen das Wissen gibt, dass sich Musik auf das menschliche Bewusstsein auswirkt, wie beispielsweise die “beats per minute”, war es die Idee zu untersuchen, ob sich das Hörverhalten während “Social Distancing” ändert und ob es Ähnlichkeiten zwischen verschiedenen Ländern gibt.

Untersuchte Thesen

  • Besteht ein Zusammenhang zwischen “Social Distancing” und der durchschnittlichen Valenz der Lieder?
  • Ähneln sich verschiedene Länder in ihrem Hörverhalten?

Während des Projekts wurde deutlich, dass nicht alle Länder berücksichtigt und ebenfalls nicht sämtliche Musikdatensätze aus den vergangenen Jahren in Betracht gezogen werden konnten. Deshalb wurde das Vorgehen auf europäische Länder sowie auf die genannten Wochen beschränkt.

Daten

Datenquelle

Zu Beginn des Projekts war es geplant die Musikdaten anhand des Valance-Scores mit den Stimmungs-Daten der “Zeit”, bezüglich des allgemeinen Wohlbefindens, zu vergleichen. Da letztere Daten nicht zur Verfügung gestellt werden konnten, wurde nach alternativen Datenquellen gesucht. Die gefundenen Datenquellen hatten jedoch nicht die erhoffte Qualität oder beinhalteten Daten für einen zu kurzen Zeitraum.

Deswegen wurden die Spotify-Viral Wochencharts vom 30.01.2020 bis zum 14.05.2020 von allen 64 verfügbaren Ländern als CSV-Datei heruntergeladen. Da diese Daten lediglich die Rangposition, Songtitel, Interpreten und URL beinhalteten, war es sehr offensichtlich, dass diese Datenquelle mithilfe eines Programms insofern aufzubereiten ist, dass die Genres sowie die Valenz und andere verfügbare Daten hinzugefügt werden können. Dafür wurden die Daten anfangs händisch bearbeitet und später mithilfe der Spotify API automatisiert erweitert.

Datenaufbereitung

Die ermittelten Genres sind sehr unterschiedlich, beispielsweise existiert nicht lediglich “Pop”, sondern auch “australischer Pop” als einzeln aufgeführtes Genre. Da dies jedoch zu genau wäre, wurde sich dazu entschieden solche Genres in Obergruppen zusammenzufassen. Um dies zu ermöglichen, wurden einzelne Genres nachgeschlagen, um eine weitestgehend sinnvolle Zuordnung zu gewährleisten. Dies ist nicht immer gelungen, da nicht jedes Genre eindeutig nur einer einzelnen Obergruppe zugeordnet werden konnte. Zudem war es im Rahmen des Projekts nicht möglich jedes Lied händisch einer Gruppe zuzuordnen, da die Datenmenge mit insgesamt 41 200 Liedern zu groß ist. Jene Lieder, die keine Genres hatten oder keiner Obergruppe zugeordnet werden konnten, wurden in die Obergruppe “Sonstiges” eingeordnet.

Abbildung 1 Genre Zuordnung

Da der Bezug zu “Social Distancing”, allein mit den Daten aus den Liedern, nicht gegeben war, mussten noch weitere Daten in die Datenquelle eingefügt werden. Dabei wurde eine Vereinigung mit einer Datenbank zur Corona-Pandemie anhand der Kalenderwoche des jeweiligen Landes ausgeführt. Für das Projekt waren besonders die neuen Fälle pro Woche von großer Bedeutung, um die Untersuchung eines eventuellen Zusammenhangs der Stimmung mit dem Anstieg der Covid-19 Infektionen zu ermöglichen. Durch das Hinzufügen der Corona-Daten ergab sich eine noch größere Datenmenge, die sich pro Lied auf 55 Attribute belief und sich somit eine Gesamtattributzahl von 2,25 Millionen ergab. Da diese hohe Anzahl von Attributen die Geschwindigkeit des Prototypens stark reduziert hat, wurden irrelevante Attribute herausgenommen, wodurch sich die Datenmenge auf diese Weise halbierte.

Datenauswertung

Verschiedene Filtermöglichkeiten wurden diskutiert, welche sinnvoll zu kombinieren sein sollten, aber insbesondere dabei unterstützen sollten die Thesen zu untersuchen. Aus diesem Grund wurde sich dazu entschieden folgende Filter einzuführen:

  • Kalenderwoche
  • Land

Visualisierungexperimente

Um die Hypothese zu Beginn zu untersuchen und zu verdeutlichen, ob die Daten prinzipiell für eine Darstellung geeignet wären, wurde mit Hilfe von Testdaten, zunächst in Tableau, eine Visualisierung erstellt. Durch diese Visualisierung wurde ersichtlich, dass zwischen den Liedern deutliche Unterschiede in der Valenz bestehen. Daraus resultierte die Frage, ob die Unterschiede in der Valenz auch im Zeitraum mehrerer Wochen sichtbar sind.

Abbildung 2 Valence der einzelnen Lieder

Um diese weiterführende Frage zu untersuchen, wurde mit Hilfe der Daten, die durch die API gewonnen wurden, verschiedene Visualisierungstechniken gegenübergestellt. Es wurde folgende Visualisierungstechniken für Genre Darstellung gegenübergestellt:

Abbildung 3 Visualisierungsentscheidung für die Genredarstellung

Schnell wurde ersichtlich, dass der Pie Chart, oder eine andere runde Anordnung der Daten, nicht für den Vergleich optimal ist. Die verschiedenen Farben, die an diesem Punkt noch nicht endgültig waren, konnten miteinander verschwimmen und den Betrachter verunsichern oder verwirren. Über eine längere Zeit könnten Veränderungen nicht ausreichend nachverfolgt werden, da das Bogenmaß sich nicht anpasste, wie es ursprünglich gewünscht war. Auf dem Histogramm hingegen war sofort ersichtlich, wie die Verteilungen aussahen. Die Farbverläufe wurden durch den Abstand und die klare Abgrenzung und Aufteilung der einzelnen Balken deutlich hervorgehoben, sodass diese nicht mehr ineinander verschwammen.
Der Prototyp sollte dazu genutzt werden die Valenzen verschiedener Länder miteinander zu vergleichen, wozu folgende Techniken gegeneinander abgewogen wurden:

Abbildung 4 Visualisierungsentscheidung für die Stimmungsverteilung

Der Linegraph stellte sich als nicht vollkommen optimal heraus: Es existierten keine Vergleichsgrößen an denen sich das Auge orientieren konnte. Diese Darstellung bot zwar den Vorteil, dass zwei Länder in einem Feld vergleichbar waren, wobei die Übersichtlichkeit nicht vollends gegeben war. Bei den Boxplots wird ein Eindruck über die Verteilung der Daten vermittelt und Ausreißer verdeutlich. Der Vergleich wurde in diesem Fall dadurch gewährleistet, dass beide Graphen nebeneinander abgebildet wurden. Durch diese Visualisierungen wurde deutlich, dass tatsächlich Länder existierten, deren Valenz von Ereignissen in der Pandemie abhingen, wie beispielsweise in Italien. Der Zusammenhang wurde vor allem in Kalenderwoche 14 deutlich, wo im Land besonders viele Menschen infiziert waren und die Totenzahl besonders hoch ausfiel. Zur Auswahl der Länder war eine interaktive Weltkarte geplant, doch auf Grund der Gegenüberstellung der Länder war nicht genügend Platz vorhanden, um eine Weltkarte übersichtlich mit allen Ländern darzustellen. Daraus folgte, dass lediglich Europa abgebildet wurde:

Abbildung 5 Visualisierungsentscheidung für die Weltkarte

Die Farbskala stellte die Valenz dar, wobei rot eine negative und grün eine positive Valenz symbolisierte. Auch diese Skala wurde noch nicht final gewählt, da lediglich untersucht wurde, ob Unterschiede auf der Karte erkennbar waren und wie diese auf der Karte darzustellen waren. Um eine klarere Verbindung zum Corona-Virus zu erlangen, wurde die Anzahl der Neuerkrankungen in die Karte aufgenommen und die Anzahl durch die Größe der Kreise für die einzelnen Länder dargestellt. Zusätzlich dazu haben die Kreise die Färbung der durchschnittlichen Valenz des jeweiligen Landes erhalten.

Funktionaler Visualisierungsprototyp

Der Prototyp kann in drei Einheiten unterteilt werden, wobei sich zwei davon sehr ähneln. Da der Prototyp dazu dient zwei Länder miteinander vergleichen zu können, wurde entschieden jeweils ein Land links und eines rechts darzustellen. Diese beiden Bereiche werden durch die Europakarte getrennt.

Abbildung 6 Prototyp zu Beginn

Die Skala zur Rechten der Europakarte ist die Farbskala, die ebenfalls für die Balkendiagramme verwendet wurde. Diese reicht von Blau (Positiv) bis Rot (Negativ). Die Farbe der Kreise auf der Europakarte entspricht der durchschnittlichen Valence und deren Größe ergibt sich aus den gemeldeten Neuinfektionen in dieser Woche. Auf Grund der Gegenüberstellung der Länder ist es möglich die Linien der Stimmungsgraphen, die Beiden unter den Dropdown- Menüs, direkt miteinander zu vergleichen. Ebenfalls ist es möglich direkt die Genreverteilung und die Valence innerhalb dieser augenblicklich gegenüberzustellen.

Des Weiteren ist es möglich die einzelnen Lieder miteinander zu vergleichen und sich somit eine eigene Meinung über die Stimmung in dieser Woche zu bilden. Dabei sollte berücksichtigt werden, dass das gleiche Lied von einem anderen Interpreten eine vollkommen andere Valence haben kann. Zusätzlich dazu kann mithilfe eines Kalenderwochen-Reglers eine gewünschte Kalenderwoche näher untersucht werden. In der unten eingefügten Abbildung wurde Woche 14 gewählt, da auf dem Stimmungsgraphen bei Italien ein deutlicher Abfall der Valence zu sehen ist. Wie bereits vermutet, ist der Kreis im Vergleich zur Abbildung 5 deutlich größer und die Valence ist eindeutig unter 0,5.

Abbildung 7 Prototyp mit Kalenderwochenauswahl

Des Weiteren ist es selbstverständlich möglich verschiedene Länder miteinander zu vergleichen.

Abbildung 8 Prototyp mit Länderauswahl

Die zuvor ausgewählte Kalenderwoche bleibt bestehen, jedoch ändern sich die Graphen jeweils links und rechts, da andere Länder ausgewählt wurden. Dadurch ist ein direkter Vergleich zwischen allen vorhandenen Ländern möglich.

Implementierung

Für die nachfolgend beschriebene Implementierung wurde sich für PyCharm als Entwicklungsumgebung entschieden, da diese kostenlos für die Studenten der Hochschule Mannheim ist, allen Teilnehmern bekannt ist und durch verschiedenste Plugins erweiterbar ist.

Zu Beginn des Projekts wurden mit Tableau die vorhandenen Daten exploriert und dadurch Ideen für den späteren Verlauf des Projekts erworben. Nach reiflicher Überlegung wurde sich dazu entschieden den Prototypen mit der Programmiersprache Python und mit Dash , einem kostenlosen Open-Source Framework, zu implementieren. Dies wurde damit begründet, dass zum Einen das Tool bereits bei einem Teil der Gruppe bekannt war. Zum Anderen hatte sich herausgestellt, dass die Implementierung mit VegaLite, einer mächtigen Grammatik für Visualisierungen mit JSON, nicht einfacher verlaufen würde, wofür jedoch mehr Einarbeitungszeit notwendig wäre.

Dash basiert auf Plotly. Diese Bibliothek eignet sich dafür verschiedene Graphen darzustellen. Durch Dash werden diese interaktiv und können miteinander Daten für die Filterung austauschen. Mit Hilfe von CSS wurde das Dashboard schließlich zu seinem jetzigen Aussehen geformt. Des Weiteren bietet Dash die Möglichkeit sehr einfach Filter darzustellen und diese Filter für alle Graphen zu übernehmen, wodurch keine verschiedene Filter mehr notwendig sind, die einzeln angesteuert werden müssen, um die Graphen interaktiv zu gestalten. Dash befindet sich noch immer in der Entwicklung, weswegen es einige Defizite in der Performance bei größeren Datenmengen besitzt. Darüber hinaus ist es so, dass die Graphen von Dash einen großen weißen Rand besitzen, welcher nicht ohne Weiteres entfernbar ist, jedoch bei der Anordnung der Elemente sich als störend herausgestellt hat.

Die eigentlichen Daten, die die Applikation später benutzt, werden mit NumPy und pandas aufbereitet. Beide Bibliotheken werden zur Datenanalyse verwendet und dessen Daten innerhalb des Programms mit Hilfe von Dataframes repräsentiert. Dataframes sind zweidimensionale Datenstrukturen mit Spalten und Zeilen, wobei jede Spalte einen eindeutigen Datentypen besitzt. Vereinfacht ausgedrückt, erinnert die Struktur eines Dataframes sehr an eine einfache Tabelle. Mit Hilfe der Methoden von pandas, können verschiedene Daten innerhalb der CSV-Dateien gesucht werden, wie beispielsweise der Songtitel, der Interpreten oder die Kalenderwoche. Auch bestimmte Datensätze, wie zum Beispiel das erstplatzierte Lied in Italien in Kalenderwoche 10, können so einfach und ohne großen Aufwand extrahiert werden. Diese Daten werden im weiteren Verlauf dazu benötigt, um beispielsweise den Filter für die Kalenderwochen zu implementieren. Während pandas für Dataframes genutzt wird, wird NumPy dagegen insbesondere für Vektoren, Matrizen und mehrdimensionale Arrays verwendet. Dabei ist das Arbeiten mit NumPy durch die mitgelieferten Funktionen effizienter als die, in Python standardmäßig implementierten, Funktionen zu dem Arbeiten mit Matrizen und Vektoren.

Abbildung 9 Veranschaulichung der unterschiedlichen Callbacks in Dash

Erkenntnisse

Während des Projekts wurde bereits damit gerechnet, dass sehr betroffene Länder, wie beispielsweise Italien, welches auch eine Triage anwenden musste, um die Patienten zu versorgen, Auffälligkeiten in der Stimmungskurve aufweisen werden. Diese Auffälligkeiten wurden bei manchen Ländern nicht so sichtbar, da diese weniger von den Auswirkungen der Pandemie betroffen waren. Insbesondere in den Kalenderwochen mit Beschränkungen und/oder hohen Opferzahlen und Neuinfektionen wurden diese Auffälligkeiten im Stimmungsgraphen erkennbar. Italien ist ein Land, bei dem besonders ersichtlich ist, wann Beschränkungen eingeführt wurden oder wie das Land unter der Belastung litt. Anhand dieser Daten und dem Wissen zu den Kalenderwochen war genau ablesbar, inwiefern die Valenz und die Ereignisse im Zusammenhang standen. Bei anderen Ländern war dies schlechter möglich, da es zu diesen Ländern weniger Daten zu den Kalenderwochen bezüglich der genauen Ereignisse gab. In Norwegen beispielsweise waren die Ansteckungszahlen gering, womit vergleichsweise weniger Maßnahmen getroffen wurden.

Fazit

Mit diesem Prototypen wurde eine Visualisierung erstellt, die einen schnellen, umfangreicheren Vergleich zwischen verschiedenen, europäischen Ländern bezüglich der Musikstimmung ermöglicht. Durch die verschiedenen Filtermöglichkeiten ist es interessierten Nutzern, die sich nicht unbedingt in der Materie auskennen müssen, möglich, die Zusammenhänge zwischen der Musikvalenz und den Ereignissen in den Wochen zu erkunden.

Ausblick

Für die Performance wäre es hilfreich die Daten in eine Datenbank einzupflegen und den Prototypen an diese anzubinden. Des Weiteren wäre eine Anbindung an andere Datenbanken, um die Daten automatisiert jede Woche auszulesen, möglich, womit der Prototyp stets aktuell gehalten werden kann. Eine Erweiterung der Visualisierung, um verschiedene Aspekte der Musik oder andere Daten zu den Ländern (z.B. Opferzahlen) zu vergleichen, ist ebenfalls erdenklich. Dazu müsste jedoch eine weitere Filtermöglichkeit implementiert werden. Ebenfalls sind die Genres noch feiner gliederbar, wobei deren Darstellung dadurch auch unübersichtlicher werden könnte. Andererseits wenn im Laufe der Weiterentwicklung diese Verfeinerung benötigt werden sollte, könnte diese selbstverständlich implementiert werden. Zusätzlich könnte auch die Darstellung der Daten auf die ganze Welt ausweiten werden. Darüberhinaus ist es möglich, zu den einzelnen Kalenderwochen im Bezug zu einer bestimmten Länderauswahl Informationen zu besonderen Ereignissen wie beispielsweise Beschlüssen, die bereits gesammelt worden waren, anzuzeigen.

Kurs

Dokumentation über das Projekt “Hörst du den Virus?” zum Thema “Social Distancing” des Kurses Grundlagen der Datenvisualisierung von Prof. Dr. Till Nagel im Sommersemester 2020 der Hochschule Mannheim.