International Essays |
Dieses Notebook ist die deutschsprachige Übersetzung des Beitrags “Census Data Explorations at the Wolfram Data Science Boot Camp” vom 24. September 2021, die mithilfe eines LLM-Tools erstellt und von einer professionellen Übersetzerin überprüft wurde.
Untersuchung der Zensusdaten beim Wolfram Data Science-Boot Camp
Untersuchung der Zensusdaten beim Wolfram Data Science-Boot Camp
24. September 2021
Kevin Reiss, Outreach & Communications
Ich habe kürzlich das zweiwöchige Wolfram Data Science-Boot Camp abgeschlossen und dabei sehr viel darüber gelernt, wie man ein Projekt von einer anfänglichen Fragestellung zu einer kohärenten und visuellen Antwort führt. Wie wir gelernt haben, umfasst der multiparadigmatische Datenwissenschafts-Ansatz mehrere Schritte:
Ich wollte einiges von dem, was ich im Camp gelernt habe, verwenden, um zu zeigen, wie wir durch die Schritte der Datenaufbereitung und -analyse kommen können, indem wir das Wolfram Language -Framework für relationale Daten verwenden. Ich wollte mich an einem sehr großen Datensatz versuchen und begann im Wolfram Data Repository. Ich fand einen Datensatz mit beeindruckenden 72.818 Entitäten: den Census Tract Entity Store.
Wir können programmatisch die Beschreibung dieser Daten abrufen:
In[]:=
ResourceObject["Census Tract Entity Store"]["Description"]
Out[]=
US Census tracts with location, polygon, and data from the American Community Survey
Die USA sind in kleine „Gebiete“ unterteilt, von denen jedes eine Menge Daten enthält. Dieser Datensatz ermöglicht es uns, einen Entity Store zu registrieren, der eine relationale Datenbank einrichtet, die wir abfragen können, um Daten zu extrahieren. Zu meinem Glück hatten wir zu Beginn des Camps eine fantastische Lektion über relationale Datenbanken von Leonid Shifrin, sonst wäre das für mich sehr schwierig gewesen.
Das Registrieren dieses Entity-Stores ist äußerst einfach:
In[]:=
EntityRegister[ResourceData["Census Tract Entity Store"]]
Out[]=
{CensusTract}
Entities sind ein äußerst mächtiges Framework für den Zugriff auf Daten, ohne jemals die Wolfram Language verlassen zu müssen. Zum Beispiel können wir einfach die Bevölkerung Frankreichs abrufen:
In[]:=
Out[]=
Auf die gleiche Weise, wie dieser Code eine Entität der Klasse "Country" verwendet, haben wir jetzt Entitäten der Klasse "CensusTract" (wie von unserer -Zeile zurückgegeben), die alle unsere Daten enthalten. Den Überblick über eine gesamte Entitätsklasse zu behalten kann einschüchternd wirken – vor allem bei über 72.000 einzelnen Entitäten. Mein Ansatz: Ich ziehe zuerst einfach eine zufällige heraus:
In[]:=
randomEntity=RandomEntity["CensusTract"]
Out[]=
Die Bezeichnung der Entität teilt uns unmittelbar mit, zu welchem County und welchem Staat die Entität gehört. Wir können den exakten Umriss dieses Zensustrakts mit grafisch darstellen:
In[]:=
GeoGraphics[Polygon[randomEntity]]
Out[]=
Wir sehen, dass die Region viel kleiner ist als der gesamte Landkreis und sogar kleiner als eine einzelne Stadt. Die Darstellung beider in einem einzigen gibt uns eine Vorstellung davon, wie granular diese Volkszählungsbezirke sind:
In[]:=
GeoListPlot,{randomEntity},PlotLegends->Placed[Automatic,Below]
Out[]=
Es ist keine Überraschung, dass Volkszählungsbezirke so klein sind, da es über 72.000 von ihnen in den USA gibt:
In[]:=
EntityValue["CensusTract","EntityCount"]
Out[]=
72818
Erkunden Lassen Sie uns versuchen, einige Visualisierungen aus den Daten zu erstellen, indem wir mit etwas Einfachem wie der Bevölkerung beginnen.
Ich möchte die Bevölkerungsdichte von Connecticut, meinem Heimatbundesstaat, darstellen. Dazu muss ich erst die Eigenschaft finden, die die Bevölkerung eines Zensusgebiets zurückgibt. Dies kann bei der Fülle an Eigenschaften schwierig sein:
In[]:=
EntityValue["CensusTract","PropertyCount"]
Out[]=
27058
Glücklicherweise sind Eigenschaften im Allgemeinen intuitiv benannt. Mit der zufälligen Entität, die wir zuvor ausgewählt haben, können wir einfach die Bevölkerung abrufen:
In[]:=
randomEntity["Population"]
Out[]=
Wenn wir nach einer Eigenschaft suchen müssten, könnten wir alle Eigenschaften in einen einordnen, damit wir sie visualisieren können. In unserem Fall befindet sich die Eigenschaft "Population" nahe dem Ende der Liste:
In[]:=
DatasetEntityProperties["CensusTract"],
Out[]=
Dies zeigt uns einen viel besseren Weg, nach Standort zu filtern. Dieses Beispiel findet alle Bezirke innerhalb eines bestimmten Landkreises, indem es eine der Eigenschaften verwendet, "ADM2", die Landkreisdaten repräsentiert. Insbesondere sehen wir, dass es auch eine "ADM1"-Eigenschaft gibt, die den Bundesstaat repräsentiert:
Für unsere zufällige Entität, die sich in West Virginia befand, sehen wir:
Durch das Durchsehen der Beispielverwendungen unserer Daten haben wir einen viel besseren Weg gefunden, alle Bezirke in einem einzigen Bundesstaat zu erhalten. Wir können eine Klasse aller Entitäten innerhalb von Connecticut erstellen und auch verlangen, dass ihre Bevölkerungszahlen positiv sind, sodass wir alle besiedelten Regionen erhalten:
Schauen wir uns fünf zufällige Einträge an, um sicherzustellen, dass unsere Daten im gewünschten Format vorliegen: CensusTract-Entitäten, die auf ihre Bevölkerungsdichte verweisen:
Nun, da wir diese haben, können wir Beschriftungen über das Diagramm der Bevölkerungsdichte überlagern:
Es sieht so aus, als ob die Standorte der großen Städte mit den Zentren höherer Bevölkerungsdichte übereinstimmen, die wir aus unserem Datensatz gefunden haben. Dies war eine lohnende Übung, um sicherzustellen, dass unsere Daten das repräsentieren, was wir denken, und dass wir wissen, wie wir sie manipulieren können, um Visualisierungen zu erstellen.
Wenn wir in eine der Städte an der Küstenlinie hineinzoomen, sehen wir, dass wir eine viel genauere Darstellung der Küste aus dem Census-Datensatz erhalten können. Zunächst müssen wir alle Bezirke in einer Küstenstadt sammeln. Diesmal werde ich GeoWithinQ verwenden, weil ich keine kleineren Volkszählungsbezeichnungen als County finden konnte, und für eine kleine Stadt in einem kleinen Bundesstaat ist es nicht besonders ineffizient:
Dann können wir diese Polygone mit dem Stamford-Polygon vergleichen, das sich in den Long Island Sound erstreckt:
Es gibt Gründe, warum es wichtig ist, ein Polygon der Stadt zu haben, das sich in die Küstengewässer erstreckt, die sie besitzt, aber für jemanden, der sich für die Küstenlinie interessiert, haben die "CensusTract"-Polygone eine viel feinere Körnung. Den passenden Datensatz für Ihr Projekt zu finden ist entscheidend.
Erinnern Sie sich daran, wo ich früher meine EntityClass für Connecticut darauf beschränkt habe, nur Bezirke mit einer Bevölkerung größer als eins zu berücksichtigen? Das liegt daran, dass ich bei meiner Erkundung der Daten ein paar Orte mit null Einwohnern gefunden habe. Mein Favorit in Connecticut war dieses Juwel:
Es ist ein schönes Polygon, das den Bradley International Airport umgibt. Laut US Census Bureau-Daten lebt dort niemand. Ich frage mich, was jemand sonst noch über Flughäfen lernen könnte, indem er diesen Datensatz verwendet?
Dies gibt uns eine Liste der Eigenschaften innerhalb dieser Klasse – es sind 30! – und von dort aus fand ich diejenigen, die uns bei der Beantwortung unserer Frage helfen:
Diese zeigen uns die Gesamtanzahl der Haushalte mit einer bestimmten Anzahl von Fahrzeugen. Zum Beispiel können wir mit unserer zufällig ausgewählten Entität von früher eine Assoziation mit Schlüsseln erstellen, die aus der Anzahl der Autos bestehen, und Werten, die aus der Anzahl der Haushalte bestehen:
Wir werden eine EntityClass erstellen, die alle Volkszählungsbezirke in Connecticut mit Haushalten repräsentiert:
Das Abrufen des Wertes dieser Funktion für jede Entität gibt uns dann die durchschnittliche Anzahl von Autos für alle Volkszählungsbezirke in Connecticut. Diese Berechnung ruft viele Daten von der Census API ab, daher habe ich das Ergebnis der Bequemlichkeit halber als Symbol dargestellt:
Lassen Sie uns nur sicherstellen, dass die Daten in dem gewünschten Format vorliegen. Das tue ich immer, bevor ich versuche, neue Daten zu verwenden:
Nun ist es klar, dass die wahrscheinlichste durchschnittliche Anzahl von Autos pro Haushalt in Connecticut knapp unter 2 liegt. Wir können noch etwas weiter gehen und versuchen, die Wahrscheinlichkeitsverteilung zu approximieren, der die Daten folgen:
Nachdem wir nun die Verwendung dieser Daten für einen einzelnen Staat verstehen, können wir die Daten für das ganze Land visualisieren, die ich der Einfachheit halber ikonisiert habe:
Wir können nun die Autos pro Haushalt in den kontinentalen USA visualisieren:
Ich fand es auch interessant zu sehen, wie selten es ist, dass eine Familie im nördlichen Alaska ein Auto besitzt:
Alles, was ich in diesem Blog getan habe, hat nur an der Oberfläche dessen gekratzt, was mit diesem riesigen Datensatz und dem Entity-Framework der Wolfram Language möglich ist. Ich hoffe, dass die Datenaufbereitungstechniken, die ich beim Boot Camp gelernt und hier demonstriert habe, Ihr Interesse wecken, sich in neue eigene Datenprojekte zu vertiefen. Das Wolfram Data Science-Boot Camp ist ein intensives zweiwöchiges Erlebnis unter fachlicher Leitung, bei dem man trotzdem im eigenen Tempo lernen und sogar eine Multiparadigm Data Science-Zertifizierung mit dem interaktiven Kurs von Wolfram U erwerben kann.
Ich lade Sie auch dazu ein, meine Arbeit als Ausgangspunkt für Ihre eigene Auseinandersetzung mit diesen Daten zu verwenden und das, was Sie lernen, bei Wolfram Community zu veröffentlichen. Um einige Videoinhalte zu sehen, die darauf abzielen, Berechnung und Datenwissenschaft weniger entmutigend zu machen, schauen Sie sich meine Livecoding-Reihe mit Zach Shelton an, insbesondere unser neuestes Video über das Wolfram Data Repository.
DIESES NOTEBOOK ZITIEREN
DIESES NOTEBOOK ZITIEREN
Untersuchung der Zensusdaten beim Wolfram Data Science-Boot Camp
von Kevin Reiss
Wolfram Community, STAFF PICKS, 24. September 2021
https://blog.wolfram.com/2021/09/24/census-data-explorations-at-the-wolfram-data-science-boot-camp/
von Kevin Reiss
Wolfram Community, STAFF PICKS, 24. September 2021
https://blog.wolfram.com/2021/09/24/census-data-explorations-at-the-wolfram-data-science-boot-camp/