Start · Sprachen · PHP · Referenz · stats_covariance

stats_covariance

Funktion

Berechnet die Kovarianz zweier Datensätze und gibt einen <code>float</code>-Wert zurück.

Kategorie: math

Signatur

stats_covariance(array $a, array $b): float

Beschreibung

Die Funktion stats_covariance() berechnet die Kovarianz zweier Datensätze, die als Arrays übergeben werden. Die Kovarianz ist ein statistisches Maß, das beschreibt, wie stark zwei Variablen gemeinsam variieren: Ein positiver Wert deutet darauf hin, dass beide Variablen tendenziell gemeinsam steigen oder fallen, ein negativer Wert signalisiert eine entgegengesetzte Tendenz.

Mathematisch ergibt sich die Kovarianz aus dem Durchschnitt der Produkte der Abweichungen beider Datensätze von ihren jeweiligen Mittelwerten: cov(X,Y) = Σ((xᵢ − x̄)(yᵢ − ȳ)) / n. Beide Arrays müssen dabei gleich viele Elemente enthalten.

stats_covariance() ist Teil der PECL-Erweiterung stats und steht damit nicht standardmäßig in PHP zur Verfügung. Sie eignet sich besonders für explorative Datenanalysen, statistische Auswertungen und als Grundlage für weiterführende Berechnungen wie den Korrelationskoeffizient nach Pearson.

Parameter

Name Typ Default Beschreibung
$a Pflicht array Erster Datensatz als numerisch indiziertes Array von Zahlenwerten.
$b Pflicht array Zweiter Datensatz als numerisch indiziertes Array von Zahlenwerten. Muss dieselbe Anzahl an Elementen wie $a besitzen.

Rückgabewert

Typ
float
Beschreibung
Gibt die berechnete Kovarianz als float zurück. Bei Arrays unterschiedlicher Länge oder ungültigen Eingaben kann die Funktion false zurückgeben oder einen Fehler auslösen.

Beispiele

Einfache Kovarianz zweier Datensätze

<?php
// Beide Datensätze steigen gemeinsam an → positive Kovarianz erwartet
$a = [1, 2, 3, 4, 5];
$b = [2, 4, 5, 4, 5];

$kovarianz = stats_covariance($a, $b);
echo 'Kovarianz: ' . $kovarianz;
Kovarianz: 1.8

Gegenläufige Datensätze ergeben negative Kovarianz

<?php
// $a steigt, $b fällt → negative Kovarianz erwartet
$a = [1, 2, 3, 4, 5];
$b = [5, 4, 3, 2, 1];

$kovarianz = stats_covariance($a, $b);
echo 'Kovarianz: ' . $kovarianz;
Kovarianz: -2

Grundlage für den Pearson-Korrelationskoeffizienten

<?php
// Pearson-Korrelation = Kovarianz(X,Y) / (Standardabweichung(X) * Standardabweichung(Y))
$a = [10, 20, 30, 40, 50];
$b = [12, 18, 29, 41, 52];

$kovarianz    = stats_covariance($a, $b);
$stdabw_a     = stats_standard_deviation($a);
$stdabw_b     = stats_standard_deviation($b);

if ($stdabw_a > 0 && $stdabw_b > 0) {
    $pearson = $kovarianz / ($stdabw_a * $stdabw_b);
    echo 'Pearson-Korrelation: ' . round($pearson, 4);
} else {
    echo 'Standardabweichung ist null – Korrelation nicht berechenbar.';
}
Pearson-Korrelation: 0.9994

// Wichtig · Fallstricke

Achtung: stats_covariance() ist Teil der PECL-Erweiterung stats, die separat installiert werden muss (pecl install stats). Sie ist nicht in der PHP-Standardinstallation enthalten.

Werden Arrays mit unterschiedlicher Elementanzahl übergeben, ist das Verhalten undefiniert oder die Funktion gibt einen Fehler zurück. Vor dem Aufruf sollte daher immer sichergestellt werden, dass count($a) === count($b).

Die Funktion berechnet die Populations-Kovarianz (Nenner: n), nicht die Stichproben-Kovarianz (Nenner: n − 1). Für Stichproben-Analysen muss das Ergebnis ggf. entsprechend umgerechnet werden.