Start · Sprachen · PHP · Referenz · stats_dens_pmf_binomial

stats_dens_pmf_binomial

Funktion

Berechnet die Wahrscheinlichkeitsfunktion (PMF) der Binomialverteilung für <code>k</code> Erfolge bei <code>n</code> Versuchen mit Erfolgswahrscheinlichkeit <code>pi</code>.

Kategorie: math

Signatur

stats_dens_pmf_binomial(int $x, int $n, float $pi): float

Beschreibung

Die Funktion stats_dens_pmf_binomial() gehört zur PECL-Erweiterung stats und berechnet den Wert der Wahrscheinlichkeitsmassenfunktion (PMF – Probability Mass Function) der Binomialverteilung. Sie gibt die Wahrscheinlichkeit zurück, bei genau x Erfolgen in n unabhängigen Bernoulli-Versuchen, wobei jeder Versuch die Erfolgswahrscheinlichkeit pi besitzt.

Die Binomialverteilung ist eine diskrete Wahrscheinlichkeitsverteilung, die häufig in der Qualitätssicherung, Umfrageauswertung, Genetik und anderen Bereichen eingesetzt wird, um zu modellieren, wie oft ein binäres Ereignis (Erfolg/Misserfolg) in einer festen Anzahl von unabhängigen Wiederholungen auftritt.

Die zugrundeliegende Formel lautet: P(X = x) = C(n, x) * pi^x * (1 - pi)^(n - x), wobei C(n, x) den Binomialkoeffizienten bezeichnet. Die Funktion ist damit besonders nützlich, wenn man die exakte Wahrscheinlichkeit für einen bestimmten Ausgang kennen möchte, ohne die Formel manuell zu implementieren.

Wichtig: Diese Funktion setzt die Installation der PECL-Erweiterung stats voraus, die nicht im PHP-Standardumfang enthalten ist. Sie muss separat installiert und in der php.ini aktiviert werden.

Parameter

Name Typ Default Beschreibung
$x Pflicht int Die Anzahl der gewünschten Erfolge (nicht-negative ganze Zahl, 0 <= x <= n).
$n Pflicht int Die Gesamtanzahl der unabhängigen Bernoulli-Versuche (positive ganze Zahl).
$pi Pflicht float Die Erfolgswahrscheinlichkeit eines einzelnen Versuchs. Muss im Bereich 0.0 <= pi <= 1.0 liegen.

Rückgabewert

Typ
float
Beschreibung
Gibt die Wahrscheinlichkeit zurück, bei genau x Erfolgen in n Versuchen mit Erfolgswahrscheinlichkeit pi. Der Rückgabewert liegt stets zwischen 0.0 und 1.0. Bei ungültigen Parametern kann 0.0 oder ein NaN-Wert zurückgegeben werden.

Beispiele

Wahrscheinlichkeit für genau 3 Sechsen bei 10 Würfelwürfen

<?php
// Wie wahrscheinlich ist es, bei 10 Würfelwürfen genau 3 Sechsen zu erhalten?
// Erfolgswahrscheinlichkeit einer Sechs: 1/6 ≈ 0.1667

$x  = 3;         // gewünschte Anzahl Erfolge
$n  = 10;        // Anzahl Versuche
$pi = 1 / 6;     // Erfolgswahrscheinlichkeit

$wahrscheinlichkeit = stats_dens_pmf_binomial($x, $n, $pi);

echo sprintf(
    "P(X = %d | n = %d, pi = %.4f) = %.6f",
    $x, $n, $pi, $wahrscheinlichkeit
);
// Ausgabe: P(X = 3 | n = 10, pi = 0.1667) = 0.155220
P(X = 3 | n = 10, pi = 0.1667) = 0.155220

Qualitätskontrolle: Wahrscheinlichkeit für defekte Bauteile

<?php
// Eine Fabrik produziert Bauteile mit 5% Ausschussquote.
// Wie wahrscheinlich ist es, in einer Charge von 20 Teilen genau 2 Defekte zu finden?

$x  = 2;    // genau 2 defekte Teile
$n  = 20;   // Chargengröße
$pi = 0.05; // Ausschusswahrscheinlichkeit

$p = stats_dens_pmf_binomial($x, $n, $pi);

echo sprintf(
    "Wahrscheinlichkeit für genau %d Defekte bei %d Teilen: %.4f (%.2f%%)",
    $x, $n, $p, $p * 100
);
// Ausgabe: Wahrscheinlichkeit für genau 2 Defekte bei 20 Teilen: 0.1887 (18.87%)
Wahrscheinlichkeit für genau 2 Defekte bei 20 Teilen: 0.1887 (18.87%)

// Wichtig · Fallstricke

PECL-Abhängigkeit: stats_dens_pmf_binomial() ist Teil der PECL stats-Erweiterung und steht in einer Standard-PHP-Installation nicht zur Verfügung. Installation via pecl install stats und anschließender Eintrag in der php.ini (extension=stats.so) sind erforderlich.

Parametergrenzen: x muss im Bereich [0, n] liegen, pi muss zwischen 0.0 und 1.0 liegen und n muss größer als 0 sein. Bei Verletzung dieser Grenzen ist das Verhalten undefiniert oder liefert 0.

Alternativen: Falls die PECL-Erweiterung nicht verfügbar ist, kann der Wert manuell über die Formel C(n, x) * pow($pi, $x) * pow(1 - $pi, $n - $x) berechnet werden, wobei C(n, x) über die gmp_fact()-Funktion oder iterativ ermittelt werden kann.