Start · Sprachen · PHP · Referenz · stats_cdf_exponential

stats_cdf_exponential

Funktion

Berechnet einen Parameter der Exponentialverteilung aus den übrigen Parametern (kumulative Verteilungsfunktion oder deren Umkehrung).

Kategorie: math

Signatur

stats_cdf_exponential(float $par1, float $par2, int $which): float

Beschreibung

Die Funktion stats_cdf_exponential() gehört zur PECL-Erweiterung stats und ermöglicht es, einen der drei Parameter der Exponentialverteilung zu berechnen, wenn die anderen beiden bekannt sind. Die Exponentialverteilung beschreibt typischerweise die Zeit zwischen unabhängigen Ereignissen, die mit einer konstanten Rate auftreten (z. B. Ausfallzeiten, Wartezeiten).

Je nach Wert von which wird entweder die kumulative Wahrscheinlichkeit p (CDF), das Quantil x oder der Rate-Parameter lambda berechnet. Die Beziehung lautet: p = 1 - exp(-lambda * x), wobei lambda der inverse Skalenparameter (Rate) der Verteilung ist.

  • which = 1: Berechnet p (kumulative Wahrscheinlichkeit) aus x und lambda.
  • which = 2: Berechnet x (Quantil / Perzentilwert) aus p und lambda.
  • which = 3: Berechnet lambda (Rateparameter) aus p und x.

Die Funktion ist nützlich in statistischen Analysen, z. B. zur Zuverlässigkeitsmodellierung, Wartezeit-Analyse oder in der Wahrscheinlichkeitstheorie. Sie setzt die Installation der PECL-Erweiterung stats voraus, da sie nicht Teil der PHP-Standardbibliothek ist.

Parameter

Name Typ Default Beschreibung
$par1 Pflicht float Der erste Eingabeparameter. Abhängig von which: Bei which=1 der Wert x (Quantil, >= 0); bei which=2 die kumulative Wahrscheinlichkeit p (0 <= p < 1); bei which=3 ebenfalls p.
$par2 Pflicht float Der zweite Eingabeparameter. Abhängig von which: Bei which=1 der Rateparameter lambda (> 0); bei which=2 ebenfalls lambda (> 0); bei which=3 der Wert x (>= 0).
$which Pflicht int Gibt an, welcher Parameter berechnet werden soll: 1 = kumulative Wahrscheinlichkeit p, 2 = Quantil x, 3 = Rateparameter lambda.

Rückgabewert

Typ
float
Beschreibung
Gibt den berechneten Parameter als Gleitkommazahl zurück. Bei which=1 eine Wahrscheinlichkeit zwischen 0 und 1, bei which=2 ein nicht-negatives Quantil, bei which=3 einen positiven Rateparameter. Bei ungültigen Eingaben kann false oder ein undefinierter Wert zurückgegeben werden.

Beispiele

Kumulative Wahrscheinlichkeit berechnen (which = 1)

<?php
// Wie groß ist die Wahrscheinlichkeit, dass das Ereignis innerhalb von x=2 Zeiteinheiten
// eintritt, wenn die Rate lambda=0.5 beträgt?
$x      = 2.0;
$lambda = 0.5;
$which  = 1;

$p = stats_cdf_exponential($x, $lambda, $which);
echo "P(X <= 2 | lambda=0.5) = " . round($p, 6) . PHP_EOL;
// Erwartetes Ergebnis: 1 - exp(-0.5 * 2) = 1 - exp(-1) ≈ 0.632121
P(X <= 2 | lambda=0.5) = 0.632121

Quantil berechnen – Inverse CDF (which = 2)

<?php
// Bis zu welchem Zeitpunkt x treten 90% der Ereignisse auf?
// Bei Rateparameter lambda=0.5
$p      = 0.9;
$lambda = 0.5;
$which  = 2;

$x = stats_cdf_exponential($p, $lambda, $which);
echo "90%-Quantil bei lambda=0.5: x = " . round($x, 6) . PHP_EOL;
// -ln(1-0.9) / 0.5 = ln(10) / 0.5 ≈ 4.605170
90%-Quantil bei lambda=0.5: x = 4.60517

Rateparameter lambda berechnen (which = 3)

<?php
// Welche Rate lambda muss die Verteilung haben, sodass P(X <= 3) = 0.75 gilt?
$p     = 0.75;
$x     = 3.0;
$which = 3;

$lambda = stats_cdf_exponential($p, $x, $which);
echo "Lambda fuer P(X<=3)=0.75: " . round($lambda, 6) . PHP_EOL;
// -ln(1-0.75) / 3 = ln(4)/3 ≈ 0.462098
Lambda fuer P(X<=3)=0.75: 0.462098

// Wichtig · Fallstricke

PECL-Erweiterung erforderlich: stats_cdf_exponential() ist nicht Teil der PHP-Kernbibliothek. Die PECL-Erweiterung stats muss installiert und aktiviert sein (extension=stats in der php.ini).

  • Der Rateparameter lambda muss strikt größer als 0 sein. Der Wert x muss >= 0 sein. Ungültige Werte können zu undefinierten Ergebnissen führen.
  • Die Wahrscheinlichkeit p muss im Bereich [0, 1) liegen; p = 1 führt bei which=2 zu einem unendlichen Quantil.
  • In der Exponentialverteilung ist lambda der Kehrwert des Erwartungswerts (Mittelwert = 1/lambda). Nicht mit dem Skalenparameter (beta = 1/lambda) verwechseln, der in manchen anderen Implementierungen verwendet wird.