Tag Archive for: Statistik

Wahrscheinlichkeitsverteilungen – Zentralen Grenzwertsatz verstehen mit Pyhton

Wahrscheinlichkeitsverteilung sind im Data Science ein wichtiges Handwerkszeug. Während in der Mathevorlesung die Dynamik dieser Verteilungen nur durch wildes Tafelgekritzel schwierig erlebbar zu machen ist, können wir mit Programmierkenntnissen (in diesem Fall wieder mit Python) eine kleine Testumgebung für solche Verteilungen erstellen, um ein Gefühl dafür zu entwickeln, wie unterschiedlich diese auf verschiedene Wahrscheinlichkeitswerte, Varianz und Mengen an Datenpunkten reagieren und wann sie untereinander annäherungsweise ersetzbar sind – der zentrale Grenzwertsatz. Den Schwerpunkt lege ich in diesem Artikel auf die Binominal- und Normalverteilung.

Für die folgenden Beispiele werden folgende Python-Bibliotheken benötigt:

import matplotlib.pyplot as pyplot
import random as random
import math as math

Read more

Warenkorbanalyse in R

Was ist die Warenkorbanalyse?

Die Warenkorbanalyse ist eine Sammlung von Methoden, die die beim Einkauf gemeinsam gekauften Produkte oder Produktkategorien aus einem Handelssortiment untersucht. Ziel der explorativen Warenkorbanalyse ist es, Strukturen in den Daten zu finden, so genannte Regeln, die beschreiben, welche Produkte oder Produktkategorien gemeinsam oder eben nicht gemeinsam gekauft werden.

Beispiel: Wenn ein Kunde Windeln und Bier kauft, kauft er auch Chips.

Werden solche Regeln gefunden, kann das Ergebnis beispielsweise für Verbundplatzierungen im Verkaufsraum oder in der Werbung verwendet werden.

Datenaufbau

Die Daten, die für diese Analyse untersucht werden, sind Transaktionsdaten des Einzelhandels. Meist sind diese sehr umfangreich und formal folgendermaßen aufgebaut:

data-bsp

Ausschnitt eines Beispieldatensatzes: Jede Transaktion (= Warenkorb = Einkauf) hat mehrere Zeilen, die mit der selben Transaktionsnummer (Spalte Transaction) gekennzeichnet sind. In den einzelnen Zeilen der Transaktion stehen dann alle Produkte, die sich in dem Warenkorb befanden. In dem Beispiel sind zudem noch zwei Ebenen von Produktkategorien als zusätzliche Informationen enthalten.

Es gibt mindestens 2 Spalten: Spalte 1 enthält die Transaktionsnummer (oder die Nummer des Kassenbons, im Beispielbild Spalte Transaction), Spalte 2 enthält den Produktnamen. Zusätzlich kann es weitere Spalten mit Infos wie Produktkategorie, eventuell in verschiedenen Ebenen, Preis usw. geben. Sind Kundeninformationen vorhanden, z.B. über Kundenkarten, so können auch diese Informationen enthalten sein und mit ausgewertet werden.

Beschreibende Datenanalyse

Die Daten werden zunächst deskriptiv, also beschreibend, analysiert. Dazu werden z.B. die Anzahl der Transaktionen und die Anzahl der Produkte im Datensatz berechnet. Zudem wird die Länge der Transaktionen, also die Anzahl der Produkte in den einzelnen Transaktionen untersucht. Dies wird mit deskriptiven Maßzahlen wie Minimum, Maximum, Median und Mittelwert in Zahlen berichtet sowie als Histogramm grafisch dargestellt, siehe folgende Abbildung.

hist-sizes
Histogramm der Längenverteilung der Transaktionen.

Die häufigsten Produkte werden ermittelt und können gesondert betrachtet werden. Als Visualisierung kann hier ein Balkendiagramm mit den relativen Häufigkeiten der häufigsten Produkte verwendet werden, wie im folgenden Beispiel.

relfreq-items
Relative Häufigkeiten der häufigsten Produkte, hier nach relativer Häufigkeit größer 0,1 gefiltert.

Ähnliche Analysen können bei Bedarf auch auf Kategorien-Ebene oder nach weiteren erhobenen Merkmalen selektiert durchgeführt werden, je nachdem, welche Informationen in den Daten stecken und welche Fragestellungen für den Anwender interessant sind.

Verbundanalyse

Im nächsten Schritt wird mit statistischen Methoden nach Strukturen in den Daten gesucht, auch Verbundanalyse genannt. Als Grundlage werden Ähnlichkeitsmatrizen erstellt, die für jedes Produktpaar die Häufigkeit des gemeinsamen Vorkommens in Transaktionen bestimmen. Solch eine Ähnlichkeitsmatrix ist zum Beispiel eine Kreuztabelle in der es für jedes Produkt eine Spalte und eine Zeile gobt. In den Zellen in der Tabelle steht jeweils die Häufigkeit, wie oft dieses Produktpaar gemeinsam in Transaktionen in den Daten vorkommt, siehe auch folgendes Beispiel.

screenshot-crosstable-ausschnitt

Ähnlichkeitsmatrix oder Kreuztabelle der Produkte: Frankfurter und Zitrusfrüchte werden in 64 Transaktionen zusammen gekauft, Frankfurter und Berries in 22 usw.

Auf Basis solch einer Ähnlichkeitsmatrix wird dann z.B. mit Mehrdimensionaler Skalierung oder hierarchischen Clusteranalysen nach Strukturen in den Daten gesucht und Gemeinsamkeiten und Gruppierungen gefunden. Die hierarchische Clusteranalyse liefert dann ein Dendrogram, siehe folgende Abbildung, in der ähnliche Produkte miteinander gruppiert werden.

dendrogram

Dendrogram als Visualisierung des Ergebnisses der hierarchischen Clusterananlyse. Ähnliche Produkte (also Produkte, die zusammen gekauft werden) werden zusammen in Gruppen geclustert. Je länger die vertikale Verbindungslinie ist, die zwei Gruppen oder Produkte zusammen fasst, um so unterschiedlicher sind diese Produkte bzw. Gruppen.

Assoziationsregeln

Schließlich sollen neben den Verbundanalysen am Ende in den Daten Assoziationsregeln gefunden werden. Es werden also Regeln gesucht und an den Daten geprüft, die das Kaufverhalten der Kunden beschreiben. Solch eine Regel ist zum Beispiel „Wenn ein Kunde Windeln und Bier kauft, kauft er auch Chips.“ Formal: {Windeln, Bier} → {Chips}

