Signatur
Beschreibung
stats_stat_paired_t() gehört zur PECL-Erweiterung stats und berechnet den t-Wert für einen Paired-t-Test (verbundene Stichproben). Dieser Test wird eingesetzt, wenn dieselben Probanden oder Messobjekte unter zwei verschiedenen Bedingungen gemessen werden – etwa ein Vorher-Nachher-Vergleich bei medizinischen Studien oder A/B-Tests mit wiederholten Messungen.
Der Algorithmus bildet für jedes Paar die Differenz d_i = arr1[i] - arr2[i], berechnet dann den Mittelwert und die Standardabweichung dieser Differenzen und setzt diese ins Verhältnis zur Standardabweichung dividiert durch die Wurzel der Stichprobengröße. Das Ergebnis ist der t-Wert, der anschließend mit einer t-Verteilungstabelle oder einer passenden Funktion (z. B. stats_distribution_t()) zur Signifikanzprüfung herangezogen werden kann.
Beide Arrays müssen gleich viele Elemente enthalten und numerische Werte speichern. Die Funktion ist besonders dann dem unverbundenen t-Test vorzuziehen, wenn zwischen den Messwerten eine natürliche Paarung besteht, da so individuelle Unterschiede herausgerechnet werden und die Teststärke steigt.
Die Funktion ist Teil der optionalen PECL-Erweiterung stats und steht in einer Standard-PHP-Installation nicht automatisch zur Verfügung; sie muss über pecl install stats nachinstalliert und in der php.ini aktiviert werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $arr1 Pflicht | array | Numerisches Array mit den Messwerten der ersten Bedingung (z. B. Messung vor der Behandlung). Muss dieselbe Anzahl Elemente wie arr2 besitzen. |
|
| $arr2 Pflicht | array | Numerisches Array mit den Messwerten der zweiten Bedingung (z. B. Messung nach der Behandlung). Muss dieselbe Anzahl Elemente wie arr1 besitzen. |
Rückgabewert
float zurück. Bei ungültiger Eingabe (z. B. unterschiedliche Array-Größen, leere Arrays oder nicht-numerische Werte) wird false zurückgegeben.Beispiele
Vorher-Nachher-Vergleich von Blutdruckwerten
<?php
// Blutdruckwerte (systolisch) vor und nach einer Behandlung
$vorher = [145, 138, 152, 160, 141, 155, 148, 163];
$nachher = [130, 125, 140, 148, 132, 143, 135, 150];
$tWert = stats_stat_paired_t($vorher, $nachher);
if ($tWert === false) {
echo 'Fehler bei der Berechnung.';
} else {
printf("t-Wert: %.4f\n", $tWert);
// Positive Werte zeigen, dass $vorher im Schnitt größer als $nachher war.
// Der t-Wert kann mit einer t-Tabelle (df = n-1 = 7) auf Signifikanz geprüft werden.
}
Fehlerbehandlung bei unterschiedlich langen Arrays
<?php
// Absichtlich unterschiedlich lange Arrays
$a = [10, 20, 30];
$b = [15, 25]; // ein Element fehlt
$result = stats_stat_paired_t($a, $b);
if ($result === false) {
echo 'Fehler: Die Arrays müssen gleich viele Elemente enthalten.';
} else {
echo 't-Wert: ' . $result;
}
// Wichtig · Fallstricke
PECL-Abhängigkeit: Diese Funktion ist nur verfügbar, wenn die PECL-Erweiterung stats installiert und geladen ist (extension=stats.so bzw. extension=php_stats.dll). Prüfe die Verfügbarkeit mit function_exists('stats_stat_paired_t').
Voraussetzungen für den Paired-t-Test: Die Differenzen der Paare sollten annähernd normalverteilt sein. Bei sehr kleinen Stichproben (n < 5) ist das Ergebnis statistisch kaum belastbar. Bei grob nicht-normalverteilten Differenzen empfiehlt sich ein nicht-parametrisches Verfahren wie der Wilcoxon-Vorzeichen-Rang-Test.
Freiheitsgrade: Der dazugehörige Freiheitsgradwert beträgt n - 1. Dieser wird für die Signifikanzprüfung mit der t-Verteilung benötigt.