Eine Buchempfehlung von Dominique Rifqui, Diso Consultant

„Probabilistic Programming & Bayesian Methods for Hackers“ führt in die Thematik „Data Mining” ein. Der Schwerpunkt liegt auf den statistischen Ansätzen von Bayes.

Die Bayes’sche Statistik wird an Hand von verschiedenen Anwendungsbeispielen erklärt, beispielsweise:

  • Abschätzung wie sich das SMS-Verhalten einer Person ändert oder welches Webdesign verkaufsfördernd ist

  •  Schätzung der Rücklaufquote bei der U.S.-Volkszählung oder des Ausgangs von Fussballmeisterschaften

  • Ordnung von Webkommentaren nach Votes (How to order Reddit comments, Counting Github stars)

  •  Lokalisierung von dunkler Materie aufgrund von Verzerrungen in Sternbildern

Das Buch liegt in Form eines iPython Notebooks vor und gibt eine Einführung in die Python Bibliothek PyMC, welche es ermöglicht in bereits wenigen Zeilen Bayes’sche Statistiken in Python zu erstellen. iPython ist ein Werkzeug das erlaubt, interaktive Texte basierend auf Python zu verfassen. Codebeispiele können direkt ausgeführt und abgeändert werden.*

Worin unterscheidet sich die klassische Statistik von der Bayes’schen?

Die klassische, oder genauer, frequentistische Statistik, interpretiert die Wahrscheinlichkeit eines Ereignisses als Langzeithäufigkeit. Diese Interpretation führt in vielen Fällen zu Komplikationen in der Interpretation der Modelle und Ergebnisse .**

Die Bayes’sche Statistik geht von einer intuitiveren Definition der Wahrscheinlichkeit aus: Von der Plausibilität eines Ereignisses. Diese Definition macht auch dann Sinn, wenn es sich um Ereignisse handelt, die keine Langzeitfrequenz haben, wie beispielsweise einmalige Ereignisse oder Parameter eines statistischen Modells.

Insbesondere können auch „Nicht-Experten“ mit kleineren Datenmengen sinnvolle Statistiken erstellen, wie der folgende Abschnitt illustriert.

Ein Automat kann auf Knopfdruck entweder „Ja“ oder „Nein“ anzeigen.
Drei Mal wird auf den Knopf gedrückt. Die beiden ersten Male wird „Nein“ angezeigt. Erst beim dritten Mal zeigt der Automat „Ja“ an. Aufgrund dieses Wissens soll jetzt geschätzt werden, mit welcher Häufigkeit der Automat „Ja“ anzeigt.

Das folgende und alle weiteren Diagramme wurden in wenigen Minuten mit dem ersten Code-Beispiel im Buch (iPython Notebook) erstellt.

Experiment: „Ja-Nein-Automat“ – die Wahrscheinlichkeit eines „Ja“

Ein Automat kann auf Knopfdruck entweder „Ja“ oder „Nein“ anzeigen.
Drei Mal wird auf den Knopf gedrückt. Die beiden ersten Male wird „Nein“ angezeigt. Erst beim dritten Mal zeigt der Automat „Ja“ an. Aufgrund dieses Wissens soll jetzt geschätzt werden, mit welcher Häufigkeit der Automat „Ja“ anzeigt.

Das folgende und alle weiteren Diagramme wurden in wenigen Minuten mit dem ersten Code-Beispiel im Buch (iPython Notebook) erstellt.

Darstellung 1: Schätzung der Häufigkeit eines ‘Ja’ nach 3 Mal Knopfdrücken

Der plausibelste Wert liegt bei 0.33 = 33%, aber die Unsicherheit ist gross. Nur die Häufigkeiten 0% und 100% sind ganz ausgeschlossen. Häufigkeiten zwischen 10% und 60% sind allesamt plausibel.

Um mit den gleichen Grundfakten zu einem ähnlich informativen Resultat im frequentistischen Ansatz (klassische Statistik) zu gelangen, benötigt man wesentlich mehr statistisches Know-how und Erfahrung.
Ein herausragendes Kennzeichen des Bayes’schen Ansatzes ist, dass er das Lernen aus neuen Fakten simuliert. Jederzeit können ohne zusätzlichen Aufwand neue Fakten in bestehendes Vorwissen integriert werden.

Das Experiment wird mit dem „Ja-Nein-Automat“ fortgesetzt. Weitere 3 Mal wird der Knopf gedrückt. Nur beim zweiten Mal erscheint „Ja“.

Darstellung 2 illustriert, wie diese Fakten in das vorherige Wissen integriert werden. Es zeigt in 4 Diagrammen die Updates der Schätzung nach dem jeweiligen Knopfdruck auf. Das erste Diagramm entspricht dem Vorwissen aus dem ersten Experiment.