Für diese Regeln lassen sich statistische Maßzahlen berechnen, die die Güte und Bedeutung der Regeln beschreiben. Die wichtigsten Maßzahlen sind Support, Confidence und Lift:

Support ist das Signifikanzmaß der Regel. Es gibt an, wie oft die gefundene Regel in den Daten anzuwenden ist. Wie oft also die in der Regel enthaltenen Produkte gemeinsam in einer Transaktion vorkommen. In dem Beispiel oben: Wie oft kommen Windeln, Bier und Chips in einer Transaktion gemeinsam vor?

Confidence ist das Qualitätsmaß der Regel. Es beschreibt, wie oft die Regel richtig ist. In dem oben genanten Beispiel: Wie oft ist in einer Transaktion Chips enthalten, wenn auch Windeln und Bier enthalten sind?

Lift ist das Maß der Bedeutung der Regel. Es sagt aus wie oft die Confidence den Erwartungswert übersteigt. Wie ist die Häufigkeit des gemeinsamen Vorkommens von Windeln, Bier und Chips im Verhältlnis zur erwarteten Häufigkeit des Vorkommens, wenn die Ereignisse stochastisch unabhängig sind?

Algorithmen

In den Daten werden zunächst alle möglichen Regeln gesammelt, die einen Mindestwert an Support und Confidence haben. Die Mindestwerte werden dabei vom Nutzer vorgegeben. Da es sich bei Transaktionsdaten um große Datenmengen handelt und häufig große Anzahlen von Produkten enthalten sind, wird die Suche nach Regeln zu einem komplexen Problem. Es wurden verschiedene effiziente Algorithmen als Suchstrategien entwickelt, z.B. der APRIORI-Algorithmus von Agrawal und Srikant (1994), der auch im weiter unten vorgestellten Paket arules von R verwendet wird.

Sind die Assoziationsregeln gefunden, können Sie vom Nutzer genauer untersucht werden und z.B. nach den oben genannten Kennzahlen sortiert betrachtet werden, oder es werden die Regeln für spezielle Warenkategorien genauer betrachtet, siehe folgendes Beispiel.

screenshot-rules

Beispielausgabe von Regeln, hier die drei Regeln mit dem besten Lift. In der ersten Regel sieht man: Wenn Bier und Wein gekauft wird, wird auch Likör gekauft. Diese Regel hat einen Support von 0,002. Diese drei Produkte kommen also in 0,2 % der Transaktionen vor. Die Confidence von 0,396 zeigt, dass in 39,6 % der Transaktionen auch Likör gekauft wird, wenn Bier und Wein gekauft wird.

Umsetzung mit R

Die hier vorgestellten Methoden zur Warenkorbanalyse lassen sich mit dem Paket arules der Software R gut umsetzen. Im Folgenden gebe ich eine Liste von nützlichen Befehlen für diese Analysen mit dieser Software. Dabei wird mit data hier durchgehend der Datensatz der Transaktionsdaten bezeichnet.

summary(data)

Zusammenfassung des Datensatzes:

  • Anzahl der Transaktionen und Anzahl der Warengruppen
  • die häufigsten Produkte werden genannt mit Angabe der Häufigkeiten
  • Längenverteilung der Transaktionen (Anzahl der Produkte pro Transaktion): Häufigkeiten, deskriptive Maße wie Quartile
  • Beispiel für die Datenstruktur (Levels)
size(data)

Längen der Transaktionen (Anzahl der Produkte pro Transaktion)

hist(size(data))

Histogramm als grafische Darstellung der Transaktionslängen

itemFrequencyPlot(data, support=0.1)

rel. Häufigkeiten der einzelnen Produkte, hier nur die mit mindestens 10 % Vorkommen

crossTable(data)

Äquivalenzmatrix: Häufigkeiten der gemeinsamen Käufe für Produktpaare

dissJacc <- dissimilarity(data[, itemFrequency(data) > 0.05], method = "Jaccard", which = "items")

Unähnlichkeitsmatrix für die hierarchische Clusteranalyse

hcWard <- hclust(dissJacc, method = "ward.D")

Hierarchische Clusteranalyse

plot(hcWard)

Dendrogram der hierarchischen Clusteranalyse

rules <- apriori(data, parameter = list(support = 0.001, confidence = 0.2), control = list(verbose = FALSE))

Assoziationsregeln finden mit APRIORI-Algorithmus, hier Regeln mit mindestens 1% Support und 20 % Confidence

summary(rules)

Zusammenfassung der oben gefundenen Regeln (Anzahl, Eigenschaften Support, Confidence, Lift)

inspect(SORT(rules,by=“lift“)[1:5])

Einzelne Regeln betrachten, hier die laut Lift besten 5 Regeln

Referenzen:

  • Michael Hahsler, Kurt Hornik, Thomas Reutterer: Warenkorbanalyse mit Hilfe der Statistik-Software R, Innovationen in Marketing, S.144-163, 2006.
  • Michael Hahsler, Bettina Grün, Kurt Hornik, Christian Buchta, Introduciton to arules – A computational environment for mining association rules and frequent item sets. (Link zum PDF)
  • Rakesh Agrawal, Ramakrishnan Srikant, Fast algorithms for mining association rules, Proceedings of the 20th VLDB Conference Santiago, Chile, 1994
  • Software R:  R Core Team (2016). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. Link: R-Project.org.
  • Paket: arules: Mining Association Rules using R.

Beispieldatensatz: Groceries aus dem Paket arules

Wie lernen Maschinen?

Im dritten Teil meiner Reihe Wie lernen Maschinen? wollen wir die bisher kennengelernten Methoden anhand eines der bekanntesten Verfahren des Maschinellen Lernens – der Linearen Regression – einmal gegenüberstellen. Die Lineare Regression dient uns hier als Prototyp eines Verfahrens aus dem Gebiet der Regression, in weiteren Artikeln werden die Logistische Regression als Prototyp eines Verfahrens aus dem Gebiet der Klassifikation und eine Collaborative-Filtering- bzw. Matrix-Faktorisierungs-Methode als Prototyp eines Recommender-Systems behandelt.

Read more

Man redet gerne über Daten, genutzt werden sie nicht

Der Big Data Hype ist vorbei und auf dem Anstieg zum „ Plateau of Productivity“. Doch bereits in dieser Phase klafft die Einschätzung von Analysten mit der Verbreitung von Big Data Predictive Analytics/Data Mining noch weit von der Realität in Deutschland auseinander. Dies belegt u.a. eine Studie der T-Systems Multimedia Solutions, zu welcher in der FAZ* der Artikel Man redet gerne über Daten, genutzt werden sie nicht, erschienen ist. Mich überrascht diese Studie nicht,  sondern bestätigt meine langjährige Markterfahrung.

Die Gründe sind vielfältig: keine Zeit, keine Priorität, keine Kompetenz, kein Data Scientist, keine Zuständigkeit, Software zu komplex – Daten und Use-Cases sind aber vorhanden.

Im folgenden Artikel wird die Datenanalyse- und Data-Mining Software der Synop Systems vorgestellt, welche „out-of-the-box“ alle Funktionen bereitstellt, um Daten zu verknüpfen, zu strukturieren, zu verstehen, Zusammenhänge zu entdecken, Muster in Daten zu lernen und Prognose-Modelle zu entwickeln.

Anforderung an „Advanced-Data-Analytics“-Software

Um Advanced-Data-Analytics-Software zu einer hohen Verbreitung zu bringen, sind folgende Aspekte zu beachten:

  1. Einfachheit in der Nutzung der Software
  2. Schnelligkeit in der Bearbeitung von Daten
  3. Analyse von großen Datenmengen
  4. Große Auswahl an vorgefertigten Analyse-Methoden für unterschiedliche Fragestellungen
  5. Nutzung (fast) ohne IT-Projekt
  6. Offene Architektur für Data-Automation und Integration in operative Prozesse

Synop Analyzer – Pionier der In-Memory Analyse

Um diese Anforderungen zu erfüllen, entstand der Synop Analyzer, welcher seit 2013 von der Synop Systems in den Markt eingeführt wird. Im Einsatz ist die Software bei einem DAX-Konzern bereits seit 2010 und zählt somit zum Pionier einer In-Memory-basierenden Data-Mining Software in Deutschland. Synop Analyzer hat besondere Funktionen für technische Daten. Anwender der Software sind aber in vielen Branchen zu finden: Automotive, Elektronik, Maschinenbau, Payment Service Provider, Handel, Versandhandel, Marktforschung.

Die wesentlichen Kernfunktionen des  Synop Analyzer sind:

a. Eigene In-Memory-Datenhaltung:

Optimiert für große Datenmengen und analytische Fragestellungen. Ablauffähig auf jedem Standard-Rechner können Dank der spaltenbasierenden Datenhaltung und der Komprimierung große Datenmengen sehr schnell analysiert werden. Das Einlesen der Daten erfolgt direkt aus Datenbanktabellen der Quellsysteme oder per Excel, CSV, Json oder XML. Unterschiedliche Daten können verknüpf und synchronisiert werden. Hohe Investitionen für Big-Data-Datenbanken entfallen somit. Eine Suche von Mustern von diagnostic error codes (dtc), welche mind. 300 Mal (Muster) innerhalb 100 Mio. Datenzeilen vorkommen, dauert auf einem I5-Proz. ca. 1200 Sek., inkl. Ausgabe der Liste der Muster. Ein Prognosemodel mittels Naive-Bayes für das Produkt „Kreditkarte“ auf 800 Tsd. Datensätzen wird in ca. 3 Sek. berechnet.

b. Vielzahl an Analyse-Methoden

Um eine hohe Anzahl an Fragestellungen zu beantworten, hat der Synop Analyzer eine Vielzahl an vorkonfigurierten Analyse- und Data-Mining-Verfahren (siehe Grafik) implementiert. Daten zu verstehen wird durch Datenvisualisierung stark vereinfacht. Die multivariate Analyse ist quasi interaktives Data-Mining, welches auch von Fachanwendern schnell genutzt wird. Ad hoc Fragen werden unmittelbar beantwortet – es entstehen aber auch neue Fragen dank der interaktiven Visualisierungen. Data-Mining-Modelle errechnen und deren Modellgüte durch eine Testgruppe zu validieren ist in wenigen Minuten möglich. Dank der Performance der In-Memory-Analyse können lange Zeitreihen und alle sinnvollen Datenmerkmale in die Berechnungen einfließen. Dadurch werden mehr Einflussgrößen erkannt und bessere Modelle errechnet. Mustererkennung ist kein Hokuspokus, sondern Dank der exzellenten Trennschärfe werden nachvollziehbare, signifikante Muster gefunden. Dateninkonsistenzen werden quasi per Knopfdruck identifiziert.

synop-systems-module

c. Interaktives User Interface

Sämtliche Analyse-Module sind interaktiv und ohne Programmierung zu nutzen. Direkt nach dem Einlesen werden Grafiken automatisiert, ohne Datenmodellierung, erstellt.  Schulung ist kaum oder minimal notwendig und Anwender können erstmals fundierte statistische Analysen und Data-Mining in wenigen Schritten umsetzen. Data-Miner und Data Scientisten ersparen sich viel Zeit und können sich mehr auf die Interpretation und Ableitung von Handlungsmaßnahmen fokussieren.

d. Einfacher Einstieg – modular und mitwachsend

Der Synop Analyzer ist in unterschiedlichen Versionen verfügbar:

– Desktop-Version: in dieser Version sind alle Kernfunktionen in einer Installation kombiniert. In wenigen Minuten mit den Standard-Betriebssystemen MS-Windows, Apple Mac, Linux installiert. Außer Java-Runtime ist keine weitere Software notwendig. Somit fast, je nach Rechte am PC, ohne IT-Abt. installierbar. Ideal zum Einstieg und Testen, für Data Labs, Abteilungen und für kleine Unternehmen.

– Client/Server-Version: In dieser Version befinden die Analyse-Engines und die Datenhaltung auf dem Server. Das User-Interface ist auf dem Rechner des Anwenders installiert. Eine Cloud-Version ist demnächst verfügbar. Für größere Teams von Analysten mit definierten Zielen.

