Start · Sprachen · PHP · Referenz · stats_kurtosis

stats_kurtosis

Funktion

Berechnet die Kurtosis (Wölbungsmaß) der Datenwerte in einem Array.

Kategorie: math

Signatur

stats_kurtosis(array $data): float

Beschreibung

Die Funktion stats_kurtosis() gehört zur PECL-Erweiterung stats und berechnet die Kurtosis (auch: Exzess-Kurtosis oder Wölbung) der übergebenen Datenmenge. Die Kurtosis ist ein statistisches Maß, das beschreibt, wie stark die Verteilung im Vergleich zur Normalverteilung in den Schwänzen konzentriert ist.

Ein Wert von 0 entspricht einer Normalverteilung (mesokurtisch). Positive Werte (leptokurtisch) deuten auf schmalere Gipfel mit schwereren Rändern hin, negative Werte (platykurtisch) auf flachere Verteilungen mit leichteren Rändern. Die Funktion verwendet typischerweise die Exzess-Kurtosis, also den um 3 reduzierten Wert der klassischen Kurtosis.

Die Funktion ist besonders nützlich in der explorativen Datenanalyse, bei der Überprüfung von Normalverteilungsannahmen sowie in der Finanzanalyse zur Beurteilung von Risikoverteilungen.

Achtung: Die Funktion ist Teil der PECL-Erweiterung stats, die separat installiert werden muss und nicht zum PHP-Kern gehört. Das Array sollte mindestens 4 Elemente enthalten, um statistisch sinnvolle Ergebnisse zu liefern.

Parameter

Name Typ Default Beschreibung
$data Pflicht array Ein numerisches Array mit den Datenwerten, für die die Kurtosis berechnet werden soll. Alle Werte sollten numerisch sein.

Rückgabewert

Typ
float
Beschreibung
Gibt die Exzess-Kurtosis der übergebenen Daten als Gleitkommazahl zurück. Der Wert 0 entspricht einer Normalverteilung. Bei unzureichenden Daten oder ungültiger Eingabe kann false zurückgegeben werden.

Beispiele

Kurtosis einer normalverteilungsähnlichen Datenmenge

<?php
// Voraussetzung: PECL-Erweiterung 'stats' muss installiert sein
$data = [2, 4, 4, 4, 5, 5, 7, 9, 10, 11];

$kurtosis = stats_kurtosis($data);

echo "Kurtosis: " . round($kurtosis, 4) . PHP_EOL;

if ($kurtosis > 0) {
    echo "Leptokurtisch: Schwere Schwänze (spitzer als Normalverteilung)" . PHP_EOL;
} elseif ($kurtosis < 0) {
    echo "Platykurtisch: Leichte Schwänze (flacher als Normalverteilung)" . PHP_EOL;
} else {
    echo "Mesokurtisch: Ähnlich wie Normalverteilung" . PHP_EOL;
}
Kurtosis: -0.9177 Platykurtisch: Leichte Schwänze (flacher als Normalverteilung)

Vergleich verschiedener Verteilungen

<?php
// Gleichmäßige Verteilung (platykurtisch erwartet)
$uniform = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

// Stark konzentrierte Werte (leptokurtisch erwartet)
$concentrated = [5, 5, 5, 5, 5, 5, 5, 5, 1, 10];

$kurtosis_uniform      = stats_kurtosis($uniform);
$kurtosis_concentrated = stats_kurtosis($concentrated);

echo "Kurtosis (gleichmäßig):    " . round($kurtosis_uniform, 4) . PHP_EOL;
echo "Kurtosis (konzentriert):   " . round($kurtosis_concentrated, 4) . PHP_EOL;
Kurtosis (gleichmäßig): -1.2 Kurtosis (konzentriert): 3.0864

// Wichtig · Fallstricke

Installationshinweis: stats_kurtosis() ist keine eingebaute PHP-Funktion. Sie erfordert die PECL-Erweiterung stats, die über pecl install stats installiert und in der php.ini mit extension=stats.so (Linux) bzw. extension=stats.dll (Windows) aktiviert werden muss.

Das Array muss mindestens 4 numerische Werte enthalten, um eine statistisch aussagekräftige Kurtosis berechnen zu können. Bei weniger als 4 Elementen kann das Ergebnis undefiniert oder fehlerhaft sein.

Die verwendete Formel basiert auf der Exzess-Kurtosis (Fisher-Definition): Kurtosis - 3. Manche andere Werkzeuge verwenden die Pearson-Definition (ohne den Abzug von 3), was zu abweichenden Ergebnissen führen kann.