Sofortantwort
Likelihood einfach erklärt
Wahrscheinlichkeit der Daten gegeben die Modellparameter.
- Kurz gesagt
- L(θ|x) = P(x|θ) – Daten gegeben Parameter
- Typischer Einsatz
- Maximum Likelihood Estimation, Modellvergleich, Bayesian Inference
- Wichtig zu wissen
- Maximum Likelihood: Finde θ, das L maximiert
Likelihood im Überblick
Likelihood misst, wie gut ein Modell die beobachteten Daten erklärt.
Probability: Gegeben Modell, wie wahrscheinlich sind Daten?
P(Daten | Modell) → Vorhersage
Likelihood: Gegeben Daten, wie plausibel ist das Modell?
L(Modell | Daten) → Schätzung
Beispiel: Münzwurf
Beobachtung: mehrere Erfolge und Misserfolge
Likelihood für Parameter p_a:
L(p_a) = Wahrscheinlichkeit der beobachteten Daten unter p_a
Likelihood für Parameter p_b:
L(p_b) = Wahrscheinlichkeit der beobachteten Daten unter p_b
→ Der Parameter mit höherer Likelihood erklärt diese Daten im Modell besser
Technisch betrachtet
Maximum Likelihood Estimation
import numpy as np
from scipy.optimize import minimize
def negative_log_likelihood(theta, data):
# Bernoulli Likelihood
p = theta[0]
successes = data.sum()
failures = len(data) - successes
# Log-Likelihood (negativ für Minimierung)
ll = successes * np.log(p) + failures * np.log(1-p)
return -ll
# MLE finden
data = np.array(observed_binary_outcomes)
result = minimize(negative_log_likelihood, x0=[initial_p], args=(data,),
bounds=[(min_p, max_p)])
print(f"MLE: p = {result.x[0]:.2f}")
Log-Likelihood
# Produkt → kann numerisch instabil bei vielen Daten werden
likelihood = np.prod([p**x * (1-p)**(1-x) for x in data])
# Log-Likelihood → meist numerisch stabiler
log_likelihood = np.sum([x*np.log(p) + (1-x)*np.log(1-p) for x in data])