– Sandbox-Version: entspricht der C/S-Server Version, doch das User-Interface wird spezifisch auf einen Anwenderkreis oder einen Anwendungsfall bereitgestellt. Ein typischer Anwendungsfall ist, dass gewisse Fachbereiche oder Data Science-Teams eine Daten-Sandbox erhalten. In dieser Sandbox werden frei von klassischen BI-Systemen, Ad-hoc Fragen beantwortet und proaktive Analysen erstellt. Die Daten werden per In-Memory-Instanzen bereitgestellt.

Fazit:  Mit dem Synop Analyzer erhalten Unternehmen die Möglichkeit Daten sofort zu analysieren. Aus vorhandenen Daten wird neues Wissen mit bestehenden Ressourcen gewonnen! Der Aufwand für die Einführung ist minimal. Der Preis für die Software liegt ja nach Ausstattung zw. 2.500 Euro und 9.500 Euro. Welche Ausrede soll es jetzt noch geben?

Nur wer früh beginnt, lernt die Hürden und den Nutzen von Datenanalyse und Data-Mining kennen. Zu Beginn wird der Reifegrad klein sein: Datenqualität ist mäßig, Datenzugriffe sind schwierig. Wie in anderen Disziplinen gilt auch hier: Übung macht den Meister und ein Meister ist noch nie von Himmel gefallen.

Daten für eine schlanke, globale F&E bereitstellen

Globale F&E-Prozesse sind oft komplex und verschwendend. Gerade deshalb kann sich ein Unternehmen einen Wettbewerbsvorteil verschaffen, wenn es die Daten über den verschwendungsfreien Leistungsanteil seiner globalen F&E-Prozesse bereitstellt, das volle Potential ausschöpft und so die Spielregeln seiner Branche verändert. Das erfordert eine standardisierte F&E-Datenbasis, geeignete Methoden und passende Tools.

 

Die F&E-Prozessleistung besteht aus

  • F&E-Nutzleistung
  • F&E-Stützleistung
  • F&E-Blindleistung
  • F&E-Fehlleistung

nutzleistung

Die F&E-Nutzleistung ist die verschwendungsfreie Leistung für den Kunden. Beispiele sind Konstruktion und Berechnung, ohne jegliche Rekursionen. Die F&E-Nutzleistung beträgt geschätzt durchschnittlich 5% bis 25% der gesamten F&E-Leistung.

Die F&E-Stützleistung ist erforderlich, jedoch keine Kundenleistung und somit Verschwendung. Beispiele sind Wissensgenerierung, Musterbau, Verifikation, Validierung, Transporte, Kommunikation und anteilige Strukturen.

Die F&E-Blindleistung ist nicht erforderlich, somit Verschwendung, schadet jedoch nicht unmittelbar. Beispiele sind Task Forces, Nacharbeit, Warten und Lagerung.

Die F&E-Fehlleistung ist nicht erforderlich, somit Verschwendung und schadet unmittelbar. Beispiele sind Doppelarbeit, Rekursionen, Gewährleistung und Garantie.

Ist die Verteilung der F&E-Prozessleistung global transparent, kann durch Hebelwirkung ein erhebliches F&E-Effizienzpotential ausgeschöpft werden. Wird beispielsweise der F&E-Verschwendungsanteil von 75% auf 60% verringert (-20%), dann springt der Anteil an F&E-Nutzleistung von 25% auf 40% (+60%). Dieser F&E-Leistungssprung verändert Branchenspielregeln, wenn er für mehr Wachstum und Deckungsbeitrag eingesetzt wird.

Die Daten der F&E-Nutzleistung werden in drei Schritten top-down bereitgestellt. Jeder Schritt hat sofort einen greifbaren Nutzen:

  • Valide Projektklassen werden aufgedeckt und standardisiert. Das ermöglicht die direkte Messung vergleichbaren F&E-Aufwands.
  • Für die Projektklassen wird der F&E-Standardaufwand empirisch definiert. Das macht die Entwicklungsproduktivität messbar und einfach planbar.
  • Die Grundursachenanalyse des Auftragsaufwands deckt die F&E-Nutzleistung der Arbeitspakete auf. Daraus wird das Potential abgeleitet. Verschwendungsfreie Arbeitspakete machen den Plan schlank und die Entwicklungsproduktivität steuerbar. So wird das Potential ausgeschöpft.

IT und F&E können so zusammen Daten für eine schlanke, globale F&E bereitstellen.

 

Wahrscheinlichkeitesrechnung – Grundstein für Predictive Analytics

Die Wahrscheinlichkeitsrechnung behandelt die Gesetzmäßigkeiten  des (von außen betrachtet) zufälligen Vorkommens bestimmter Ereignisse aus einer vorgegebenen Ereignismenge. Die mathematische Statistik fasst diese Wahrscheinlichkeitsrechnung zur Stochastik zusammen, der Mathematik des Zufalls

Mit diesem Artikel – zu der ich eine Serie plane – möchte ich den Einstieg in Predictive Analytics wagen, zugegebenermaßen ein Themengebiet, in dem man sich sehr schnell verlieren und den Wald vor lauter Bäumen nicht mehr findet. Also belassen wir es erstmal bei einem sanften Einstieg…

Klassische Definition der Wahrscheinlichkeit

Das klassische Verständnis der Wahrscheinlichkeit geht von endlich vielen Ausgängen (Ereignisse) aus, bei denen alle Ausgänge gleich wahrscheinlich sind. Die dafür erdachten Zufallsexperimente wurden von dem französischen Mathematiker Pierre Simon Lapplace (1749 – 1827) zum ersten Mal nachvollziehbar beschrieben. Diese Zufallsexperimente werden daher auch Laplace-Experimente genannt.

Bei einem Laplace Experiment gilt:

Ereignismenge Omega = {omega_1,omega_2,omega_3,…omega_s}
Wahrscheinlichkeit p(w_j)=frac{1}{s}=frac{1}{|Omega|}
(j=1,2,3,…s)

Die Ergebnismenge, das ist die Menge aller möglichen Ereignisse, wird in der Regel mit einem Omega (Omega) gekennzeichnet, ein beliebiges Einzelereignis hingegen als omega (kleines Omega).

Eine typische Laplace-Wahrscheinlichkeitsfrage ist ein bevorstehender Würfelwurf. Wie groß ist die Wahrscheinlichkeit, mit einem echten (unverfälschten) Würfel eine gerade Zahl zu würfeln?

Mit Omega={1,2,3,4,5,6} und A={2,4,6} folgt P(A)=frac{|A|}{|Omega|}=frac{3}{6}=0,5.

