Start · Sprachen · PHP · Referenz · stats_dens_pmf_poisson

stats_dens_pmf_poisson

Funktion

Berechnet die Wahrscheinlichkeitsmasse (PMF) der Poisson-Verteilung für den Wert <code>k</code> bei gegebenem Erwartungswert <code>mu</code>.

Kategorie: math

Signatur

stats_dens_pmf_poisson(int $k, float $mu): float

Beschreibung

Die Funktion stats_dens_pmf_poisson() gehört zur PECL-Erweiterung stats und berechnet die Wahrscheinlichkeitsmassefunktion (Probability Mass Function, PMF) der Poisson-Verteilung. Die Poisson-Verteilung modelliert die Anzahl von Ereignissen, die in einem festen Zeitintervall oder Raum auftreten, sofern diese Ereignisse mit einer bekannten, konstanten Durchschnittsrate unabhängig voneinander eintreten.

Der Rückgabewert gibt die Wahrscheinlichkeit an, dass genau k Ereignisse auftreten, wenn der Erwartungswert (Mittelwert) der Verteilung mu (auch als λ bezeichnet) beträgt. Die Formel lautet: P(X = k) = (e^(-mu) * mu^k) / k!.

Typische Anwendungsfälle sind die Modellierung von Serveranfragen pro Sekunde, Fehler pro Seite in einem Dokument, Anrufe in einem Callcenter pro Stunde oder radioaktive Zerfälle pro Zeiteinheit. Die Funktion ist besonders dann nützlich, wenn seltene Ereignisse bei großer Grundgesamtheit analysiert werden sollen.

Bitte beachten: Diese Funktion ist nicht Teil der PHP-Standardbibliothek, sondern erfordert die Installation der PECL-Erweiterung stats (pecl install stats).

Parameter

Name Typ Default Beschreibung
$k Pflicht int Die Anzahl der Ereignisse (nicht-negativer ganzzahliger Wert), für die die Wahrscheinlichkeit berechnet werden soll. Muss ≥ 0 sein.
$mu Pflicht float Der Erwartungswert (Mittelwert, auch λ) der Poisson-Verteilung. Gibt die durchschnittliche Anzahl der Ereignisse im betrachteten Intervall an. Muss > 0 sein.

Rückgabewert

Typ
float
Beschreibung
Gibt die Wahrscheinlichkeit zurück, dass exakt k Ereignisse bei einem Erwartungswert von mu auftreten. Der Wert liegt im Bereich [0, 1]. Bei ungültigen Parametern kann 0.0 oder ein undefinierter Wert zurückgegeben werden.

Beispiele

Einfache PMF-Berechnung für Poisson-Verteilung

<?php
// Wahrscheinlichkeit, dass genau 3 Ereignisse auftreten,
// wenn der Erwartungswert (mu) 2.5 beträgt
$k  = 3;
$mu = 2.5;

$prob = stats_dens_pmf_poisson($k, $mu);
echo "P(X = {$k} | mu = {$mu}) = " . number_format($prob, 6) . PHP_EOL;
// Erwartete Ausgabe: P(X = 3 | mu = 2.5) = 0.213763
P(X = 3 | mu = 2.5) = 0.213763

Verteilung über mehrere Ereignisanzahlen ausgeben

<?php
// Serveranfragen-Szenario: Durchschnittlich 4 Anfragen pro Sekunde
$mu = 4.0;

echo "Poisson-Verteilung (mu = {$mu}):\n";
for ($k = 0; $k <= 10; $k++) {
    $prob = stats_dens_pmf_poisson($k, $mu);
    $bar  = str_repeat('*', (int) round($prob * 100));
    printf("k = %2d: %.6f  %s\n", $k, $prob, $bar);
}
Poisson-Verteilung (mu = 4): k = 0: 0.018316 * k = 1: 0.073263 ******* k = 2: 0.146525 *************** k = 3: 0.195367 ******************** k = 4: 0.195367 ******************** k = 5: 0.156293 **************** k = 6: 0.104196 ********** k = 7: 0.059540 ****** k = 8: 0.029770 *** k = 9: 0.013231 * k = 10: 0.005293 *

// Wichtig · Fallstricke

PECL-Abhängigkeit: Die Funktion ist nur verfügbar, wenn die PECL-Erweiterung stats installiert und in der php.ini aktiviert ist. Sie ist nicht Bestandteil der PHP-Kernbibliothek. Installation: pecl install stats.

Parametervalidierung: Der Parameter k sollte eine nicht-negative ganze Zahl sein und mu muss positiv sein (> 0). Ungültige Werte (z. B. negative k oder mu = 0) können zu undefinierten oder falschen Ergebnissen führen, ohne dass eine PHP-Exception geworfen wird.

Präzision: Bei sehr großen Werten von k oder mu können Gleitkomma-Ungenauigkeiten auftreten, da intern Fakultäten und Potenzen berechnet werden.