Signatur
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
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
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);
// 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.