Axiomatische Definition der Wahrscheinlichkeit

Jeder Wahrscheinlichkeitsbegriff muss auf denselben äußeren Bedingungen beruhenden Zufallsexperimenten beliebig oft wiederholbar sein. Die axiomatische Definition der Wahrscheinlichkeit P(A) eines Ereignisses A berücksichtigt Axiome. Axiome sind nicht beweisbare Grundpostulate, darunter fallen Gegebenheiten, die gewissermaßen unverstanden sind und deren Vorkommen und Bedeutung in der Regel empirisch belegt werden müssen.
Die Definition der axiomatischen Wahrscheinlichkeit stammt vom russischen Mathematiker Andrej Nikollajewitsch Kolmogorov (1903 – 1987).

In der Realität gibt es keine perfekte Zufälligkeit, denn jedes Ergebnis ist von ganz bestimmten Faktoren abhängig. Auf den Würfelwurf bezogen, hängt das gewürfelte Ergebnis von unüberschaubar vielen Faktoren ab. Wären diese alle bekannt, könnte das Ergebnis exakt berechnet und somit mit einer Sicherheit vorhergesagt werden. Da dafür jedoch in der Praxis unbestimmbar viele Faktoren eine Rolle spielen (beispielsweise die genaue Beschaffenheit des Würfels in Form, Gewicht, Materialwiderstand, der genaue Winkel, die Fallgeschwindigkeit, die Ausgangsposition der Hand und des Würfels) können wir das Ergebnis nur schätzen, indem die Beschreibung des Vorgangs vereinfacht wird. Nur diese Vereinfachung macht es uns möglich, Vorhersagen zu treffen, die dann jedoch nur eine Wahrscheinlichkeit darstellen und somit mit einer Unsicherheit verbunden sind.

In der abstrakten Welt des perfekten Zufalls gäbe es die gleiche Chance, eine “4” zu würfeln, wie jeweils alle anderen Ziffern.

Mit Omega={1,2,3,4,5,6} und A={4} folgt P(A)=frac{|A|}{|Omega|}=frac{1}{6}=0,167.

Das Ergebnis eines Wurfes des Würfels ist in der Realität auch von der Beschaffenheit des Würfels abhängig. Angenommen, der Würfel hat auf Seite der Ziffer “4” bei allen vier Kanten eine Abrundung, die ein Umkippen auf eine andere Seite begünstigen, so bedeutet dies:

  • Die Ziffer “4” hat vier abgerundete Kanten, die Wahrscheinlichkeit eine “4” zu würfeln sinkt stark
  • Die Ziffern “1”, “3”, “5”, “6” haben jeweils eine abgerundete Kante (Berühungskante zur “4”) sinkt
  • Die Ziffer “2” liegt der “4” gegenüber, hat somit keine Berührungskante und keine Abrundung, so steigt ihre Chance gewürfelt zu werden

Nun könnte sich nach einer empirischen Untersuchung mit einer ausreichenden Stichprobe folgende Wahrscheinlichkeit ergeben:

  • p(4) = 0,1
  • p(1) = p(3) = p(5) = p(6) = 0,15
  • p(2) = 0,3
  • P(Omega) = 1,0

Durch die Analyse der bisherigen Wurf-Historie und der Betrachtung der Beschaffenheit der Kanten des Würfels können wir uns somit weit realistischere Wahrscheinlichkeiten über die Wurfergebnisse ermitteln. Wie hoch wäre nun die Wahrscheinlichkeit, nach einem Wurf eine gerade Zahl zu würfeln?

Mit Omega={1,2,3,4,5,6} und A={2,4,6} folgt P(A)=p(2)+p(4)+p(6)=0,55.

Die üblichen Verdächtigen – 8 häufige Fehler in der Datenanalyse

Das eine vorab: eine Liste der meist begangenen Fehler in der Datenanalyse wird in jedem Fall immer eine subjektive Einschätzung des gefragten Experten bleiben und unterscheidet sich je nach Branche, Analyse-Schwerpunkt und Berufserfahrung des Analysten. Trotzdem finden sich einige Missverständnisse über viele Anwendungsbereiche der Datenanalyse hinweg immer wieder. Die folgende Liste gibt einen Überblick über die acht am häufigsten begangenen Fehler in der angewandten Datenanalyse von denen ich behaupte, dass sie universell sind.

  1. Statistische Signifikanz versus Relevanz

Die Idee der statistischen Signifikanz wird oft missverstanden und deswegen fälschlicherweise mit statistisch belegter Relevanz gleichgesetzt. Beide messen jedoch sehr unterschiedliche Dinge. Statistische Signifikanz ist ein Maß der Gewissheit, welches die Zufälligkeit von Variation berücksichtigt. „Statistisch signifikant“ bedeutet also, dass es unwahrscheinlich ist, dass ein bestimmtes Phänomen nur zufällig auftritt. „Statistisch nicht signifikant“ bedeutet, dass neben der zufälligen Variation keine systematische bewiesen werden konnte. Wichtig: dies bedeutet nicht, dass es keine Effekte gibt, sondern, dass diese nicht belegt werden konnten. Statistische Signifikanz lässt sich mit ausreichend vielen Beobachtungen allerdings auch für sehr kleine Unterschiede belegen. Generell gilt: je größer die Stichprobe, desto kleiner werden die Unterschiede, welche als statistisch signifikant getestet werden. Deswegen unterscheidet sich die statistische Relevanz von der statistischen Signifikanz.

Statistische Relevanz misst hingegen die Effektstärke eines Unterschiedes. Die Größe eines Unterschiedes wird dazu in Relation zur Streuung der Daten gesetzt und ist damit unabhängig von der Stichprobengröße. Je größer die Varianz der Zufallsvariablen, desto kleiner wird die Effektstärke.

  1. Korrelation versus Kausalität

