Start · Sprachen · PHP · Referenz · stats_absolute_deviation

stats_absolute_deviation

Funktion

Berechnet die mittlere absolute Abweichung (Mean Absolute Deviation) aller Werte in einem Array und gibt das Ergebnis als Gleitkommazahl zurück.

Kategorie: math

Signatur

stats_absolute_deviation(array $a): float

Beschreibung

stats_absolute_deviation() gehört zur PECL-Erweiterung stats und berechnet die mittlere absolute Abweichung (engl. Mean Absolute Deviation, MAD) eines Arrays von numerischen Werten. Die MAD ist ein robustes Streuungsmaß und gibt an, wie stark die einzelnen Werte im Durchschnitt vom arithmetischen Mittel abweichen.

Die Berechnung erfolgt nach der Formel: MAD = (1/n) * Σ |xᵢ − x̄|, wobei das arithmetische Mittel der Werte und n die Anzahl der Elemente ist. Im Gegensatz zur Standardabweichung werden die Abweichungen nicht quadriert, was das Maß weniger empfindlich gegenüber Ausreißern macht.

Die Funktion ist besonders nützlich in der deskriptiven Statistik, wenn eine einfach interpretierbare Kennzahl für die Streuung eines Datensatzes benötigt wird, zum Beispiel bei der Analyse von Messwerten, Preisschwankungen oder Zeitreihendaten.

Hinweis: Die Funktion erfordert die Installation der PECL-Erweiterung stats, die nicht standardmäßig in PHP enthalten ist. Sie muss separat über PECL installiert werden (pecl install stats).

Parameter

Name Typ Default Beschreibung
$a Pflicht array Ein Array mit numerischen Werten (int oder float), für die die mittlere absolute Abweichung berechnet werden soll. Das Array muss mindestens ein Element enthalten.

Rückgabewert

Typ
float
Beschreibung
Gibt die mittlere absolute Abweichung der Werte im Array als Gleitkommazahl zurück. Bei einem Array mit nur einem Element ist der Rückgabewert 0.0.

Beispiele

Einfache Berechnung der mittleren absoluten Abweichung

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

$mad = stats_absolute_deviation($werte);

echo "Mittlere absolute Abweichung: " . $mad;
// Arithmetisches Mittel: (2+4+4+4+5+5+7+9)/8 = 5.0
// Abweichungen: 3, 1, 1, 1, 0, 0, 2, 4 => Summe = 12 => MAD = 12/8 = 1.5
Mittlere absolute Abweichung: 1.5

Vergleich der MAD verschiedener Datensätze

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

// Eng gestreuter Datensatz
$eng = [9, 10, 10, 10, 11];

// Weit gestreuter Datensatz
$weit = [2, 5, 10, 15, 18];

$mad_eng  = stats_absolute_deviation($eng);
$mad_weit = stats_absolute_deviation($weit);

echo "MAD (eng):  " . $mad_eng  . PHP_EOL;
echo "MAD (weit): " . $mad_weit . PHP_EOL;

// Ein höherer MAD-Wert zeigt eine stärkere Streuung an.
MAD (eng): 0.4 MAD (weit): 4.8

// Wichtig · Fallstricke

PECL-Abhängigkeit: Diese Funktion ist nicht Teil des PHP-Kerns. Sie gehört zur PECL-Erweiterung stats und muss explizit installiert werden. Prüfen Sie die Verfügbarkeit mit function_exists('stats_absolute_deviation'), bevor Sie die Funktion in produktivem Code einsetzen.

Leeres Array: Das Übergeben eines leeren Arrays kann zu einem Fehler oder undefinierten Verhalten führen. Stellen Sie sicher, dass das Array mindestens ein numerisches Element enthält.

Nicht-numerische Werte: Enthält das Array nicht-numerische Elemente (z. B. Strings), kann das Ergebnis verfälscht oder das Verhalten undefiniert sein. Filtern Sie die Eingabedaten ggf. mit array_filter() und is_numeric() vor.