Abo
  • Services:
Anzeige
Ösi-Tux mit Thermometer
Ösi-Tux mit Thermometer (Bild: Alexander Merz/Golem.de)

Die Programmiersprache für Statistikfans

Zunächst haben wir die Daten direkt aus der MySQL-Datenbank ermittelt. Aber schon beim Median nahmen wir R zu Hilfe. Die Programmiersprache R ist speziell für die Datenanalyse entwickelt worden, insbesondere auch für statistische Analysen. Deshalb sind solche Operationen zuweilen sehr trivial und enorm schnell. Für die Bestimmung des obengenannten Median der Anzahl von Messwerten benötigen wir lediglich vier Codezeilen auf der interaktiven Shell von R, nachdem wir aus der Datenbank die nach Token gruppierten, aber unsortierten Daten herausgezogen haben:

Anzeige

  1. # Lade CSV-Datei
  2. daten <- read.csv("daten.csv");
  3. # Benenne Spalten
  4. colnames(daten)<-c("token", "werte_anzahl");
  5. # Beachte nur die Zeilen mit einem Token
  6. daten <- daten[daten$token != 'Null',]
  7. # Median ermitteln
  8. median(daten$werte_anzahl);
  9. [1] 2166

Der Aufruf der median()-Funktion benötigt nur Millisekunden. Wie im Beispiel aber schon deutlich wird, bringt R als fachspezifische Sprache ihre eigene Syntax und andere Eigenheiten mit. Klassische Sprachelemente wie Schleifen und if-Bedingungen sind zwar möglich, führen aber oft zu kompliziertem und langsamem Code. Wer sich aber auf R einlässt und aus eingefahrenen Denkmustern aus C, PHP & Co. ausbricht, kann mit wenigen Zeilen Code zuweilen wahre Wunder zustande bringen.

QGIS und Python setzten wir auch ein

Zwangsläufig geht damit eine steile Lernkurve einher, die uns mehr Zeit gekostet hat, als wir ursprünglich dachten. Das gilt auch für QGIS. Es ist ein Programm für geografische Analysen, Anfänger dürften an ihm aber erst einmal schnell als Malprogramm für Karten Gefallen finden. Trotzdem verlangt es einen gehörigen Aufwand, um sich in die Fachbegriffe und Workflows einzuarbeiten. Schließlich verwenden wir auch Python. Wir benutzen es hauptsächlich, um Daten aus MySQL in CSV-Daten zu arrangieren. Einiges davon können wir auch MySQL erledigen lassen, in Python fällt es uns aber zuweilen leichter und der Code ist übersichtlicher. Allerdings sind CSV-Dateien im Zusammenspiel mit R sehr leicht zu benutzen. Und wir merken früh, dass es sinnvoll ist, auch vermeintliche Zwischenergebnisse besser stets auf Festplatte zu speichern, um jederzeit unsere Arbeit unterbrechen zu können.

Es gibt auch eine ganze Reihe kommerzielle Programme für die folgenden Aufgaben, mit denen wir uns das Leben wohl einfacher machen würden. Doch zum einen wollen wir offene Programme einzusetzen, zum anderen wollen wir so viel wie möglich durch Skripte automatisieren können. Idealerweise können wir diese Skripte für spätere Aufgaben auch wiederverwenden.

Heiteres Städteraten

Zurück zu den Daten. Bevor wir tatsächlich Aussagen extrahieren können, validieren wir die Daten. Am Anfang stehen die Städtenamen. Spaßeinträge halten sich sehr in Grenzen, auch wenn wir einige Einträge anfangs dafür halten. Aber die Orte "Au ZH", "Ban Pong" und "Wetter" heißen wirklich so. Mancher Lokalpatriot hat auch noch den Stadtteil angegeben. Mit Zeichensatz-Problemen haben wir ebenfalls gerechnet. Auch auffällig viele Benutzer kannten wohl das Problem, weshalb wir zum Beispiel auf "Koeln" und "Luebeck" stoßen, aber auch "Munich". Mehrdeutigkeiten lösen wir üblicherweise aufgrund einer ebenfalls angegebenen Postleitzahl eindeutig auf.

Um die Breitengrad- und Längengrad-Angabe erst einmal grob zu prüfen, nutzen wir einen simplen Trick: Wir nutzen QGIS im Zusammenspiel mit Vektorkarten, um die Angaben darzustellen. Eine hilfreiche Übersicht, wo solche Karten heruntergeladen werden können, gibt es auf einer Webseite.

Mit Längen- und Breitengraden hantieren

