Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Die Prämisse dieses Buches und der anderen Bücher der Think X-Reihe ist, dass du, wenn du weißt, wie man programmiert, diese Fähigkeit nutzen kannst, um andere Themen zu lernen.
Die meisten Bücher über Bayes'sche Statistik verwenden mathematische Notationen und stellen Ideen mit mathematischen Konzepten wie der Infinitesimalrechnung dar. Dieses Buch verwendet Python-Code und diskrete Näherungen anstelle von kontinuierlicher Mathematik. Was in einem Mathematikbuch ein Integral wäre, wird daher zu einer Summation, und die meisten Operationen mit Wahrscheinlichkeitsverteilungen sind Schleifen oder Array-Operationen.
Ich denke, diese Darstellung ist einfacher zu verstehen, zumindest für Menschen mit Programmierkenntnissen. Sie ist auch allgemeiner, denn wenn wir Entscheidungen über die Modellierung treffen, können wir das am besten geeignete Modell wählen, ohne uns zu viele Gedanken darüber zu machen, ob sich das Modell für eine mathematische Analyse eignet.
Außerdem bietet es einen fließenden Übergang von einfachen Beispielen zu Problemen aus der realen Welt.
Für wen ist dieses Buch?
Um dieses Buch zu beginnen, solltest du mit Python vertraut sein. Wenn du dich mit NumPy und Pandas auskennst, ist das hilfreich, aber ich erkläre dir nach und nach, was du brauchst. Du brauchst keine Kenntnisse in Kalkül oder linearer Algebra. Du brauchst auch keine Vorkenntnisse in Statistik.
In Kapitel 1 definiere ich die Wahrscheinlichkeit und führe die bedingte Wahrscheinlichkeit ein, die die Grundlage für den Satz von Bayes ist. In Kapitel 3 wird die Wahrscheinlichkeitsverteilung vorgestellt, die die Grundlage der Bayes'schen Statistik ist.
In späteren Kapiteln werden wir eine Vielzahl von diskreten und kontinuierlichen Verteilungen verwenden, darunter die Binomial-, Exponential-, Poisson-, Beta-, Gamma- und Normalverteilung. Ich werde jede Verteilung erklären, wenn sie eingeführt wird, und wir werden SciPy verwenden, um sie zu berechnen, sodass du ihre mathematischen Eigenschaften nicht kennen musst.
Modellieren
Die meisten Kapitel in diesem Buch sind durch ein reales Problem motiviert, sodass sie ein gewisses Maß an Modellierung beinhalten. Bevor wir Bayes'sche Methoden (oder andere Analysen) anwenden können, müssen wir entscheiden, welche Teile des realen Systems wir in das Modell aufnehmen und welche Details wir weglassen können.
In Kapitel 8 geht es zum Beispiel darum, den Sieger eines Fußballspiels vorherzusagen. Ich modelliere das Toreschießen als einen Poisson-Prozess, was bedeutet, dass ein Tor zu jedem Zeitpunkt des Spiels gleich wahrscheinlich ist. Das stimmt zwar nicht ganz, aber für die meisten Zwecke ist das Modell wahrscheinlich gut genug.
Ich denke, es ist wichtig, die Modellierung als expliziten Teil der Problemlösung einzubeziehen, weil sie uns daran erinnert, über Modellierungsfehler nachzudenken (d.h. Fehler aufgrund von Vereinfachungen und Annahmen des Modells).
Viele der Methoden in diesem Buch beruhen auf diskreten Verteilungen, was manche Leute über numerische Fehler besorgt macht. Bei realen Problemen sind die numerischen Fehler jedoch fast immer kleiner als die Modellierungsfehler.
Außerdem ermöglicht der diskrete Ansatz oft bessere Modellierungsentscheidungen, und ich habe lieber eine ungefähre Lösung für ein gutes Modell als eine genaue Lösung für ein schlechtes Modell.
Arbeiten mit dem Code
Das Lesen dieses Buches bringt dich nur bedingt weiter; um es wirklich zu verstehen, musst du mit dem Code arbeiten. Die ursprüngliche Form dieses Buches ist eine Reihe von Jupyter-Notizbüchern. Nachdem du jedes Kapitel gelesen hast, empfehle ich dir, das Notizbuch zu starten und die Übungen zu bearbeiten. Wenn du Hilfe brauchst, sind meine Lösungen verfügbar.
Es gibt verschiedene Möglichkeiten, die Notebooks zu betreiben:
-
Wenn du Python und Jupyter installiert hast, kannst du die Notizbücher herunterladen und sie auf deinem Computer ausführen.
-
Wenn du keine Programmierumgebung hast, in der du Jupyter-Notebooks ausführen kannst, kannst du Colab verwenden, mit dem du Jupyter-Notebooks in einem Browser ausführen kannst, ohne etwas zu installieren.
Um die Notizbücher auf Colab zu nutzen, starte auf dieser Landing Page, die Links zu allen Notizbüchern enthält.
Wenn du bereits Python und Jupyter hast, kannst du die Notizbücher als ZIP-Datei herunterladen.
Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Der Verkauf oder die Verbreitung von Beispielen aus O'Reilly-Büchern erfordert jedoch eine Genehmigung. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Genehmigung erforderlich.
Wir freuen uns über eine Namensnennung, verlangen sie aber in der Regel nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Think Bayes, Second Edition, von Allen B. Downey (O'Reilly). Copyright 2021 Allen B. Downey, 978-1-492-08946-9."
Wenn du der Meinung bist, dass deine Verwendung von Code-Beispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du O'Reilly Media unter permissions@oreilly.com kontaktieren .
Installation von Jupyter
Wenn du Python und Jupyter noch nicht hast, empfehle ich dir, Anaconda zu installieren, . Das ist eine kostenlose Python-Distribution, die alle Pakete enthält, die du brauchst. Anaconda lässt sich leicht installieren. Standardmäßig werden die Dateien in deinem Heimatverzeichnis installiert, sodass du keine Administratorrechte brauchst. Du kannst Anaconda von dieser Seite herunterladen.
Anaconda enthält die meisten Pakete, die du brauchst, um den Code in diesem Buch auszuführen. Es gibt aber noch ein paar zusätzliche Pakete, die du installieren musst.
Um sicherzugehen, dass du alles hast, was du brauchst (und die richtigen Versionen), ist die beste Option, eine Conda-Umgebung zu erstellen. Lade diese Conda-Umgebungsdatei herunter und führe die folgenden Befehle aus, um eine Umgebung namens ThinkBayes2
zu erstellen und zu aktivieren:
conda env create -f environment.yml conda activate ThinkBayes2
Wenn du nicht extra eine Umgebung für dieses Buch erstellen willst, kannst du alles, was du brauchst, mit Conda installieren. Mit den folgenden Befehlen solltest du alles bekommen, was du brauchst:
conda install python jupyter pandas scipy matplotlib pip install empiricaldist
Wenn du Anaconda nicht verwenden möchtest, benötigst du die folgenden Pakete:
-
Jupyter, um die Notebooks auszuführen, https://jupyter.org;
-
NumPy für grundlegende numerische Berechnungen, https://numpy.org;
-
SciPy für wissenschaftliche Berechnungen, https://scipy.org;
-
pandas für die Arbeit mit Daten, https://pandas.pydata.org;
-
matplotlib für die Visualisierung, https://matplotlib.org;
-
empiricaldist zur Darstellung von Verteilungen, https://pypi.org/project/empiricaldist.
Obwohl diese Pakete häufig verwendet werden, sind sie nicht in allen Python-Installationen enthalten und können in manchen Umgebungen schwer zu installieren sein. Wenn du Probleme hast, sie zu installieren, empfehle ich dir, Anaconda oder eine der anderen Python-Distributionen zu verwenden, die diese Pakete enthalten.
In diesem Buch verwendete Konventionen
In diesem Buch werden die folgenden typografischen Konventionen verwendet:
- Kursiv
-
Zeigt URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen an.
- Kühn
-
Weist auf neue und wichtige Begriffe hin.
Constant width
-
Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.
O'Reilly Online Learning
Hinweis
Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.
Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen erhältst du unter http://oreilly.com.
Wie du uns kontaktierst
Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Nord
- Sebastopol, CA 95472
- 800-998-9938 (in den Vereinigten Staaten oder Kanada)
- 707-829-0515 (international oder lokal)
- 707-829-0104 (Fax)
Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/thinkBayes2e aufrufen .
Schreib eine E-Mail an bookquestions@oreilly.com, um Kommentare oder technische Fragen zu diesem Buch zu stellen.
Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter http://oreilly.com.
Finde uns auf Facebook: http://facebook.com/oreilly
Folge uns auf Twitter: http://twitter.com/oreillymedia
Schau uns auf YouTube: http://youtube.com/oreillymedia
Liste der Mitwirkenden
Wenn du einen Vorschlag oder eine Korrektur hast, sende bitte eine E-Mail an downey@allendowney.com. Wenn ich aufgrund deines Feedbacks eine Änderung vornehme, werde ich dich in die Liste der Mitwirkenden aufnehmen (es sei denn, du bittest darum, ausgelassen zu werden).
Wenn du zumindest einen Teil des Satzes angibst, in dem der Fehler auftaucht, erleichtert das die Suche für mich. Seiten- und Abschnittsnummern sind auch gut, aber nicht so einfach zu handhaben. Danke!
-
Zunächst muss ich David MacKays hervorragendes Buch Information Theory, Inference, and Learning Algorithms ( ) würdigen, in dem ich zum ersten Mal Bayes'sche Methoden kennengelernt habe. Mit seiner Erlaubnis verwende ich einige Probleme aus seinem Buch als Beispiele.
-
Mehrere Beispiele und Übungen in der zweiten Ausgabe wurden mit Genehmigung von Cameron Davidson-Pilon und eine Übung von Rasmus Bååth übernommen.
-
Dieses Buch hat auch von meinen Gesprächen mit Sanjoy Mahajan profitiert, vor allem im Herbst 2012, als ich seinen Kurs über Bayes'sche Inferenz am Olin College besuchte.
-
Viele Beispiele in diesem Buch wurden in Zusammenarbeit mit Studierenden meiner Bayes'schen Statistikkurse am Olin College entwickelt. Insbesondere das Beispiel für die Rote Linie wurde als Klassenprojekt von Brendan Ritter und Kai Austin entwickelt.
-
Ich habe Teile dieses Buches während Projektabenden mit der Boston Python User Group geschrieben und möchte mich bei ihnen für ihre Gesellschaft und die Pizza bedanken.
-
Jasmine Kwityn und Dan Fauxsmith von O'Reilly Media haben die erste Ausgabe Korrektur gelesen und viele Verbesserungsmöglichkeiten gefunden.
-
Linda Pescatore hat einen Tippfehler gefunden und einige hilfreiche Vorschläge gemacht.
-
Tomasz Miasko hat viele hervorragende Korrekturen und Vorschläge geschickt.
-
Für die zweite Ausgabe möchte ich Michele Cronin und Kristen Brown von O'Reilly Media sowie den technischen Prüfern Ravin Kumar, Thomas Nield, Josh Starmer und Junpeng Lao danken.
-
Ich bin den Entwicklern und Mitwirkenden der Softwarebibliotheken dankbar, auf denen dieses Buch basiert, insbesondere Jupyter, NumPy, SciPy, pandas, PyMC, ArviZ und Matplotlib.
Weitere Personen, die Tippfehler und Fehler entdeckt haben, sind Greg Marra, Matt Aasted, Marcus Ogren, Tom Pollard, Paul A. Giannaros, Jonathan Edwards, George Purkins, Robert Marcus, Ram Limbu, James Lawry, Ben Kahle, Jeffrey Law, Alvaro Sanchez, Olivier Yiptong, Yuriy Pasichnyk, Kristopher Overholt, Max Hailperin, Markus Dobler, Brad Minch, Allen Minch, Nathan Yee, Michael Mera, Chris Krenn und Daniel Vianna.
Get Think Bayes, 2. Auflage now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.