Читать книгу Praktische Statistik für Data Scientists - Peter Bruce - Страница 55

Hexagonal-Binning- und Konturdiagramme (Diagramme für mehrere numerische Variablen)

Оглавление

Streudiagramme sind durchaus geeignet, solange die Anzahl an Datenpunkten relativ gering ist. Das Diagramm mit den Aktienrenditen in Abbildung 1-7 bildet nur etwa 750 Datenpunkte ab. Bei Datensätzen, die Hunderttausende oder Millionen von Datenpunkten haben, erweist sich ein Streudiagramm als zu stark verdichtend, weshalb wir ein anderes Verfahren benötigen, um den Zusammenhang adäquat visualisieren zu können. Betrachten wir zur Veranschaulichung den Datensatz kc_tax, der die Steuerbemessungswerte von Wohnimmobilien in King County, Washington, wiedergibt. Um uns auf den wesentlichen Teil der Daten zu konzentrieren, entfernen wir mit der Funktion subset zunächst Beobachtungen für sehr teure und sehr kleine sowie auch große Wohnungen:

kc_tax0 <- subset(kc_tax, TaxAssessedValue < 750000 &

SqFtTotLiving > 100 &

SqFtTotLiving < 3500)

nrow(kc_tax0)

432693

In pandas filtern wir den Datensatz wie folgt:

kc_tax0 = kc_tax.loc[(kc_tax.TaxAssessedValue < 750000) &

(kc_tax.SqFtTotLiving > 100) &

(kc_tax.SqFtTotLiving < 3500), :]

kc_tax0.shape

(432693, 3)

Abbildung 1-8 zeigt ein Hexagonal-Binning-Diagramm, das die Beziehung zwischen der fertiggestellten Wohnfläche und dem steuerlich geschätzten Wert von Immobilien in King County abbildet. Anstatt einfach die einzelnen Datenpunkte abzubilden, die sich als dunkle, zusammenhängende Wolke darstellen würden, sind sie in sechseckige Felder gruppiert, die so eingefärbt werden, dass die Anzahl der Beobachtungen in diesem Feld widergespiegelt wird. In diesem Diagramm ist der positive Zusammenhang zwischen der Anzahl der fertiggestellten Wohnfläche und dem steuerlich geschätzten Wert deutlich zu erkennen. Ein interessantes Detail ist, dass wir zusätzliche Verdunklungen über dem (dunkelsten) unteren Hauptbereich erkennen können, die auf Häuser schließen lassen, die zwar jenen im Hauptbereich flächenmäßig gleichen, aber einen höheren steuerlich ermittelten Wert aufweisen.

Abbildung 1-8 wurde mit dem beeindruckenden R-Paket ggplot2 erzeugt, das von Hadley Wickham entwickelt wurde [ggplot2]. ggplot2 ist eines von mehreren modernen Softwarepaketen, die zur anspruchsvollen explorativen visuellen Datenanalyse entwickelt wurden (siehe »Mehrere Variablen visualisieren« auf Seite 44):

ggplot(kc_tax0, (aes(x=SqFtTotLiving, y=TaxAssessedValue))) +

stat_binhex(color='white') +

theme_bw() +

scale_fill_gradient(low='white', high='black') +

labs(x='Fertiggestellte Wohnfläche (in Quadratfuß)',

y='Steuerlich geschätzter Wert')

In Python können Hexagonal-Binning-Diagramme mit der pandas-Data-Frame-Methode hexbin leicht erstellt werden:

ax = kc_tax0.plot.hexbin(x='SqFtTotLiving', y='TaxAssessedValue',

gridsize=30, sharex=False, figsize=(5, 4))

ax.set_xlabel('Fertiggestellte Wohnfläche (in Quadratfuß)')

ax.set_ylabel('Steuerlich geschätzter Wert')

Abbildung 1-8: Hexagonal-Binning-Diagramm zur Darstellung des Zusammenhangs zwischen dem steuerlich geschätzten Wert und der fertiggestellten Wohnfläche von Immobilien

In Abbildung 1-9 werden Konturen (Niveau- bzw. Höhenlinien) verwendet, die einem Streudiagramm überlagert sind, um die Beziehung zwischen zwei numerischen Variablen zu visualisieren. Die Höhenlinien bilden im Wesentlichen eine topografische Karte für zwei Variablen ab; jedes Höhenlinienband stellt eine bestimmte Dichte von Punkten dar, die zunimmt, wenn man sich dem »Peak« nähert. Dieses Diagramm offenbart einen ähnlichen Zusammenhang wie das in Abbildung 1-8: Es gibt einen zweiten Peak »nördlich« des Hauptpeaks. Dieses Diagramm wurde ebenfalls mit dem ggplot2-Paket mit der integrierten Funktion geom_density2d erstellt:

ggplot(kc_tax0, aes(SqFtTotLiving, TaxAssessedValue)) +

theme_bw() +

geom_point(alpha=0.1) +

geom_density2d(color='white') +

labs(x='Fertiggestellte Wohnfläche (in Quadratfuß)',

y='Steuerlich geschätzter Wert')

In Python können Sie ein Konturdiagramm mit der seaborn-Funktion kdeplot erzeugen:

ax = sns.kdeplot(kc_tax0.SqFtTotLiving, kc_tax0.TaxAssessedValue, ax=ax)

ax.set_xlabel('Fertiggestellte Wohnfläche (in Quadratfuß)')

ax.set_ylabel('Steuerlich geschätzter Wert')

Abbildung 1-9: Konturdiagramm zur Darstellung des Zusammenhangs zwischen dem steuerlich geschätzten Wert und der fertiggestellten Wohnfläche von Immobilien

Es gibt noch weitere Diagrammtypen, die die Beziehung zwischen zwei numerischen Variablen aufzeigen können, unter anderem Heatmaps. Heatmaps, Hexagonal-Binning- und Konturdiagramme bilden alle eine zweidimensionale Dichtefunktion ab. Daher sind sie die natürlichen Analoga zu Histogrammen und Dichtediagrammen.

Praktische Statistik für Data Scientists

Подняться наверх