Signatur
Beschreibung
Die Funktion stats_dens_laplace() gehört zur PECL-Erweiterung stats und berechnet den Wert der Wahrscheinlichkeitsdichtefunktion der Laplace-Verteilung (auch Doppelexponentialverteilung genannt) für einen gegebenen Punkt x, einen Lageparameter ave (Mittelwert/Median) und einen Skalenparameter stdev.
Die Laplace-Verteilung ähnelt der Normalverteilung, hat jedoch schwerere Ränder (Tails). Die Dichtefunktion ist definiert als: f(x) = (1 / (2 * b)) * exp(-|x - µ| / b), wobei µ der Lageparameter (ave) und b der Skalenparameter (stdev) ist.
Diese Funktion ist besonders nützlich in der Statistik, Signalverarbeitung und im maschinellen Lernen, wenn Daten modelliert werden sollen, die stärkere Ausreißer aufweisen als eine Normalverteilung – beispielsweise bei Fehleranalysen, Differenzbildern oder L1-Regularisierung.
Hinweis: Die Funktion ist Teil der PECL-stats-Erweiterung und muss separat installiert werden. Sie ist nicht im PHP-Kern enthalten.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $x Pflicht | float | Der Punkt, an dem die Dichtefunktion ausgewertet werden soll. | |
| $ave Pflicht | float | Der Lageparameter (Mittelwert/Median, µ) der Laplace-Verteilung. |
|
| $stdev Pflicht | float | Der Skalenparameter (b) der Laplace-Verteilung. Muss größer als 0 sein. |
Rückgabewert
x zurück. Bei ungültigen Parametern (z. B. stdev <= 0) kann das Ergebnis undefiniert oder NAN sein.Beispiele
Dichtewert an verschiedenen Punkten berechnen
<?php
// Voraussetzung: PECL-Erweiterung 'stats' ist installiert
$ave = 0.0; // Lageparameter (Median)
$stdev = 1.0; // Skalenparameter
// Dichte am Median (Maximum der Verteilung)
$x1 = 0.0;
echo "f(0) = " . stats_dens_laplace($x1, $ave, $stdev) . PHP_EOL;
// Dichte bei x = 1
$x2 = 1.0;
echo "f(1) = " . stats_dens_laplace($x2, $ave, $stdev) . PHP_EOL;
// Dichte bei x = -2
$x3 = -2.0;
echo "f(-2) = " . stats_dens_laplace($x3, $ave, $stdev) . PHP_EOL;
Vergleich verschiedener Skalenparameter
<?php
// Voraussetzung: PECL-Erweiterung 'stats' ist installiert
$x = 0.5;
$ave = 0.0;
foreach ([0.5, 1.0, 2.0] as $b) {
$dichte = stats_dens_laplace($x, $ave, $b);
printf("b = %.1f: f(%.1f) = %.6f\n", $b, $x, $dichte);
}
// Wichtig · Fallstricke
Installation: Die stats-Erweiterung ist nicht im PHP-Kern enthalten. Sie muss über PECL installiert werden: pecl install stats. Anschließend muss extension=stats.so in der php.ini aktiviert werden.
Parametergültigkeit: Der Skalenparameter stdev (entspricht b in der mathematischen Formel) muss streng positiv sein (stdev > 0). Ein Wert von 0 oder kleiner führt zu einem mathematisch undefinierten Ergebnis.
Namenskonvention: Der Parameter stdev entspricht hier nicht der Standardabweichung im Sinne der Normalverteilung, sondern dem Skalenparameter b der Laplace-Verteilung. Die Standardabweichung der Laplace-Verteilung beträgt sqrt(2) * b.