Wird eine hohe Korrelation zwischen zwei Größen festgestellt, so wird oft geschlussfolgert, dass eine der beiden Größen die andere bestimmt. In Wahrheit können auch komplexe statistische und ökonometrische Modelle keine Kausalität beweisen. Dies gilt sogar, wenn die Modellierung einer theoretischen Grundlage folgt, denn auch die kann falsch sein. Regelmäßig lehnen sich Forscher und Analysten aus dem Fenster, indem sie Wirkungen behaupten, welche eine genaue Prüfung nicht aushalten. Standardfragen, die als Automatismus einer jeden Analyse folgen sollte, welche behauptet Effekte gefunden zu haben sind: Welche Rolle spielen unbeobachtete Heterogenitäten, umgekehrte Kausalität und Messfehler in den Variablen für das Schätzergebnis? Erst wenn diese drei Quellen von Endogenität kontrolliert werden und außerdem davon ausgegangen werden kann, dass die Stichprobe die Grundgesamtheit repräsentiert, kann ein kausaler Zusammenhang angenommen und quantifiziert werden.

  1. Unbeobachtete Einflussfaktoren

Nicht messbare und deswegen nicht erhobene Einflüsse verzerren die geschätzten Parameter der kontrollierbaren Faktoren, sofern letztere mit den unbeobachteten im Zusammenhang stehen. In anderen Worten: der geschätzte Effekt wird fälschlicherweise der beobachteten Größe zugeschrieben, wenn eigentlich eine dritte, nicht beobachtete Größe die Zielgröße bedingt und gleichzeitig mit der beobachteten Größe korreliert. Das Lehrbeispiel
für Verzerrungen durch unbeobachtete Größen ist die Lohngleichung – eine Gleichung die seit nunmehr 60 Jahren intensiv beforscht wird. Die Schwierigkeit bei der Quantifizierung des Effektes von Ausbildung liegt darin, dass die Entlohnung nicht nur über Alter, Berufserfahrung, Ausbildung und den anderen Kontrollvariablen variiert, sondern auch durch das unterschiedlich ausgeprägte Interesse an einem lukrativen Erwerb und die Fähigkeit des Einzelnen, diesen zu erlangen. Die Herausforderung: es gibt keinen statistischen Test, welche eine Fehlspezifikation durch unbeobachtete Größen angibt. Unabdingbar ist deswegen ein tiefgehendes Verständnis des Analyseproblems. Dieses befähigt den Analysten Hypothesen zu formulieren, welche unbeobachteten Größen über eine Korrelation mit dem getesteten Regressor im Fehlerterm ihr Unwesen treiben. Um Evidenz für die Hypothesen zu schaffen, müssen smarte Schätzdesigns oder ausreichend gute Instrumente identifiziert werden.statistische-verzerrung

  1. Selektionsverzerrung

Eine Selektionsverzerrung liegt vor, wenn Beobachtungen nicht für jedes Individuum vorliegen oder von der Analyse ausgeschlossen werden. Die Grundvoraussetzung für jeden statistischen Hypothesentest ist die Annahme einer Zufallsstichprobe, so dass die Zielpopulation repräsentativ abgebildet ist. In der Praxis ergeben sich allerdings oft Situationen, in denen bestimmte Merkmale nur für eine Gruppe, aber nicht für eine zweite beobachtet werden können. Beispielsweise kann der Effekt einer gesundheitsfördernden Maßnahme eines Großbetriebes für die gesamte Belegschaft nicht durch die freiwillige Teilnahme einiger Mitarbeiter gemessen werden. Es muss explizit dafür kontrolliert werden, welche Unterschiede zwischen Mitarbeitern bestehen, welche das Angebot freiwillig in Anspruch nehmen im Vergleich zu denen, die es nicht annehmen. Eine Gefahr der Über- oder Unterschätzung der Effekte besteht generell immer dann, wenn über die Beschaffenheit der Stichprobe im Vergleich zur Grundgesamtheit nicht nachgedacht wird. Auf Basis einer nicht repräsentativen Stichprobe werden dann fälschlicherweise Generalisierungen formuliert werden, welche zu falschen Handlungsempfehlungen führen können.

  1. Überanpassung und hohe Schätzervarianz

Überanpassung passiert, wenn der Analyst „zu viel“ von den Daten will. Wird das Model überstrapaziert, so erklären die Kontrollvariablen nicht nur die Zielgröße sondern auch das weiße Rauschen, also die Zufallsfehler. Die Anzahl der Regressoren im Verhältnis zur Anzahl der Beobachtungen ist in solch einer Spezifikation übertrieben. Das Problem: zu wenig Freiheitsgrade und das vermehrte Auftreten von Multikollinearität führen zu einer hohen Varianz in der Verteilung der Schätzer. Ein Schätzergebnis einer Spezifikation mit einer hohen Schätzervarianz kann also Schätzergebnisse produzieren, welche vom wahren Wert weiter entfernt sind als ein verzerrter Schätzer. Tatsächlich ist ein „falsches“ meistens ein Hinweis auf Multikollinearität.verlorene-effizienz-statistisches-modell

Oft macht es Sinn, die Spezifikation anzupassen, indem man die korrelierten Regressoren ins Verhältnis zueinander zu setzt. In der Praxis geht es immer darum, einen Kompromiss aus Verzerrung und Varianz zu finden. Das Kriterium hierfür ist die Minimierung des mittleren quadratischen Fehlers. Um zu überprüfen, ob der Analyst über das Ziel hinausgeschossen ist, gibt es zudem verschiedene Validierungsmethoden, welche je nach Methode einen bestimmten Anteil oder sogar keine Daten „verschwenden“, um das Modell zu überprüfen.kompromiss-quadratischer-fehler-statistisches-modell

  1. Fehlende Datenpunkte

Beobachtungen mit fehlenden Datenpunkten werden in der Praxis aus der Analyse in den meisten Fällen ausgeschlossen, einfach deswegen, weil das am schnellsten geht. Bevor das gemacht wird, sollte allerdings immer die Frage vorangestellt werden, wieso diese Datenpunkte fehlen. Fehlen sie zufällig, so führt der Ausschluss der Beobachtungen zu keinen unterschiedlichen Ergebnissen. Fehlen sie allerdings systematisch, beispielsweise wenn Personen mit bestimmten Merkmalen spezifische Daten lieber zurückhalten, so ergeben sich daraus Herausforderungen. Es sollte dann darum gehen, diese gesamte Verteilung zu ermitteln. Ist unklar, ob die Daten zufällig oder systematisch fehlen, so sollte sich der Analyst im Zweifel dieser Frage annehmen. Es müssen dann Informationen identifiziert werden, welche helfen die fehlenden Daten zu imputieren.

  1. Ausreißer

