Start · Sprachen · PHP · Referenz · stats_dens_cauchy

stats_dens_cauchy

Funktion

Berechnet den Wert der Wahrscheinlichkeitsdichtefunktion (PDF) der Cauchy-Verteilung an der Stelle <code>x</code>.

Kategorie: math

Signatur

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

Beschreibung

Die Funktion stats_dens_cauchy() gehört zur PECL-Erweiterung stats und berechnet die Wahrscheinlichkeitsdichte der Cauchy-Verteilung (auch Lorentz-Verteilung genannt) an einem gegebenen Punkt x.

Die Cauchy-Verteilung wird durch zwei Parameter beschrieben: den Lageparameter (Median/Modus, hier ave) und den Skalenparameter (Halbwertsbreite, hier stdev). Im Gegensatz zur Normalverteilung besitzt die Cauchy-Verteilung keinen definierten Erwartungswert und keine endliche Varianz, was sie für Modelle mit schweren Rändern (Heavy Tails) besonders geeignet macht.

Die Dichtefunktion lautet: f(x) = 1 / (π · stdev · (1 + ((x - ave) / stdev)²)). Typische Anwendungsfälle sind die Signalverarbeitung, Physik (z. B. Spektrallinienbreite) sowie robuste statistische Analysen.

Voraussetzung für die Nutzung ist die Installation der PECL-Erweiterung stats, da diese Funktion nicht im PHP-Kern enthalten ist.

Parameter

Name Typ Default Beschreibung
$x Pflicht float Der Punkt auf der x-Achse, an dem die Dichtefunktion ausgewertet wird.
$ave Pflicht float Der Lageparameter (Median/Modus) der Cauchy-Verteilung. Entspricht dem Zentrum der Verteilung.
$stdev Pflicht float Der Skalenparameter (Halbwertsbreite) der Cauchy-Verteilung. Muss größer als 0 sein. Bestimmt die Breite der Verteilung.

Rückgabewert

Typ
float
Beschreibung
Gibt den Wert der Wahrscheinlichkeitsdichte der Cauchy-Verteilung an der Stelle x zurück. Bei ungültigen Parametern (z. B. stdev <= 0) ist das Verhalten undefiniert.

Beispiele

Dichte der Standard-Cauchy-Verteilung am Zentrum

<?php
// Standard-Cauchy-Verteilung: Lageparameter = 0, Skalenparameter = 1
// Am Zentrum (x = 0) ist die Dichte maximal: 1/π ≈ 0.3183
$x     = 0.0;
$ave   = 0.0;
$stdev = 1.0;

$dichte = stats_dens_cauchy($x, $ave, $stdev);
echo "Dichte bei x={$x}: " . $dichte . PHP_EOL;
// Vergleich mit analytischem Wert
echo "Analytisch 1/π: " . (1 / M_PI) . PHP_EOL;
Dichte bei x=0: 0.31830988618379 Analytisch 1/π: 0.31830988618379

Dichtewerteberechnung für verschiedene Punkte

<?php
// Cauchy-Verteilung mit Lageparameter 2 und Skalenparameter 0.5
$ave   = 2.0;
$stdev = 0.5;

$punkte = [-2.0, 0.0, 1.0, 2.0, 3.0, 4.0, 6.0];

foreach ($punkte as $x) {
    $dichte = stats_dens_cauchy($x, $ave, $stdev);
    printf("x = %5.1f  =>  f(x) = %.6f\n", $x, $dichte);
}
x = -2.0 => f(x) = 0.007913 x = 0.0 => f(x) = 0.063662 x = 1.0 => f(x) = 0.254648 x = 2.0 => f(x) = 0.636620 x = 3.0 => f(x) = 0.254648 x = 4.0 => f(x) = 0.063662 x = 6.0 => f(x) = 0.012732

// Wichtig · Fallstricke

Wichtig: Der Parameter stdev muss strikt größer als 0 sein. Ein Wert von 0 oder kleiner führt zu einer Division durch null und damit zu undefiniertem Verhalten oder einem Fehler.

Diese Funktion ist nicht im PHP-Kern enthalten. Sie erfordert die Installation der PECL-Erweiterung stats (z. B. via pecl install stats). Prüfen Sie die Verfügbarkeit mit function_exists('stats_dens_cauchy').

Die Cauchy-Verteilung besitzt keinen endlichen Erwartungswert und keine endliche Varianz. Der Parameter ave entspricht daher dem Median und dem Modus, nicht dem Mittelwert.