Signatur
Beschreibung
Die Funktion stats_stat_correlation() gehört zur PECL-Erweiterung stats und berechnet den Pearson-Korrelationskoeffizienten (auch Pearson's r genannt) für zwei Datensätze. Dieser Koeffizient misst die Stärke und Richtung eines linearen Zusammenhangs zwischen zwei Variablen.
Der Rückgabewert liegt immer im Bereich von -1 bis 1: Ein Wert nahe 1 deutet auf eine starke positive lineare Korrelation hin, ein Wert nahe -1 auf eine starke negative Korrelation, und ein Wert nahe 0 zeigt an, dass kein linearer Zusammenhang besteht.
Typische Anwendungsfälle sind statistische Auswertungen in den Bereichen Wissenschaft, Finanzen, Marktforschung oder Data-Science, etwa um zu prüfen, ob zwei Messreihen (z. B. Werbeausgaben und Umsatz) miteinander korrelieren.
Beide Arrays müssen dieselbe Anzahl an Elementen enthalten und sollten ausschließlich numerische Werte beinhalten. Die Funktion setzt die Installation der PECL-Erweiterung stats voraus, da sie nicht zum PHP-Kern gehört.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $arr1 Pflicht | array | Erster numerischer Datensatz als indiziertes Array. Muss gleich viele Elemente wie arr2 enthalten. |
|
| $arr2 Pflicht | array | Zweiter numerischer Datensatz als indiziertes Array. Muss gleich viele Elemente wie arr1 enthalten. |
Rückgabewert
-1.0 bis 1.0 zurück. Bei ungültigen Eingaben (z. B. unterschiedliche Array-Längen oder Standardabweichung von 0) kann das Verhalten undefiniert sein oder false zurückgegeben werden.Beispiele
Einfache positive Korrelation zweier Datensätze
<?php
// Voraussetzung: PECL-Erweiterung 'stats' muss installiert sein
// pecl install stats
$temperatur = [15, 18, 21, 25, 30];
$eisverkauf = [100, 130, 160, 210, 280];
$r = stats_stat_correlation($temperatur, $eisverkauf);
echo "Pearson-Korrelationskoeffizient: " . round($r, 4);
// Ausgabe: Pearson-Korrelationskoeffizient: 0.9957
Negative Korrelation – Preis und Nachfrage
<?php
// Steigender Preis führt zu sinkender Nachfrage
$preis = [10, 20, 30, 40, 50];
$nachfrage = [500, 400, 300, 200, 100];
$r = stats_stat_correlation($preis, $nachfrage);
if ($r === false) {
echo "Fehler bei der Berechnung.";
} else {
printf("Korrelationskoeffizient: %.4f\n", $r);
if ($r < -0.9) {
echo "Starke negative Korrelation festgestellt.";
}
}
// Wichtig · Fallstricke
Achtung: Die Funktion gehört zur PECL-Erweiterung stats, die separat installiert werden muss (pecl install stats). Sie ist nicht standardmäßig in PHP enthalten.
Beide Arrays müssen exakt gleich viele Elemente besitzen. Bei unterschiedlichen Längen kann das Ergebnis fehlerhaft oder undefiniert sein. Es empfiehlt sich daher, die Array-Längen mit count() vorab zu prüfen.
Wenn eine der Datenreihen eine Standardabweichung von 0 hat (alle Werte identisch), ist der Korrelationskoeffizient mathematisch undefiniert (Division durch null). Das Verhalten der Funktion in diesem Grenzfall sollte explizit geprüft werden.
Der Pearson-Korrelationskoeffizient misst nur lineare Zusammenhänge. Für nichtlineare Beziehungen sollten andere Maße wie Spearman's Rangkorrelation in Betracht gezogen werden.