Ausreißer werden in vielen Anwendungen mit standardisierten Verfahren identifiziert und aus dem Datensatz entfernt. Dabei lohnt es sich in vielen Fällen, die Daten ernst zu nehmen. Die Voraussetzung hierfür: die Datenpunkte müssen legitim sein. Problemlos ausschließen lassen sich Datenpunkte, welche durch Eingabefehler und bewusste Falschmeldung erzeugt wurden. Legitime Datenpunkte sind hingegen “echte” Werte. Die Einbeziehung von Ausreißern kann mitunter einen inhaltlichen Beitrag zur Analyse leisten, da auch sie einen Teil der Population im Ganzen sind. Problematisch wird die Beibehaltung von Ausreißern, wenn durch sie Zusammenhänge identifizierbar werden, die auf den Rest der Population nicht zutreffen. Mögliche Verfahren, welche Ausreißer mit dem Rest der Beobachtungen versöhnen, sind Transformationen der Daten oder die Anwendung robuster Schätzverfahren. Beide Ansätze spielen mit einer stärkeren Gewichtung der mittleren Verteilung. Außerdem kann beispielsweise in Regressionen überprüft werden, inwieweit etwa ein nicht-linearer Fit die Ausreißer besser in die Schätzung aufnimmt.

  1. Spezifizierung versus Modellierung

Allzu oft werden komplizierte statistische Modelle gebaut, bevor überprüft wurde, was ein einfaches Modell leisten kann. Bevor jedoch komplexe Modelle gestrickt werden, sollte zuerst an der Spezifikation des Modells gearbeitet werden. Kleine Anpassungen wie die Inklusion verbesserter Variablen, die Berücksichtigung von Interaktionen und nicht-linearen Effekten bringen uns in manchen Fällen der Wahrheit näher als ein aufwendiges Modell und sollten in jedem Fall ausgereizt werden, bevor ein aufwendigeres Modell gewählt wird. Je einfacher das Modell, desto einfacher ist es in der Regel auch die Kontrolle darüber zu behalten. In jedem Fall sollten die gewählten Spezifikationen immer durch Sensitivitätsanalysen unterstützt werden. Unterschiede in der Variablendefinition und der Selektion der Daten, sollten sowohl getestet als auch berichtet werden. Einen guten Grund, das Modell zu wechseln hat der Analyst dann, wenn daraus ersichtlich wird, dass Annahmen des einfachen Modells verletzt werden und dieses deswegen keine validen Ergebnisse produziert.

R für Process Mining & Projektmanagement – Literaturempfehlungen

Es gibt immer wieder Skriptsprachen, die neu am IT-Horizont geboren um Anwender werben. Der IT-Manager muß also stets entscheiden, ob er auf einen neuen Zug aufspringt oder sein bisheriges Programmierwerkzeug aktuellen Anforderungen standhält. Mein Skriptsprachenkompass wurde über frühere Autoren kalibriert, an die hier erinnert werden soll, da sie grundsätzliche Orientierungshilfen für Projektplanungen gaben.

Im Projektmanagement geht es stets um aufwandsbezogene Terminplanung, im CAFM-Projektmanagement  z. B. konkret um die Analyse und Schätzung geplanter und ungeplanter Maßnahmen, wie geplante Wartungen oder zufällige technische Störungen im Gebäudemanagement, um Wahrscheinlichkeiten.

Warum löst R die Terminplanung strategisch und praktisch besser als Python, Perl, Java oder etc.? Weil sich geschätzte Ereignisse in Zeitfenstern normalverteilt als so genannte Gaußsche Glockenkurve abbilden, einer statistischen Schätzung entsprechen.

Hier zwei Beispielgrafiken zum Thema Terminschätzung aus aktueller Literatur.

1. Standardnormalverteilung

Praxishandbuch Projektmanagement – inkl. Arbeitshilfen online von Günter Drews, Norbert Hillebrand, Martin Kärner, Sabine Peipe, Uwe Rohrschneider

Haufe-Lexware GmbH & Co. KG, Freiburg, 1. Auflage 2014 – Siehe z. B. Seite 241, Abb. 14 Normalverteilung als Basis von PERT (Link zu Google Books)


Praxishandbuch Projektmanagement – inkl. Arbeitshilfen online

2. Betaverteilung

Projektmanagement für Ingenieure: Ein praxisnahes Lehrbuch für den systematischen Projekterfolg von Walter Jakoby, Hochschule Trier

Springer Vieweg, Springer Fachmedien Wiesbaden 2015, 3, Auflage – Siehe z. B. Seite 215, Abb. 7.13 Beta-Verteilung (Link zu Google Books).


Projektmanagement für Ingenieure: Ein praxisnahes Lehrbuch für den systematischen Projekterfolg 

Eine objektorientierte Statistikprogrammiersprache mit über 7.000 Paketen weltweit lädt ein, nicht jede Funktion neu erfinden zu wollen und macht glaubhaft, dass kein Unternehmen der Welt über derart Programmierwissen und Kapazität verfügt, es besser zu können. Für statistische Berechnungen empfiehlt sich seit Jahren R, für mich spätestens seit 2003. Früheren Autoren war das grundlegend klar, daß deterministische Terminplanungen immer am Mangel stochastischer Methoden kranken. In meiner Studienzeit kursierte an der Martin Luther Universität Halle an der Saale der Witz, es gibt zwei Witze an der landwirtschaftlichen Fakultät, den Badewitz und den Howitz.  Doch das Buch vom Badewitz halte ich bis heute. Im Kapitel 5.3 Elemente der Zeitplanung fand ich dort in Abbildung 5.7 auf Seite 140 erstmals die Wahrscheinlichkeitsverteilung einer Vorgangsdauer als normalverteilte Grafik.

Vgl. Zur Anwendung ökonomisch-mathematischer Methoden der Operationsforschung, federführend Dr. sc. agr. Siegfried Badewitz, 1. Auflage 1981, erschienen im VEB Deutscher Landwirtschaftsverlag Berlin. Ein Grafikkünstler zur schnellen Visualisierung von Funktionen und Dichteverteilungen ist seit Jahren R. Zur R-Umsetzung empfehle ich gern meine R-Beispielbibel bei Xing.

Wer zur Statistik der Terminschätzung tiefer greifen will, kommt an Autoren wie Golenko u. a. nicht vorbei. Badewitz verwies z.B. auf Golenko’s Statistische Methoden der Netzplantechnik in seinem o.g. Buch (Link zu Google Books).


