Start · Sprachen · PHP · Referenz · stats_dens_laplace

stats_dens_laplace

Funktion

Berechnet den Wert der Wahrscheinlichkeitsdichtefunktion (PDF) der Laplace-Verteilung am Punkt <code>x</code>.

Kategorie: math

Signatur

stats_dens_laplace(float $x, float $ave, float $stdev): float

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

Typ
float
Beschreibung
Gibt den Wert der Wahrscheinlichkeitsdichtefunktion der Laplace-Verteilung am Punkt 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;
f(0) = 0.5 f(1) = 0.18393972058572 f(-2) = 0.067667641618306

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);
}
b = 0.5: f(0.5) = 0.367879 b = 1.0: f(0.5) = 0.303265 b = 2.0: f(0.5) = 0.219691

// 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.