Das statistische Modell lernt also aus den neuen Daten hinzu. Zusätzlich wird immer die Unschärfe des Wissens dargestellt und aufgrund neuer Fakten angepasst. So sieht man immer, welche Bandbreite an Ereignissen oder an Parameterwerten noch plausibel ist.

Wieso ist der frequentistische Ansatz bekannter?

Der Mehrgewinn an Übersicht und Intuitivität im Bayes’schen Ansatz geht zu Lasten eines höheren Rechenaufwandes: Die Berechnungen, die heute im Nu durch die Python Bibliothek PyMC im Hintergrund erledigt werden, waren bis Ende des zwanzigsten Jahrhunderts unverhältnismässig aufwändig.

Erst die in den 1980er Jahren entdeckten Vereinfachungen der Berechnungen (Monte Carlo Markov Ketten) und die zunehmende Zugänglichkeit von Rechenpower haben dem Bayes’schen Ansatz Aufwind gebracht.
Die Bayes’sche Statistik wurde im 18. Jahrhundert von Thomas Bayes und Pierre-Simon Laplace begründet. Sie ist also nicht wirklich neu. Die heute weit verbreitete frequentistische Statistik wurde ab den 1920er Jahren von Ronald A. Fisher, Jerzy Neyman und Egon Pearson entwickelt.

  Quintessenz

Beide statistischen Ansätze können dasselbe, aber der Bayes’sche Ansatz bietet mehr Transparenz und Übersicht und führt somit zu Resultaten, die einfacher zu interpretieren sind.

Anders ausgedrückt: Um frequentistische Methoden korrekt anzuwenden benötigt man viel statistisches Know-how und Erfahrung. Der Bayes’sche Ansatz setzt zur korrekten Anwendung weniger statistisches Know-how und Erfahrung voraus, aber bedingt mehr Rechenaufwand. Die Anwendung der Bayes’schen Statistik durch weniger versierte Statistiker führt zu weniger fehlerhaften Resultaten.

Die besprochene Einführung in die Bayes’sche Statistik stützt sich auf die Sprache Python und deren Bibliothek PyMC. Mit relativ wenig Code können ansehnliche Ergebnisse erzielt werden. Der Code zur Erstellung der oben abgebildeten Diagramme ist gerade 25 Zeilen lang. Die Python Ressourcen können sich im Vergleich zu anderen Datenanalyse-Tools wie beispielsweise R, MATLAB oder SAS durchaus sehen lassen.

Literaturhinweise

Für einen Vergleich zwischen Python und R siehe auch:

Weitere Links zur Debatte Bayes’scher versus frequentistischer Ansatz:

Eine deutschsprachige Einführung in die Datenanalyse unter Berücksichtigung des Bayes’schen Ansatzes für Ingenieure und Wirtschaftswissenschaftler:

* IPython ist der Vorgänger des Tools Jupyter, das, neben Python, eine breite Auswahl an Programmiersprachen unterstützt, beispielsweise: R, Matlab, Lua, Ruby, JavaScript, Java, C++, C# und Perl. Weitere Beispiele finden Sie hier.
** Beispiel zu möglichen Komplikationen in der Interpretation der Modelle und Ergebnisse

Diso AG – Der Daten- und Cloud-Experte

Die Diso AG ist ein renommierter IT-Dienstleister und langjähriger Oracle-Vertriebspartner in der Schweiz mit Schwerpunkten in den Bereichen Datenbanken und Cloud-Lösungen. Diso bietet ihren Kunden beispielsweise die Oracle Plattform as a Service-Lösung und die dazugehörige Datenmigration an. Kunden profitieren des Weiteren vom Komplettlösungsangebot im Sinne von Planung, Integration, Support inklusive Betrieb und Überwachung von IT-Infrastrukturen und Datenbanksystemen.
Im Bereich Software-Engineering entwickelt Diso massgeschneiderte IT und Software-Lösungen für unternehmensspezifische Anwendungen, wann immer sinnvoll mit einem mobile-first Ansatz. Zudem ist Diso Spezialist wenn es um die Software-basierte Optimierung von Performance geht. Auf die Kompetenz des traditionsreichen IT-Dienstleisters und Mittelständlers vertrauen bereits namhafte Kunden aus den Schwerpunktbranchen Banken, Versicherungen Detailhandel und öffentliche Verwaltung.
Die Diso designt wandlungsfähige IT-Systeme, entwickelt massgeschneiderte Software und ermöglicht die performante Verwendung und Auswertung von Informationen.