Signatur
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
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
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);
}
// 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.