Start · Sprachen · PHP · Referenz · stats_standard_deviation

stats_standard_deviation

Funktion

Berechnet die Standardabweichung eines Arrays von Zahlenwerten (Populationsabweichung oder Stichprobenabweichung).

Kategorie: math

Signatur

stats_standard_deviation(array $a, bool $sample = false): float

Beschreibung

stats_standard_deviation() berechnet die Standardabweichung der übergebenen numerischen Werte. Die Funktion gehört zur PECL-Erweiterung stats und steht daher nur zur Verfügung, wenn diese Erweiterung installiert und aktiviert ist.

Standardmäßig berechnet die Funktion die Populationsstandardabweichung (Divisor n). Wird der Parameter sample auf true gesetzt, wird die Stichprobenstandardabweichung (Divisor n−1, auch Bessel-Korrektur genannt) berechnet. Letztere ist typisch, wenn die Datenmenge nur eine Teilmenge einer größeren Grundgesamtheit darstellt.

Die Standardabweichung ist ein Maß dafür, wie weit die Werte im Durchschnitt vom Mittelwert abweichen. Ein kleiner Wert bedeutet, dass die Daten eng zusammenliegen; ein großer Wert zeigt eine breite Streuung an. Sie wird häufig in Statistik, Qualitätskontrolle, Finanzanalyse und wissenschaftlicher Datenauswertung eingesetzt.

Das Array $a sollte ausschließlich numerische Werte enthalten. Nicht-numerische Einträge können zu unerwarteten Ergebnissen führen.

Parameter

Name Typ Default Beschreibung
$a Pflicht array Array mit numerischen Werten (int oder float), für die die Standardabweichung berechnet werden soll.
$sample bool false Wenn true, wird die Stichprobenstandardabweichung (Divisor n−1) berechnet. Bei false (Standard) wird die Populationsstandardabweichung (Divisor n) berechnet.

Rückgabewert

Typ
float
Beschreibung
Gibt die berechnete Standardabweichung als Gleitkommazahl zurück. Bei einem leeren Array oder ungültigen Eingaben kann das Verhalten undefiniert sein.

Beispiele

Populationsstandardabweichung berechnen

<?php
// Voraussetzung: PECL-Erweiterung 'stats' ist installiert
$werte = [2, 4, 4, 4, 5, 5, 7, 9];

$std_population = stats_standard_deviation($werte);
echo 'Populationsstandardabweichung: ' . $std_population;
// Erwartetes Ergebnis: 2.0
Populationsstandardabweichung: 2

Stichprobenstandardabweichung berechnen

<?php
// Voraussetzung: PECL-Erweiterung 'stats' ist installiert
$messwerte = [10.5, 11.2, 10.8, 11.5, 10.9];

// Stichprobenabweichung (Bessel-Korrektur, Divisor n-1)
$std_stichprobe = stats_standard_deviation($messwerte, true);
echo 'Stichprobenstandardabweichung: ' . round($std_stichprobe, 4);

// Populationsabweichung (Divisor n)
$std_population = stats_standard_deviation($messwerte, false);
echo PHP_EOL . 'Populationsstandardabweichung: ' . round($std_population, 4);
Stichprobenstandardabweichung: 0.3808 Populationsstandardabweichung: 0.3406

// Wichtig · Fallstricke

PECL-Abhängigkeit: stats_standard_deviation() ist nicht Teil der PHP-Standardbibliothek. Die Funktion erfordert die Installation der PECL-Erweiterung stats (pecl install stats). In vielen Hosting-Umgebungen ist diese Erweiterung nicht vorinstalliert.

Alternative ohne PECL: Falls die stats-Erweiterung nicht verfügbar ist, kann die Standardabweichung manuell berechnet werden:

function std_dev(array $a, bool $sample = false): float { $n = count($a); $mean = array_sum($a) / $n; $sum = array_sum(array_map(fn($x) => ($x - $mean) ** 2, $a)); return sqrt($sum / ($sample ? $n - 1 : $n)); }

Bei einem Array mit nur einem Element und aktivierter Stichprobenberechnung ($sample = true) würde eine Division durch null entstehen — dies ist entsprechend abzufangen.