Konfidenzintervalle legen den Bereich fest, in der ein Wert mit einer bestimmten Wahrscheinlichkeit fällt. Üblich ist das 95%-Konfidenzintervall. Man erwartet, dass der Wert mit 95%iger Wahrscheinlichkeit in diesem Bereich liegt. Es gibt verschiedene Möglichkeiten um Konfidenzintervalle zu bestimmen.
Parametrische Methoden
Parametrische Verfahren stammen aus der klassischen Statistik. Sie basieren auf der Annahme, dass die Daten einer bekannten Verteilung folgen. Häufig wird beispielsweise eine Normalverteilung angenommen. Ist dies der Fall, lässt sich das 95%-Konfidenzintervall für den Mittelwert mit folgender Formel berechnen:
\(\bar x \pm t_{\alpha/2, n-1} \cdot \frac {s}{\sqrt n}\)Hierbei ist s die Standardabweichung und n die Anzahl der Datenpunkte. t steht für den t-Wert aus der t-Verteilung für ein festgelegtes Signifikanzniveau alpha.
Interpretation der Konfidenzintervalle
Bei der Interpretation der Konfidenzintervalle ist darauf zu achten, dass das Konfidenzintervall genau genommen nicht aussagt, dass der Wert mit einer 95%-igen Wahrscheinlichkeit in diesem Bereich liegt. Stattdessen bezieht sich die Aussage auf das Verfahren, das zur Berechnung des Intervalls verwendet wurde. Wenn man den zugrunde liegenden Prozess – das Ziehen einer Stichprobe und die Berechnung des entsprechenden Intervalls – unendlich oft wiederholen würde, würden in 95% der Fälle die berechneten Intervalle den wahren Parameterwert einschließen.
Der wahre Parameterwert ist fest, aber das Konfidenzintervall variiert mit der Stichprobe. Zieht mal also 100 unabhängige Stichproben aus der Grundgesamtheit und berechnet für jede dieser Stichproben ein 95%-Konfidenzintervall, dann werden in etwa 95 dieser Intervalle der wahre Parameterwert enthalten. Für das einzelne, aktuell berechnete Intervall weiß man dagegen nicht, ob es den wahren Wert umfasst oder nicht.
Das Verfahren ist effizient in der Berechnung. Allerdings abhängig von der Verteilungsannahme. Stimmt diese nicht, dann verzerren sich die Ergebnisse.
Beispiel in Python
import numpy as np
import scipy.stats as stats
# Beispiel-Daten
data = [12, 7, 3, 8, 10, 15, 9, 11, 14]
mean = np.mean(data)
std_err = stats.sem(data) # Standardfehler des Mittelwerts
# Berechnung des kritischen t-Werts und des Intervalls
confidence = 0.95
t_crit = stats.t.ppf((1 + confidence) / 2, len(data) - 1)
h = std_err * t_crit
print(f"95%-Konfidenzintervall des Mittelwerts: [{mean - h:.2f}, {mean + h:.2f}]")
Bootstrapping
Bootstrapping ist eine nicht-parametrische Methode zur Bestimmung von Konfidenzintervallen. Bei diesem Verfahren ist daher keine Annahme über die zugrunde liegende Verteilung erforderlich. Es basiert darauf, aus dem ursprünglichen Datensatz wiederholt Stichproben mit Zurücklegen zu ziehen. Dadurch wird die empirische Verteilung der Daten genutzt, um den Parameter (z. B. den Mittelwert) und dessen Unsicherheit abzuschätzen.
Die Schritte im Überblick:
- Ziehen von Bootstrap-Stichproben aus den Daten.
- Berechnen des interessierenden Parameters (bspw. Mittelwert) für jede Stichprobe.
- Bestimmen des gewünschten Quantils (z. B. 2,5% und 97,5%) der resultierenden Verteilung.
Das Verfahren ist flexibel anwendbar und unabhängig von der zugrunde liegenden Verteilung. Allerdings ist es bei großen Daten rechenintensiv. Bei kleinen Datensätzen kann es hingegen unzuverlässig sein.
Beispiel in Python
import numpy as np
# Ursprüngliche Daten
data = [12, 7, 3, 8, 10, 15, 9, 11, 14]
# Anzahl der Bootstrap-Wiederholungen
n_iterations = 1000
n_size = len(data)
# Liste, um Bootstrap-Mittelwerte zu speichern
bootstrap_means = []
for _ in range(n_iterations):
# Ziehen einer Bootstrap-Stichprobe
sample = np.random.choice(data, size=n_size, replace=True)
# Berechnung des Mittelwerts
bootstrap_means.append(np.mean(sample))
# Konfidenzintervall (z. B. 95%)
lower_bound = np.percentile(bootstrap_means, 2.5)
upper_bound = np.percentile(bootstrap_means, 97.5)
print(f"95%-Konfidenzintervall des Mittelwerts (Bootstrapping): [{lower_bound:.2f}, {upper_bound:.2f}]")Bayesianische Methoden
Bayesianische Ansätze verwenden Wahrscheinlichkeitsverteilungen, um Unsicherheiten zu modellieren. Anstelle eines klassischen Konfidenzintervalls wird hier ein Glaubwürdigkeitsintervall (engl. Credible Interval) berechnet. Es gibt an, mit welcher Wahrscheinlichkeit der Parameter innerhalb eines bestimmten Bereichs liegt.
Basierend auf dem Bayes’schen Theorem, verwendet man die Kombination von Vorwissen (Prior) und beobachteten Daten (Likelihood), um eine Posterior-Verteilung zu erhalten.
Statt eines einzelnen Schätzers liefert es eine vollständige Verteilung der Parameter. Dadurch ermöglicht es sehr differenzierte Aussagen über die Unsicherheit. Im Gegensatz zum Konfidenzintervall der klassischen Statistik liefert ein Glaubwürdigkeitsintervall aus bayesianischer Perspektive eine direkte Aussage über die Wahrscheinlichkeit, dass ein Parameter in einem bestimmten Bereich liegt, basierend auf dem Vorwissen (Prior) und den beobachteten Daten.
Allerdings ist es komplexer und mitunter rechenintensiv (MCMC-Sampling). Die Ergebnisse können zudem von der Wahl des Priors abhängen.
Beispiel in Python
import pymc3 as pm
import numpy as np
# Beispiel-Daten
data = [12, 7, 3, 8, 10, 15, 9, 11, 14]
with pm.Model() as model:
# Definiere den Prior für den Mittelwert (mu)
mu = pm.Normal("mu", mu=0, sigma=10)
# Prior für die Standardabweichung (sigma)
sigma = pm.HalfNormal("sigma", sigma=10)
# Likelihood
observed = pm.Normal("observed", mu=mu, sigma=sigma, observed=data)
# Sampling des Posterior
trace = pm.sample(1000, return_inferencedata=False, progressbar=False)
# Berechnung des 95%-Glaubwürdigkeitsintervalls
credible_interval = pm.stats.hpd(trace["mu"], hdi_prob=0.95)
print(f"95%-Glaubwürdigkeitsintervall des Mittelwerts: {credible_interval}")
Conformal Predictions
Conformal Prediction unterscheiden sich von Konfidenzintervallen insofern, als sie nicht die Unsicherheit eines Parameters in der Grundgesamtheit bestimmen, sondern sich auf die Unsicherheit einer bestimmten Vorhersage eines Modells beziehne. Dabei nutzt man eine einfache, aber mächtige Methode zur Schätzung von Unsicherheiten basierend auf den Vorhersagefehlern eines Modells. Der zentrale Punkt ist die Berechnung eines sogenannten Nichtkonformitätsmaßes, das beschreibt, wie ungewöhnlich eine neue Beobachtung im Vergleich zu den Trainingsdaten ist.
Das Trainingsset wird in ein echtes Trainings- und ein Kalibrierungsset aufgeteilt. Das Modell wird mit den Trainingsdaten trainiert, und die Vorhersagefehler auf den Kalibrierdaten werden genutzt, um Konfidenzintervalle zu berechnen
Berechnung der Unsicherheitsintervalle
Nach dem Trainieren des Modell wird das Kalibrierungsset verwendet um die Residuen (= absolute Fehler) zu berechnen:
\(r_i = | y_i – \hat{y_i} |\)Anschließend wird ein Schwellwert q festgelegt, sodass ein bestimmtes Quantil (z. B. 90%) der Residuen unterhalb dieses Wertes liegt:
\(q = Quantil_{1-\alpha} (r_1, r_2, … , r_n)\)Für neue Daten verendet man nun diesen Fehlerwert, um das Unsicherheitsintervall zu bestimmen:
\([\hat{y}_{new} – q, \hat{y}_{new} + q]\)Das Verfahren ist modellunabhängig und flexibel anwendbar. Es erfordert aber ein separates Kalibrierungsset. Bei kleineren Kalibrierungssamples kann es zu eher konservativen Intervallen führen.
Beispiel in Python
import numpy as np
# Beispiel-Daten
data = np.array([12, 7, 3, 8, 10, 15, 9, 11, 14])
# Conformal Prediction Ansatz
alpha = 0.1 # 90% Abdeckungswahrscheinlichkeit
residuals = np.abs(data - mean)
quantile = np.quantile(residuals, 1 - alpha)
conf_pred_interval = (mean - quantile, mean + quantile)
print(f"Conformal Prediction Intervall (90% Abdeckung): {conf_pred_interval}")Zusammenfassung
| Methode | Vorteile | Nachteile |
|---|---|---|
| Parametrische Methoden | – Effiziente, analytische Berechnung – Gut interpretierbar bei erfüllter Verteilungsannahme | – Starke Abhängigkeit von Annahmen (z. B. Normalverteilung) |
| Bootstrapping | – Keine Verteilungsannahme erforderlich – Flexibel einsetzbar | – Rechenintensiv – Empfindlich bei sehr kleinen Datensätzen |
| Bayesianische Methoden | – Integration von Vorwissen – Liefert vollständige Posterior-Verteilungen | – Hoher Rechenaufwand (MCMC-Sampling) – Ergebnisse können von der Wahl des Priors abhängen |
| Conformal Predictions | – Modellunabhängig – Einfache Berechnung von Unsicherheitsintervallen | – Erfordert Kalibrierungsset – Kann bei kleinen Kalibrierungssamples zu zu konservativen Intervallen führen |