Signatur
Beschreibung
stats_cdf_poisson() ist Teil der stats-PECL-Erweiterung und berechnet einen Parameter der Poisson-Verteilung, wenn die anderen bekannt sind. Je nach Wert von $which wird entweder der kumulative Wahrscheinlichkeitswert (CDF), die Anzahl der Ereignisse oder der Erwartungswert (Lambda) ermittelt.
Die Poisson-Verteilung beschreibt die Wahrscheinlichkeit, dass in einem festen Zeitintervall eine bestimmte Anzahl von Ereignissen eintritt, wenn die Ereignisse unabhängig voneinander und mit konstanter mittlerer Rate auftreten. Typische Anwendungsfälle sind Anrufvolumen in Callcentern, radioaktiver Zerfall oder Fehlerrate in Software.
$which = 1: Berechnet die kumulative Wahrscheinlichkeit P (CDF) für gegebene Ereigniszahl ($par1) und Lambda ($par2).$which = 2: Berechnet die Ereigniszahl (S) für gegebene Wahrscheinlichkeit ($par1) und Lambda ($par2).$which = 3: Berechnet den Erwartungswert Lambda für gegebene Wahrscheinlichkeit ($par1) und Ereigniszahl ($par2).
Die Funktion erfordert die Installation der stats-PECL-Erweiterung und ist nicht im PHP-Kern enthalten. Sie basiert auf dem DCDFLIB-Algorithmus.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $par1 Pflicht | float | Je nach $which: die Ereigniszahl S (which=1), die kumulative Wahrscheinlichkeit P (which=2 oder which=3). |
|
| $par2 Pflicht | float | Je nach $which: der Erwartungswert Lambda (which=1), Lambda (which=2) oder die Ereigniszahl S (which=3). |
|
| $which Pflicht | int | Bestimmt, welcher Parameter berechnet wird: 1 = kumulative Wahrscheinlichkeit P, 2 = Ereigniszahl S, 3 = Erwartungswert Lambda. |
Rückgabewert
$which = 1 ist dies die kumulative Wahrscheinlichkeit im Bereich [0, 1]; bei $which = 2 die Ereigniszahl; bei $which = 3 das Lambda.Beispiele
Kumulative Wahrscheinlichkeit für Poisson-Ereignisse berechnen
<?php
// Wahrscheinlichkeit, dass bei Lambda=3 maximal 5 Ereignisse eintreten
$s = 5.0; // Anzahl der Ereignisse
$lambda = 3.0; // Erwartungswert
$which = 1; // P berechnen
$p = stats_cdf_poisson($s, $lambda, $which);
echo sprintf("P(X <= 5 | Lambda=3) = %.6f\n", $p);
// Erwartete Ausgabe: P(X <= 5 | Lambda=3) = 0.916082
Lambda aus bekannter Wahrscheinlichkeit und Ereigniszahl zurückrechnen
<?php
// Bekannt: P = 0.9161 und S = 5 — welches Lambda ergibt das?
$p = 0.916082;
$s = 5.0;
$which = 3; // Lambda berechnen
$lambda = stats_cdf_poisson($p, $s, $which);
echo sprintf("Lambda = %.6f\n", $lambda);
// Erwartete Ausgabe: Lambda = 3.000000
Mindestanzahl von Ereignissen für eine gegebene Wahrscheinlichkeit bestimmen
<?php
// Ab welcher Ereigniszahl S ist P(X <= S | Lambda=3) >= 0.95?
$p = 0.95;
$lambda = 3.0;
$which = 2; // S berechnen
$s = stats_cdf_poisson($p, $lambda, $which);
echo sprintf("Mindest-Ereigniszahl S = %.1f\n", $s);
// Erwartete Ausgabe: Mindest-Ereigniszahl S = 6.0
// Wichtig · Fallstricke
Voraussetzung: Die Funktion ist nur verfügbar, wenn die stats-PECL-Erweiterung installiert und in der php.ini aktiviert ist (extension=stats). Ohne diese Erweiterung führt ein Aufruf zu einem fatalen Fehler.
Parametergrenzen: Lambda ($par2 bei which=1) muss positiv sein (> 0). Die Ereigniszahl muss nicht-negativ sein. Wahrscheinlichkeitswerte müssen im Intervall [0, 1] liegen. Ungültige Eingaben können zu NaN oder nicht definierten Ergebnissen führen.
Kompatibilität: Da die stats-Erweiterung nicht zum PHP-Kern gehört, ist sie in vielen Shared-Hosting-Umgebungen nicht verfügbar. Als Alternative kann man Berechnungen manuell über die Gamma-Funktion (log_gamma) oder Bibliotheken wie math-php (Composer) implementieren.