So erhalten wir einen ersten Überblick, und wir entdecken tatsächlich einige Merkwürdigkeiten. Einige Punkte liegen in Ländern, die nicht in unserer Datenbank vermerkt sind. Wir schauen uns die Datensätze genauer an und stellen fest, dass offensichtlich einige Nutzer den Breitengrad (Latitude) und Längengrad (Longitude) vertauscht haben. Einige Punkthaufen erinnern uns an ein gitterartiges Muster und liegen weitab jeglicher Besiedlung. Hier fehlt es den geografischen Angaben offensichtlich an Genauigkeit. Das ist leider unsere eigene Schuld: Wir empfahlen in unserer Dokumentation ursprünglich, Breiten- und Längengrad auf zwei Stellen nach dem Komma zu kürzen. Das haben wir zwar korrigiert, aber das war zu spät. Da wir aber sowieso fehlende geografische Angaben nachträglich ermitteln wollen, entscheiden wir uns, dieses auch bei bereits bestehenden Daten zu tun.

 Mitmachprojekt: Frostbeulen, zieht nach Österreich!Geoencoding hilft uns weiter 

eye home zur Startseite
H4ndy 15. Mär 2017

Seit Golem.de nur noch über SSL läuft, funktioniert mein kleiner ESP leider nicht mehr...

Themenstart

Eheran 09. Mär 2017

Weil das Luftfeuchte, also verdampftes Wasser, ist. So wie man bei kochendem Wasser...

Themenstart

am (golem.de) 09. Mär 2017

Da danken wir doch ganz besonders!

Themenstart

am (golem.de) 09. Mär 2017

Vielen Dank und der Fehelr ist gefixt!

Themenstart

am (golem.de) 09. Mär 2017

Vielen Dank für das Lob! Wegen Skript siehe hier: https://forum.golem.de/kommentare...

Themenstart

Kommentieren



Anzeige

Stellenmarkt
  1. Dataport, Altenholz bei Kiel
  2. AGRAVIS Raiffeisen AG, Münster
  3. Bertrandt Services GmbH, Köln
  4. DATAGROUP Business Solutions GmbH, Hamburg


Anzeige
Blu-ray-Angebote
  1. 23,99€ (Vorbesteller-Preisgarantie)
  2. 29,99€ (Vorbesteller-Preisgarantie)
  3. (u. a. Platoon, Erbarmungslos, Training Day, Spaceballs, Einsame Entscheidung)

Folgen Sie uns
       


  1. Die Woche im Video

    Cebit wird heiß, Android wird neu, Aliens werden gesprächig

  2. Mobilfunkausrüster

    Welche Frequenzen für 5G in Deutschland diskutiert werden

  3. XMPP

    Bundesnetzagentur will hundert Jabber-Clients regulieren

  4. Synlight

    Wie der Wasserstoff aus dem Sonnenlicht kommen soll

  5. Pietsmiet

    "Alle Twitch-Kanäle sind kostenpflichtiger Rundfunk"

  6. Apache-Lizenz 2.0

    OpenSSL plant Lizenzwechsel an der Community vorbei

  7. 3DMark

    Overhead-Test ersetzt Mantle durch Vulkan

  8. Tastatur-App

    Nutzer ärgern sich über Verschlimmbesserungen bei Swiftkey

  9. Kurznachrichten

    Twitter erwägt Abomodell mit Zusatzfunktionen

  10. FTTH

    M-net-Glasfaserkunden nutzen 120 GByte pro Monat



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Videostreaming im Zug: Maxdome umwirbt Bahnfahrer bei Tempo 230
Videostreaming im Zug
Maxdome umwirbt Bahnfahrer bei Tempo 230
  1. USA Google will Kabelfernsehen über Youtube streamen
  2. Verband DVD-Verleih in Deutschland geht wegen Netflix zurück
  3. Nintendo Vorerst keine Videostreaming-Apps auf Switch

Buch - Apple intern: "Die behandeln uns wie Sklaven"
Buch - Apple intern
"Die behandeln uns wie Sklaven"
  1. Übernahme Apple kauft iOS-Automatisierungs-Tool Workflow
  2. Instandsetzung Apple macht iPhone-Reparaturen teurer
  3. Earbuds mit Sensor Apple beantragt Patent auf biometrische Kopfhörer

Lithium-Akkus: Durchbruch verzweifelt gesucht
Lithium-Akkus
Durchbruch verzweifelt gesucht
  1. Super MCharge Smartphone-Akku in 20 Minuten voll geladen
  2. Brandgefahr HP ruft über 100.000 Notebook-Akkus zurück
  3. Brandgefahr Akku mit eingebautem Feuerlöscher

  1. Re: Denen geht das A-Wasser

    ArcherV | 10:49

  2. Re: Die Stunde für Lexus

    ArcherV | 10:45

  3. Re: 24h XXX-Streams

    Lemo | 10:43

  4. Re: Na Gott sei Dank

    kingnewbie2012 | 10:42

  5. CB-Funk

    Crass Spektakel | 10:39


  1. 09:03

  2. 17:45

  3. 17:32

  4. 17:11

  5. 16:53

  6. 16:38

  7. 16:24

  8. 16:09


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel