

Discover more from Tinz Twins Tech Blog
Eine Einführung in das statistische Bootstrap Verfahren
Verstehe den zentralen Grenzwertsatz anhand der Bootstrap Methode
Die Bootstrap Methode ist eine Resampling Technik, bei der aus einer Stichprobe viele weitere Stichproben gezogen werden. Sie wird verwendet, um zusammenfassende Statistiken wie den Mittelwert oder die Standardabweichung zu schätzen. Die Bootstrap Methode ist ein leistungsfähiges statistisches Instrument, das für kleine Stichproben nützlich ist. Der Vorteil der Bootstrap Methode besteht darin, dass du bei dieser Methode keine Verteilungsannahmen treffen musst. Es handelt sich um eine nichtparametrische Methode, die auch dann eingesetzt werden kann, wenn die Annahmen über die Normalverteilung nicht zutreffen.
Wie funktioniert die Bootstrap Methode?
Das Vorgehen ist wie folgt:
Nehme k Stichproben mit Zurücklegen aus einem gegebenen Datensatz.
Berechne für jede Stichprobe die Statistik/den Parameter, an der/dem du interessiert bist.
Du erhältst k verschiedene Schätzungen für eine bestimmte Statistik/einen bestimmten Parameter. Anhand dieser Schätzungen kannst du dann ein Konfidenzintervall für die Statistik berechnen.
Es gibt ein YouTube-Video von Andy Field, in dem er Bootstrapping anschaulich erklärt. Ab Minute 27:27 spricht er über Bootstrapping. Das Video ist allerdings nicht für jeden geeignet, da Andy Field das Thema auf sehr humorvolle Art und Weise erklärt.
Bootstrapping und der zentrale Grenzwertsatz
Der zentrale Grenzwertsatz ist ein fundamentales Theorem der Statistik. Der zentrale Grenzwertsatz besagt, dass der Mittelwert und die Summe vieler unabhängiger, identisch verteilter Zufallsvariablen annähernd normalverteilt sind. Klingt kompliziert? Mit der Bootstrap-Methode ist der zentrale Grenzwertsatz leicht zu verstehen. Wir veranschaulichen dies anhand eines Beispiels.
Python Beispiel:
Es gibt viele Möglichkeiten, die Bootstrap Methode in Python zu implementieren. Der einfachste Weg ist die Verwendung der Funktion bootstrap()
aus dem SciPy Paket.
Im ersten Schritt importieren wir die erforderlichen Python Pakete:
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from scipy.stats import bootstrap
Wir importieren die folgenden Bibliotheken:
numpy: Die Bibliothek ist das Basispaket für wissenschaftliches Rechnen in Python.
seaborn: Diese Bibliothek bietet eine High-Level-Schnittstelle für die Erstellung beeindruckender Grafiken.
matplotlib: Mit dieser Bibliothek kannst du verschiedene Visualisierungen erstellen.
scipy.stats: Dieses Modul enthält verschiedene Funktionen aus der Statistik. Wir verwenden nur die Bootstrap Funktion.
Nun betrachten wir Daten aus einer Exponentialverteilung.
X = np.random.exponential(scale=1, size=10000)
mean_value = np.mean(X)
print(mean_value)
# Output:
# 0.9971608985989188
Funktionsparameter von np.random.exponential()
:
scale
: Skalierungsfaktor betasize
: Output shape (wir wählen 10.000 Werte)
Zunächst verwenden wir np.random.exponential()
, um einen Datensatz X zu erstellen, der exponentialverteilt ist. Die Formel für die Wahrscheinlichkeitsdichtefunktion lautet:

Der Mittelwert der Exponentialverteilung beträgt ungefähr 0,9972.
Schauen wir uns nun die Daten an. Hierfür erstellen wir ein Dichte Plot in Python.
Wir sehen, dass die Daten nicht normalverteilt sind. Nun wenden wir die Bootstrap Methode an, um den Mittelwert der Verteilung zu schätzen.
Bevor du die Bootstrap Methode durchführst, musst du folgende zwei Parameter wählen:
Größe der Stichprobe
Anzahl der Wiederholungen
Wir wählen eine Stichprobengröße von 100. Darüber hinaus führen wir zwei Bootstrap Experimente durch.
dataset_choice = np.random.choice(X, size=100)
Erstes Experiment
In diesem Experiment führen wir 50 Bootstrap Wiederholungen durch.
dataset = (dataset_choice,)
res = bootstrap(dataset, np.mean, n_resamples=50, random_state=42)
ax = sns.histplot(res.bootstrap_distribution)
plt.axvline(x=dataset_choice.mean(), linewidth=3, color='red', label="mean", alpha=0.5)
plt.text(x=1.1, y=13, s=round(dataset_choice.mean(), 2))
plt.legend(["mean"])
ax.set(xlabel='Means', ylabel='Frequency', title='Histogram: Mean values - 50 bootstrap replicated datasets')
Ausgabe:
Wir sehen, dass die Verteilung anders aussieht als eine Exponentialverteilung. Sie ähnelt eher einer Normalverteilung. Die 50 Bootstrap Replikationsdatensätze haben einen Mittelwert von 1,09.
Zweites Experiment
Im zweiten Experiment verwenden wir 1.000 Bootstrap Wiederholungen.
dataset = (dataset_choice,)
res = bootstrap(dataset, np.mean, n_resamples=1000, random_state=42)
ax = sns.histplot(res.bootstrap_distribution)
plt.axvline(x=dataset_choice.mean(), linewidth=3, color='red', label="mean", alpha=0.5)
plt.text(x=1.06, y=121, s=round(dataset_choice.mean(), 2))
plt.legend(["mean"])
ax.set(xlabel='Means', ylabel='Frequency', title='Histogram: Mean values - 1000 bootstrap replicated datasets')
Ausgabe:
Jetzt sehen wir noch deutlicher, dass es sich um eine Normalverteilung handelt. Der Mittelwert der Bootstrap replizierten Datensätze beträgt 1,04.
Der Mittelwert des Originaldatensatzes lag bei 0,9971. Der Bootstrap Mittelwert beträgt 1,09 (50 Wiederholungen) und 1,04 (1.000 Wiederholungen). Wir müssen aber bedenken, dass wir für die Bootstrap Methode nur eine Stichprobe von 100 Werten verwendet haben. Mit der Bootstrap Methode können wir also eine gute Schätzung von statistischen Parametern vornehmen. In unserem Beispiel kennen wir die Verteilung der Grundgesamtheit. Dies ist jedoch häufig nicht der Fall. Die Bootstrap Methode liefert uns eine gute Schätzung für verschiedene Verteilungsparameter.
👉🏽 Du findest alle digitalen Produkte von uns in unserem Online Shop! Schaue gerne mal vorbei.
Dir gefällt unserer Content und wir konnten dir weiterhelfen? Dann unterstütze uns doch, indem du unsere Spendenoption auf Buy me a coffee nutzt oder unsere Artikel mit anderen teilst. Vergesse auch nicht, uns auf YouTube zu folgen. Vielen Dank für deine Unterstützung! 🙏🏽🙏🏽
Erfahre mehr über uns auf unserer About-Seite. Du kannst unseren Tech Blog auch gerne weiterempfehlen. Nutze hierfür einfach unser Empfehlungsprogramm und sichere dir Vorteile. Vielen Dank fürs Lesen.
Referenzen
* Affiliate-Link / Anzeige: Die Links sind Affiliate-Links, d.h. wir erhalten eine Provision, wenn du über diese Links einkaufst. Es entstehen keine zusätzlichen Kosten für dich.