Statistische Methoden der NetzplantechnikHier empfehle ich zum Einstieg das Vorwort, das 2015 gelesen, aktuell noch immer gilt, nicht das Jahr seiner Niederschrift 1968 preisgibt:

Gegenwärtig beobachtet man häufig Situationen, in denen bei der Untersuchung von zufallsbeeinflußten Systemen die in ihnen auftretenden Zufallsparameter durch feste Werte (z. B. den Erwartungswert) ersetzt werden, wonach dann ein deterministisches Modell untersucht wird.

Und hier noch ein Beispiel von Seite 203:

Praktisch kann jede komplizierte logische Beziehung auf eine Kombination elementarer stochastischer Teilgraphen zurückgeführt werden.

Meine Empfehlung für Process Mining und Projektmanagement lautet daher – intelligente Stochstik statt altbackenem Determinismus.

 

Top 10 der Python Bibliotheken für Data Science

Python gilt unter Data Scientists als Alternative zu R Statistics. Ich bevorzuge Python auf Grund seiner Syntax und Einfachheit gegenüber R, komme hinsichtlich der vielen Module jedoch häufig etwas durcheinander. Aus diesem Grund liste ich hier die – meiner Einschätzung nach – zehn nützlichsten Bibliotheken für Python, um einfache Datenanalysen, aber auch semantische Textanalysen, Predictive Analytics und Machine Learning in die Tat umzusetzen.

NumPy – Numerische Analyse

NumPy ist eine Open Source Erweiterung für Python. Das Modul stellt vorkompilierte Funktionen für die numerische Analyse zur Verfügung. Insbesondere ermöglicht es den einfachen Umgang mit sehr großen, multidimensionalen Arrays (Listen) und Matrizen, bietet jedoch auch viele weitere grundlegende Features (z. B. Funktionen der Zufallszahlenbildung, Fourier Transformation, linearen Algebra). Ferner stellt das NumPy sehr viele Funktionen mathematische Funktionen für das Arbeiten mit den Arrays und Matrizen bereit.

matplotlib – 2D/3D Datenvisualisierung

Die matplotlib erweitert NumPy um grafische Darstellungsmöglichkeiten in 2D und 3D. Das Modul ist in Kombination mit NumPy wohl die am häufigsten eingesetzte Visualisierungsbibliothek für Python.

Die matplotlib bietet eine objektorientierte API, um die dynamischen Grafiken in Pyhton GUI-Toolkits einbinden zu können (z. B. GTL+ oder wxPython).

NumPy und matplotlib werden auch mit den nachfolgenden Bibliotheken kombiniert.

Bokeh – Interaktive Datenvisualisierung

Während die Plot-Funktionen von matplotlib statisch angezeigt werden, kann in den Visualsierungsplots von Bokeh der Anwender interaktiv im Chart klicken und es verändern. Bokeh ist besonders dann geeignet, wenn die Datenvisualisierung als Dashboard im Webbrowser erfolgen soll.

Das Bild über diesen Artikel zeigt Visualiserungen mit dem Python Package Bokeh.

Pandas – Komplexe Datenanalyse

Pandas ist eine Bibliothek für die Datenverarbeitung und Datenanalyse mit Python. Es erweitert Python um Datenstrukturen und Funktionen zur Verarbeitung von Datentabellen. Eine besondere Stärke von Pandas ist die Zeitreihenanalyse. Pandas ist freie Software (BSD License).

Statsmodels – Statistische Datenanalyse

Statsmodels is a Python module that allows users to explore data, estimate statistical models, and perform statistical tests. An extensive list of descriptive statistics, statistical tests, plotting functions, and result statistics are available for different types of data and each estimator.

Die explorative Datenanalyse, statistische Modellierung und statistische Tests ermöglicht das Modul Statsmodels. Das Modul bringt neben vielen statistischen Funktionen auch eigene Plots (Visualisierungen) mit. Mit dem Modul wird Predictive Analytics möglich. Statsmodels wird häufig mit NumPy, matplotlib und Pandas kombiniert.

SciPy – Lineare Optimierung

SciPy ist ein sehr verbreitetes Mathematik-Modul für Python, welches den Schwerpunkt auf die mathematische Optimierung legt. Funktionen der linearen Algebra, Differenzialrechnung, Interpolation, Signal- und Bildverarbeitung sind in SciPy enthalten.

scikit-learn – Machine Learning

scikit-learn ist eine Framework für Python, das auf NumPy, matplotlob und SciPy aufsetzt, dieses jedoch um Funktionen für das maschinelle Lernen (Machine Learning) erweitert. Das Modul umfasst für das maschinelle Lernen notwendige Algorithmen für Klassifikationen, Regressionen, Clustering und Dimensionsreduktion.

Mlpy – Machine Learning

Alternativ zu scikit-learn, bietet auch Mlpy eine mächtige Bibliothek an Funktionen für Machine Learning. Mlpy setzt ebenfalls auf NumPy und SciPy, auf, erweitert den Funktionsumfang jedoch um Methoden des überwachten und unüberwachten maschinellen Lernens.

NLTK – Text Mining

NLTK steht für Natural Language Toolkit und ermöglicht den effektiven Einstieg ins Text Mining mit Python. Das Modul beinhaltet eigene (eher einfache) Visualisierungsmöglichkeiten zur Darstellung von Textmuster-Zusammenhängen, z. B. in Baumstrukturen. Für Text Mining und semantische Textanalysen mit Python gibt es wohl nichts besseres als NLTK.

Theano – Multidimensionale Berechnungen & GPU-Processing

Theano is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently

Für multidimensionale Datenanalysen bzw. die Verarbeitung und Auswertung von multidimensionalen Arrays gibt es wohl nichts schnelleres als die Bibliothek Theano. Theano ist dabei eng mit NumPy verbunden.

Theano ermöglicht die Auslagerung der Berechnung auf die GPU (Grafikprozessor), was bis zu 140 mal schneller als auf der CPU sein soll. Getestet habe ich es zwar nicht, aber grundsätzlich ist es wahr, dass die GPU multidimensionale Arrays schneller verarbeiten kann, als die CPU. Zwar ist die CPU universeller (kann quasi alles berechnen), die GPU ist aber auf die Berechnung von 3D-Grafiken optimiert, die ebenfalls über multidimensionalen Vektoren verarbeitet werden.