Log-Beta Funktion Rechner

Logarithmische Beta-Funktion für numerische Stabilität


📈 Log-Beta Funktion ln(B(a,b))

Logarithmische Beta-Funktion für große Parameter und numerische Stabilität

ln(B( ,
Erstes Argument der Log-Beta-Funktion (a > 0)
))
Zweites Argument der Log-Beta-Funktion (b > 0)
📈
Log-Beta-Funktion: Logarithmus der Beta-Funktion für numerische Stabilität bei großen Parametern.
⚠️ Fehler:

Geben Sie die Argumente a und b ein und klicken Sie auf Berechnen um die Log-Beta-Funktion zu ermitteln. Die Log-Beta-Funktion ist der natürliche Logarithmus der Beta-Funktion und bietet numerische Stabilität bei großen Parametern, wo die reguläre Beta-Funktion zu Overflow oder Underflow führen würde.


💡 Log-Beta-Funktion

\(\ln B(a,b) = \ln \Gamma(a) + \ln \Gamma(b) - \ln \Gamma(a+b)\)


Log-Beta Funktionen Kurven

Charakteristische Kurven der Log-Beta-Funktion


Die Log-Beta-Funktion verstehen

Die Log-Beta-Funktion ist der natürliche Logarithmus der Beta-Funktion und spielt eine entscheidende Rolle in der numerischen Mathematik und Statistik. Sie bietet numerische Stabilität bei großen Parametern, vermeidet Overflow- und Underflow-Probleme und ermöglicht die direkte Berechnung ohne Umweg über die reguläre Beta-Funktion. Die Funktion ist fundamental für statistische Modelle, Wahrscheinlichkeitsverteilungen und Bayesianische Inferenz.

📈 Definition

Logarithmische Form:

\(\ln B(a,b) = \ln \Gamma(a) + \ln \Gamma(b) - \ln \Gamma(a+b)\)
Für a,b > 0
📊 Eigenschaften
  • • Numerisch stabil
  • • Vermeidet Overflow
  • • Symmetrisch
  • • Direkt berechenbar
🔬 Vorteile
  • • Keine Overflow-Probleme
  • • Bessere Konditionierung
  • • Direkte Verwendung in Log-Likelihood
  • • Effiziente Berechnung
⭐ Anwendungen
  • • Bayesianische Statistik
  • • Log-Likelihood-Funktionen
  • • Dirichlet-Verteilungen
  • • Numerische Optimierung

Mathematische Grundlagen

📈 Definition und Eigenschaften

Die Log-Beta-Funktion und ihre fundamentalen Eigenschaften:

\[\text{Definition: } \ln B(a,b) = \ln\left(\int_0^1 t^{a-1}(1-t)^{b-1} \, dt\right)\] \[\text{Gamma-Beziehung: } \ln B(a,b) = \ln \Gamma(a) + \ln \Gamma(b) - \ln \Gamma(a+b)\] \[\text{Symmetrie: } \ln B(a,b) = \ln B(b,a)\] \[\text{Rekursion: } \ln B(a+1,b) = \ln B(a,b) + \ln\left(\frac{a}{a+b}\right)\]

🔄 Numerische Vorteile

Warum die logarithmische Form überlegen ist:

\[\text{Overflow-Vermeidung: } B(100,200) \text{ vs. } \ln B(100,200)\] \[\text{B(100,200) ≈ 10^{-58} \text{ (Underflow!)}\] \[\text{ln B(100,200) ≈ -134.6 \text{ (stabil)}\] \[\text{Additive Eigenschaften in Log-Likelihood:}\] \[\text{ln L = } \sum_i \ln f(x_i) = \sum_i [\alpha_i \ln B(a_i,b_i) + \ldots]\]

📊 Spezielle Werte

Wichtige Log-Beta-Funktionswerte:

\[\ln B(1,1) = \ln(1) = 0\] \[\ln B(1,n) = \ln\left(\frac{1}{n}\right) = -\ln(n)\] \[\ln B(m,n) = \ln(m-1)! + \ln(n-1)! - \ln(m+n-1)!\] \[\ln B(1/2,1/2) = \ln(\pi) \approx 1.1447\] \[\ln B(a,b) \to -\infty \text{ wenn } a \to 0^+ \text{ oder } b \to 0^+\]

Praktische Berechnungsbeispiele

📝 Beispiel 1: Numerische Stabilität

Aufgabe: Berechne B(50,100) vs. ln B(50,100)
Problem: B(50,100) ist extrem klein
Lösung:

\[\text{Direkte Berechnung: } B(50,100) = \frac{\Gamma(50)\Gamma(100)}{\Gamma(150)}\] \[\text{≈ } \frac{49! \cdot 99!}{149!} \text{ (Overflow-Problem!)}\] \[\text{Log-Beta-Berechnung: } \ln B(50,100) = \ln \Gamma(50) + \ln \Gamma(100) - \ln \Gamma(150)\] \[\text{≈ } 148.48 + 363.74 - 605.02 = -92.80\] \[\text{Daher: } B(50,100) = e^{-92.80} \approx 1.37 \times 10^{-41}\]

Vorteil: Numerisch stabile Berechnung ohne Overflow

📝 Beispiel 2: Dirichlet-Verteilung

Aufgabe: Log-Likelihood der Dirichlet-Verteilung
Dichte: f(x|α) = [1/B(α)] ∏ᵢ xᵢ^(αᵢ-1)
Berechnung:

\[\text{Dirichlet-Verteilung für } k \text{ Komponenten:}\] \[f(\mathbf{x}|\boldsymbol{\alpha}) = \frac{1}{B(\boldsymbol{\alpha})} \prod_{i=1}^k x_i^{\alpha_i - 1}\] \[\text{wobei } B(\boldsymbol{\alpha}) = \frac{\prod_{i=1}^k \Gamma(\alpha_i)}{\Gamma(\sum_{i=1}^k \alpha_i)}\] \[\text{Log-Likelihood für } n \text{ Beobachtungen:}\] \[\ell(\boldsymbol{\alpha}) = -n \ln B(\boldsymbol{\alpha}) + \sum_{i=1}^k (\alpha_i - 1) \sum_{j=1}^n \ln x_{ji}\] \[= -n \left[\sum_{i=1}^k \ln \Gamma(\alpha_i) - \ln \Gamma\left(\sum_{i=1}^k \alpha_i\right)\right] + \ldots\]

Wichtigkeit: Log-Beta ist essentiell für Maximum-Likelihood-Schätzung

📝 Beispiel 3: Bayesianische Konjugation

Aufgabe: Beta-Binomial-Modell mit Log-Beta
Prior: Beta(α,β), Likelihood: Binomial
Berechnung:

\[\text{Prior: } p \sim \text{Beta}(\alpha, \beta)\] \[\text{Likelihood: } X|p \sim \text{Binomial}(n, p)\] \[\text{Posterior: } p|X \sim \text{Beta}(\alpha + x, \beta + n - x)\] \[\text{Log-Marginal-Likelihood:}\] \[\ln p(x) = \ln B(\alpha + x, \beta + n - x) - \ln B(\alpha, \beta) + \ln \binom{n}{x}\] \[= [\ln \Gamma(\alpha + x) + \ln \Gamma(\beta + n - x) - \ln \Gamma(\alpha + \beta + n)]\] \[- [\ln \Gamma(\alpha) + \ln \Gamma(\beta) - \ln \Gamma(\alpha + \beta)] + \ln \binom{n}{x}\]

Anwendung: Model Selection, Bayes Factors

Numerische Aspekte

✅ Vorteile der Log-Beta-Funktion

Numerische Vorteile gegenüber der regulären Beta-Funktion:

\[\text{✓ Keine Overflow-Probleme bei großen Parametern}\] \[\text{✓ Keine Underflow-Probleme bei kleinen Beta-Werten}\] \[\text{✓ Additive Eigenschaften in Log-Likelihood-Funktionen}\] \[\text{✓ Bessere numerische Konditionierung}\] \[\text{✓ Direkte Berechenbarkeit über Log-Gamma}\] \[\text{✓ Symmetrieeigenschaften bleiben erhalten}\]

⚠️ Berechnungsaspekte

Wichtige Implementierungsdetails:

\[\text{⚠ Genauigkeit hängt von Log-Gamma-Implementation ab}\] \[\text{⚠ Für sehr kleine Parameter können Log-Gamma-Werte sehr negativ werden}\] \[\text{⚠ Rekursionsformeln müssen sorgfältig implementiert werden}\] \[\text{⚠ Numerische Ableitung für Gradienten kann instabil sein}\]

Vergleichstabelle der Werte

📊 Log-Beta Werte

a b B(a,b) ln(B(a,b)) Anmerkung
1 1 1 0 Uniform-Prior
2 3 1/12 ≈ 0.083 -2.485 Klassisches Beispiel
0.5 0.5 π ≈ 3.142 1.145 Arcsin-Verteilung
5 10 ~6.31×10⁻⁶ -12.074 Moderate Parameter
50 100 ~1.37×10⁻⁴¹ -92.799 Große Parameter
0.1 0.2 ~50.4 3.92 Kleine Parameter

Anwendungen in verschiedenen Bereichen

📊 Bayesianische Statistik
  • • Beta-Binomial-Modelle
  • • Dirichlet-Multinomial
  • • Hierarchische Modelle
  • • MCMC-Algorithmen
🧮 Numerische Mathematik
  • • Maximum-Likelihood-Schätzung
  • • Gradientenbasierte Optimierung
  • • Variational Inference
  • • Expectation-Maximization
🔬 Maschinelles Lernen
  • • Latent Dirichlet Allocation
  • • Variational Autoencoders
  • • Bayesianische Neuronale Netze
  • • Topic Modeling
📈 Angewandte Statistik
  • • A/B Testing
  • • Survival Analysis
  • • Biostatistik
  • • Qualitätskontrolle

Implementierung und Code

💻 Code-Implementierungen

Effiziente Implementierung der Log-Beta-Funktion:

Python (SciPy):
from scipy.special import betaln, loggamma
import numpy as np

# Log-Beta-Funktion
result = betaln(a, b) # ln(B(a,b))

# Eigene Implementation
def log_beta(a, b):
  """Log-Beta-Funktion über Log-Gamma"""
  return loggamma(a) + loggamma(b) - loggamma(a + b)

# Vectorized version
def log_beta_vec(a, b):
  """Vektorisierte Log-Beta-Funktion"""
  a, b = np.asarray(a), np.asarray(b)
  return loggamma(a) + loggamma(b) - loggamma(a + b)

R:
result <- lbeta(a, b) # Log-Beta
# Oder über lgamma
result <- lgamma(a) + lgamma(b) - lgamma(a + b)

MATLAB:
result = betaln(a, b); % Log-Beta
% Oder über gammaln
result = gammaln(a) + gammaln(b) - gammaln(a + b);

🎯 Statistische Anwendung

Log-Beta in der Bayesianischen Statistik:

Dirichlet-Verteilung Log-Likelihood:
def dirichlet_log_likelihood(data, alpha):
  """Log-Likelihood für Dirichlet-Verteilung"""
  n, k = data.shape
  alpha = np.asarray(alpha)
  
  # Log-Normalisierungskonstante
  log_norm = (loggamma(alpha.sum()) -
              loggamma(alpha).sum())
  
  # Log-Likelihood
  log_lik = (n * log_norm +
            ((alpha - 1) * np.log(data).sum(axis=0)).sum())
  
  return log_lik

Beta-Binomial-Modell:
def beta_binomial_log_pmf(k, n, alpha, beta):
  """Log-PMF der Beta-Binomial-Verteilung"""
  from scipy.special import gammaln
  
  return (gammaln(n + 1) - gammaln(k + 1) - gammaln(n - k + 1) +
         gammaln(k + alpha) + gammaln(n - k + beta) - gammaln(n + alpha + beta) +
         gammaln(alpha + beta) - gammaln(alpha) - gammaln(beta))

Posterior Update:
def beta_posterior_update(prior_alpha, prior_beta, successes, failures):
  """Update Beta-Prior und berechne Log-Evidence"""
  post_alpha = prior_alpha + successes
  post_beta = prior_beta + failures
  
  # Log-Marginal-Likelihood (Evidence)
  log_evidence = (betaln(post_alpha, post_beta) -
                 betaln(prior_alpha, prior_beta))
  
  return post_alpha, post_beta, log_evidence

🎯 Hochperformante Implementation

C++ Implementation für kritische Anwendungen:

C++ (Numerisch optimiert):
#include <cmath>
#include <stdexcept>

double log_beta(double a, double b) {
  if (a <= 0 || b <= 0) {
    throw std::domain_error("Log-Beta: arguments must be positive");
  }
  
  // Verwende lgamma für numerische Stabilität
  return lgamma(a) + lgamma(b) - lgamma(a + b);
}

// Vektorisierte Version
void log_beta_array(const double* a, const double* b,
                     double* result, size_t n) {
  for (size_t i = 0; i < n; ++i) {
    result[i] = log_beta(a[i], b[i]);
  }
}

CUDA (GPU-Beschleunigung):
__device__ double cuda_log_beta(double a, double b) {
  return lgamma(a) + lgamma(b) - lgamma(a + b);
}

__global__ void log_beta_kernel(const double* a, const double* b,
                                 double* result, int n) {
  int idx = blockIdx.x * blockDim.x + threadIdx.x;
  if (idx < n) {
    result[idx] = cuda_log_beta(a[idx], b[idx]);
  }
}
💡 Wichtige Eigenschaften der Log-Beta-Funktion:
  • Numerische Stabilität: Vermeidet Overflow/Underflow bei extremen Parametern
  • Direkte Berechenbarkeit: Über Log-Gamma ohne Umweg über Beta-Funktion
  • Additive Eigenschaften: Ideal für Log-Likelihood-Funktionen
  • Symmetrie erhalten: ln B(a,b) = ln B(b,a)
🔬 Anwendungsgebiete der Log-Beta-Funktion:
  • Bayesianische Statistik: Prior/Posterior-Updates, Model Evidence
  • Maschinelles Lernen: Dirichlet-basierte Modelle, Topic Modeling
  • Numerische Optimierung: Log-Likelihood-Maximierung
  • Wahrscheinlichkeitstheorie: Konjugate Priors, Beta-Binomial-Modelle