Start · Sprachen · PHP · Referenz · stats_dens_pmf_negative_binomial

stats_dens_pmf_negative_binomial

Funktion

Berechnet die Wahrscheinlichkeitsmassenfunktion (PMF) der negativen Binomialverteilung für einen gegebenen Wert <code>x</code>.

Kategorie: math

Signatur

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

Beschreibung

Die Funktion stats_dens_pmf_negative_binomial() gehört zur PECL-Erweiterung stats und berechnet den Wert der Wahrscheinlichkeitsmassenfunktion (PMF) der negativen Binomialverteilung. Die negative Binomialverteilung modelliert die Anzahl der Misserfolge x, die auftreten, bevor eine vorgegebene Anzahl von Erfolgen n erreicht wird, wobei jeder Versuch mit einer Erfolgswahrscheinlichkeit pi unabhängig durchgeführt wird.

Die PMF gibt an, mit welcher Wahrscheinlichkeit genau x Misserfolge eintreten, bevor der n-te Erfolg erzielt wird. Sie ist definiert als: P(X = x) = C(x + n - 1, x) * pi^n * (1 - pi)^x, wobei C den Binomialkoeffizienten bezeichnet.

Typische Anwendungsfelder sind Qualitätskontrolle, Zuverlässigkeitsanalyse und statistische Modellierung von Zähldaten mit Überdispersion, etwa bei der Analyse von Ausschussquoten oder der Modellierung von Wartezeiten bis zu einem bestimmten Ereignis.

Die Funktion setzt die PECL-Erweiterung stats voraus, die separat installiert werden muss und nicht Teil der PHP-Standardbibliothek ist.

Parameter

Name Typ Default Beschreibung
$x Pflicht int Die Anzahl der Misserfolge, bevor der n-te Erfolg eintritt. Muss eine nicht-negative ganze Zahl sein.
$n Pflicht float Die Anzahl der gewünschten Erfolge (Zielereignisse). Muss positiv sein. Kann auch eine nicht-ganzzahlige (verallgemeinerte) Anzahl sein.
$pi Pflicht float Die Erfolgswahrscheinlichkeit eines einzelnen Versuchs. Muss im Bereich 0 < pi <= 1 liegen.

Rückgabewert

Typ
float
Beschreibung
Gibt den Wert der Wahrscheinlichkeitsmassenfunktion der negativen Binomialverteilung an der Stelle x zurück. Der Rückgabewert liegt im Bereich [0, 1].

Beispiele

Wahrscheinlichkeit für genau 3 Misserfolge vor dem 5. Erfolg

<?php
// Berechnung: Wie wahrscheinlich ist es, genau 3 Misserfolge zu erhalten,
// bevor der 5. Erfolg eintritt, wenn pi = 0.6?
$x  = 3;    // Anzahl der Misserfolge
$n  = 5;    // Anzahl der gewünschten Erfolge
$pi = 0.6;  // Erfolgswahrscheinlichkeit

$pmf = stats_dens_pmf_negative_binomial($x, $n, $pi);
echo 'P(X = ' . $x . ') = ' . $pmf . PHP_EOL;
// Erwartete Ausgabe: ca. 0.13824
P(X = 3) = 0.13824

PMF-Tabelle für verschiedene Misserfolgs-Werte

<?php
// Erstellt eine Tabelle der PMF-Werte für x = 0 bis 10
// bei n = 3 Erfolgen und pi = 0.5
$n  = 3;
$pi = 0.5;

echo sprintf('%-10s %-15s', 'x', 'P(X = x)') . PHP_EOL;
echo str_repeat('-', 25) . PHP_EOL;

for ($x = 0; $x <= 10; $x++) {
    $pmf = stats_dens_pmf_negative_binomial($x, $n, $pi);
    echo sprintf('%-10d %-15.6f', $x, $pmf) . PHP_EOL;
}
x P(X = x) ------------------------- 0 0.125000 1 0.187500 2 0.187500 3 0.156250 4 0.117188 5 0.082031 6 0.054688 7 0.035156 8 0.021973 9 0.013428 10 0.008057

// Wichtig · Fallstricke

Voraussetzung: Diese Funktion ist Teil der PECL-Erweiterung stats und steht nicht in einer Standard-PHP-Installation zur Verfügung. Sie muss über PECL installiert werden (pecl install stats).

Parametergrenzen: Der Parameter pi muss strikt größer als 0 und kleiner oder gleich 1 sein. Der Parameter x muss eine nicht-negative ganze Zahl sein und n muss positiv sein. Ungültige Parameterwerte können zu undefinierten Rückgabewerten oder Warnungen führen.

Unterschied zu stats_dens_pmf_binomial(): Während die Binomialverteilung die Anzahl der Erfolge bei einer festen Anzahl von Versuchen modelliert, modelliert die negative Binomialverteilung die Anzahl der Misserfolge bis zu einer festen Anzahl von Erfolgen.