Datenwissenschaftler

Alle Jahre wieder kommt nicht nur das Christkind sondern auch das Sportamt auf mich als Vorstand eines Sportvereins zu und möchte eine Mitgliederstatistik für die jährliche Bestandserhebung haben. Und da geht der Ärger dann auch los.

Vom Dachverband sind wir angehalten, ein spezielles Programm zur Mitgliederverwaltung zu nutzen und selbiges läuft leider nur auf Windows, für mich ein Grund eine virtuelle Maschine für meinen Linux-KVM zu betreiben damit ich für die paar mal Mitgliederverwaltung im Jahr keinen eigenen Windows-Rechern hier daheim bereitstellen muss. Dieses Verwaltungsprogramm bietet auch eine Statistikauswertung, aber hier wirft es leider nur die Mitgliederzahlen für die verschiedenen, auf unseren Sport bezogenen, Altersklassen aus.

Das Sportamt hier will aber andere Zahlen, zum Einen ebenfalls nach verschiedenen Altersgruppen sortiert, aber eben nicht die gleichen Altersgruppen wie sie das Verwaltungsprogramm auswerfen würde. Und zudem will man wissen, ob die Mitglieder aus der Stadt oder dem Umland kommen. Bisher war das ganze sehr fehleranfällig mit Zählen (zum „Glück“ haben wir nur zweistellige Mitgliederzahlen) verbunden. Dieses Jahr habe ich mir vorgenommen dieses Statistik-Problem anders zu lösen.

Zunächst einmal geht es darum, die Daten für die Statisktik irgendwie auf ein anständiges Rechnersystem zu bringen. Dazu kann man im Mitgliederverwaltungsprogramm eine Liste mit freier Feldwahl erzeugen die alle nötigen Daten enthält, in erster Näherung sind das Wohnort, Geschlecht und Geburtsjahr des jeweiligen Mitgliedes. Diese einfache Liste kann man nun unter Windows in eine CSV (Comma Sperated Values) exportieren. Diese CSV hole ich dann einfach via Windows-Freigabe vom virtuellen XP auf meinen Linux-Rechner.

Dort steht natürlich das passende Handwerkszeug für den Statistiker in Form von „R“ bereit. Um die Daten für das Sportamt aufzubereiten habe ich ein paar einfache Funktionen in eine Skriptdatei geschrieben.

Die „stala“-Funktion entscheidet, ob jemand aus der Stadt oder einer der umliegenden Gemeinden kommt. Ähnliches gilt  für „manfrau“ das die „0“ bzw. „1“ die von der Windows-Anwendung kommt in „m“ bzw. „w“ umsetzt.

Die Funktion „altgruppe“ schließlich bekommt zwei Parameter, einmal das „x“ welches beim Aufruf das Geburtsjahr bekommt und einen Parameter „heuer“, der das aktuelle Jahr enthält. Damit sind keine Jahreszahlen „fest verdrahtet“ sondern nur relative Werte. Der Rückgabewert ist die Nummer der Spalte im Sportamts-Formular.

Nun ist es einfach, diese Daten einzulesen und auszuwerten:

Damit haben wir den Dataframe eingelesen. Nun wird er um ein paar wichtige Informationen angereichert:

Der Frame wurde als um Spalten wie „woher“ („Stadt“ oder „Land“), „gender“ („m“ oder „w“) und der Spalte der Alterstabelle ergänzt.

Eine Statistik zu erzeugen ist nun relativ simpel. Schauen wir uns an, wieviele Männer und Frauen wir in den entsprechenden Altersgruppen haben:

Und nun sehen wir, wo die verschiedenen Altersgruppen herkommen:

Damit habe ich reproduzierbar und ganz flott alle für das Erhebungsformular notwendigen Informationen ermittelt. Natürlich kann man auch mal ganz flott die Daten graphisch aufbereiten. So kann man z.B. mit

eine einfache Tortengraphik erzeugen die zeigt, woher unsere Mitglieder kommen. Das sieht dann so aus:

TortendiagrammDas sieht doch schon mal viel besser aus als die ewigen Zahlenfriedhöfe.

[ratings]