Start · Sprachen · PHP · Referenz · stats_skew

stats_skew

Funktion

Berechnet die Schiefe (Skewness) der Datenwerte in einem Array und gibt einen <code>float</code>-Wert zurück.

Kategorie: math

Signatur

stats_skew(array $a): float

Beschreibung

stats_skew() ist eine Funktion aus der PECL-Erweiterung stats und berechnet die statistische Schiefe (englisch: Skewness) eines Datensatzes. Die Schiefe ist ein Maß für die Asymmetrie einer Verteilung um ihren Mittelwert. Ein Wert von 0 deutet auf eine symmetrische Verteilung hin, ein positiver Wert auf eine rechtsschiefe (rechter Schwanz länger) und ein negativer Wert auf eine linksschiefe Verteilung (linker Schwanz länger).

Die Funktion verwendet die korrigierte Stichproben-Schiefe (Moment-Koeffizient dritter Ordnung), was sie für die Analyse von Stichproben aus größeren Grundgesamtheiten geeignet macht. Typische Anwendungsbereiche sind statistische Datenanalyse, Qualitätssicherung und das Prüfen von Normalverteilungsannahmen.

Damit stats_skew() verfügbar ist, muss die PECL-Erweiterung stats installiert und geladen sein (pecl install stats bzw. entsprechender Eintrag in der php.ini). Die Funktion eignet sich für numerische Arrays mit mindestens drei Elementen; bei weniger Elementen ist das Ergebnis mathematisch nicht sinnvoll.

Parameter

Name Typ Default Beschreibung
$a Pflicht array Ein eindimensionales numerisches Array mit den Datenwerten, für die die Schiefe berechnet werden soll. Das Array sollte mindestens drei Elemente enthalten.

Rückgabewert

Typ
float
Beschreibung
Gibt die Schiefe der übergebenen Daten als float zurück. Ein positiver Wert bedeutet Rechtsschiefe, ein negativer Wert Linksschiefe und 0 eine symmetrische Verteilung.

Beispiele

Schiefe einer einfachen Datenreihe berechnen

<?php
// Voraussetzung: PECL-Erweiterung 'stats' muss installiert sein

$data = [2, 4, 4, 4, 5, 5, 7, 9];
$skewness = stats_skew($data);

echo "Schiefe: " . $skewness . PHP_EOL;
// Positiver Wert = leichte Rechtsschiefe
?>
Schiefe: 0.56769650889457

Vergleich symmetrischer und schiefer Verteilungen

<?php
// Annähernd symmetrische Verteilung
$symmetric = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$skew_sym = stats_skew($symmetric);
echo "Symmetrisch: " . $skew_sym . PHP_EOL;

// Rechtsschiefe Verteilung (viele kleine Werte, wenige große)
$right_skewed = [1, 1, 1, 2, 2, 3, 5, 10, 20, 50];
$skew_right = stats_skew($right_skewed);
echo "Rechtsschief: " . $skew_right . PHP_EOL;

// Linksschiefe Verteilung (viele große Werte, wenige kleine)
$left_skewed = [50, 48, 47, 47, 46, 45, 30, 10, 2, 1];
$skew_left = stats_skew($left_skewed);
echo "Linksschief: " . $skew_left . PHP_EOL;
?>
Symmetrisch: 0 Rechtsschief: 2.1004665483327 Linksschief: -2.1004665483327

// Wichtig · Fallstricke

Wichtig: stats_skew() ist keine native PHP-Funktion, sondern Teil der PECL-Erweiterung stats. Sie muss separat installiert werden. Auf vielen Shared-Hosting-Umgebungen ist diese Erweiterung nicht verfügbar.

Das Array sollte ausschließlich numerische Werte enthalten. Nicht-numerische Werte im Array können zu unerwarteten Ergebnissen führen. Bei weniger als drei Elementen ist die Berechnung der Schiefe mathematisch nicht definiert (Division durch null möglich); das Verhalten der Funktion in diesem Fall ist undefiniert.

Für sehr große Datensätze sollte auf die Performance geachtet werden, da die Funktion alle Werte im Array iteriert. Alternativ kann die Schiefe bei nicht verfügbarer Erweiterung manuell über Mittelwert und Standardabweichung berechnet werden.