Signatur
Beschreibung
stats_cdf_laplace ist Teil der PECL-Erweiterung stats und arbeitet mit der kumulativen Verteilungsfunktion (CDF) der Laplace-Verteilung. Die Laplace-Verteilung (auch als Doppelte Exponentialverteilung bekannt) wird häufig in der Signalverarbeitung, Finanzmathematik und Bayes'schen Statistik eingesetzt, wenn Daten einen stärker ausgeprägten Peak und schwerere Tails als eine Normalverteilung aufweisen.
Die Funktion akzeptiert drei der vier Parameter (CDF-Wert par1, Lageparameter µ par2, Skalenparameter b par3) zusammen mit dem Argument which, das angibt, welcher der drei Parameter berechnet werden soll. Der fehlende Parameter muss mit einem Platzhalter-Wert (typisch 0) übergeben werden; sein Wert wird aus den übrigen berechnet und zurückgegeben.
Der Parameter which steuert, was berechnet wird: 1 liefert den CDF-Wert P aus µ und b, 2 liefert µ aus P und b, und 3 liefert b aus P und µ. Dies ermöglicht sowohl die direkte Berechnung von Wahrscheinlichkeiten als auch die Umkehrfunktion (Quantilfunktion / inverse CDF).
Da stats_cdf_laplace zur optionalen PECL-Erweiterung stats gehört, muss diese zunächst installiert und aktiviert sein (pecl install stats).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $par1 Pflicht | float | Erster Parameter: Der CDF-Wert P (Wahrscheinlichkeit im Bereich [0, 1]), wenn which = 1 berechnet wird, oder der bekannte CDF-Wert, wenn which = 2 oder which = 3. Bei Berechnung von P (which = 1) den Eingabewert x übergeben. |
|
| $par2 Pflicht | float | Zweiter Parameter: Der Lageparameter µ (Mittelwert/Median) der Laplace-Verteilung. Wird bei which = 2 berechnet; in diesem Fall einen Platzhalter-Wert übergeben. |
|
| $par3 Pflicht | float | Dritter Parameter: Der Skalenparameter b (> 0) der Laplace-Verteilung, der die Streuung bestimmt. Wird bei which = 3 berechnet; in diesem Fall einen Platzhalter-Wert übergeben. |
|
| $which Pflicht | int | Gibt an, welcher Parameter berechnet werden soll: 1 = CDF-Wert P, 2 = Lageparameter µ, 3 = Skalenparameter b. |
Rückgabewert
which = 1 den CDF-Wert (zwischen 0 und 1), bei which = 2 den Lageparameter µ, bei which = 3 den Skalenparameter b. Bei ungültigen Eingaben kann false zurückgegeben werden.Beispiele
CDF-Wert für einen gegebenen x-Wert berechnen
<?php
// Berechnet P(X <= 2) für eine Laplace-Verteilung mit µ=0 und b=1
// which=1: Berechne den CDF-Wert P
$x = 2.0; // Zufallsvariable
$mu = 0.0; // Lageparameter
$b = 1.0; // Skalenparameter
$p = stats_cdf_laplace($x, $mu, $b, 1);
echo "P(X <= 2) = " . $p . PHP_EOL;
// Erwarteter Wert: ~0.9323 (1 - 0.5 * exp(-2))
?>
Inverse CDF: x-Wert zu einer gegebenen Wahrscheinlichkeit (Quantil) berechnen
<?php
// Berechnet das 95%-Quantil einer Laplace-Verteilung mit µ=0 und b=1
// which=1 mit x als gesuchter Wert ist nicht direkt möglich;
// stattdessen: par1 = P, par2 = µ bekannt, par3 = b bekannt -> Berechnung von x via which=1 ist CDF
// Für Quantil: Wir suchen x, sodass P(X <= x) = 0.95
// Dafür nutzen wir which=1 invers — die stats-Erweiterung erlaubt keine direkte Inversion,
// daher berechnen wir µ bei bekanntem P, x=Platzhalter und b:
$p = 0.95; // Wahrscheinlichkeit
$b = 1.0; // Skalenparameter
// Manuelle Inversion der Laplace-CDF:
// Für P > 0.5: x = µ - b * ln(2*(1-P))
$mu = 0.0;
$x_quantile = $mu - $b * log(2 * (1 - $p));
echo "95%-Quantil (manuell): " . $x_quantile . PHP_EOL;
// Verifikation mit stats_cdf_laplace:
$p_check = stats_cdf_laplace($x_quantile, $mu, $b, 1);
echo "Verifizierter P-Wert: " . $p_check . PHP_EOL;
?>
Skalenparameter b aus CDF-Wert und Lageparameter berechnen
<?php
// Bekannt: P = 0.8413, µ = 0, x = 1.0
// Gesucht: Skalenparameter b (which = 3)
$x = 1.0;
$p = 0.8413;
$mu = 0.0;
$b = stats_cdf_laplace($p, $mu, 0, 3);
echo "Skalenparameter b = " . $b . PHP_EOL;
?>
// Wichtig · Fallstricke
PECL-Abhängigkeit: Diese Funktion ist nicht im PHP-Kern enthalten, sondern Teil der PECL-Erweiterung stats. Installation via pecl install stats erforderlich.
Parameterreihenfolge: Beachte, dass bei which = 1 der erste Parameter par1 den x-Wert (nicht den CDF-Wert) darstellt; das kann zu Verwirrung führen, da bei anderen which-Werten par1 als bekannter CDF-Wert P interpretiert wird.
Gültige Wertebereiche: Der Skalenparameter b muss strikt größer als 0 sein. Der CDF-Wert P muss im Intervall [0, 1] liegen. Ungültige Eingaben können zu undefinierten Rückgabewerten führen.
Verfügbarkeit: Ältere Versionen der stats-Erweiterung könnten ein abweichendes Verhalten zeigen. Die Funktion ist mit PHP 5 und PHP 7/8 nutzbar, sofern eine kompatible Version der Erweiterung installiert ist.