Signatur
Beschreibung
stats_rand_gen_noncentral_t() ist Teil der stats-PECL-Extension und liefert eine zufällige Stichprobe aus der nichtzentralen t-Verteilung (engl. noncentral t-distribution). Diese Verteilung verallgemeinert die klassische Student-t-Verteilung um einen Nichtzentralitätsparameter xnonc, der eine systematische Abweichung vom Ursprung beschreibt.
Die nichtzentrale t-Verteilung findet vor allem in der mathematischen Statistik Anwendung, z. B. bei der Berechnung der Teststärke (Power) statistischer Tests, bei Konfidenzintervallen für den Nichtzentralitätsparameter sowie in der Varianzanalyse. Der Parameter df gibt die Freiheitsgrade an und muss positiv sein; xnonc ist der Nichtzentralitätsparameter und kann positiv, negativ oder null sein.
Wenn xnonc den Wert 0.0 hat, entspricht die Ausgabe einer zentralen t-Verteilung mit df Freiheitsgraden. Die Funktion setzt intern auf den Algorithmus aus der RANLIB-Bibliothek (Brown, Lovato, Russell).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $df Pflicht | float | Anzahl der Freiheitsgrade der Verteilung. Muss ein positiver Wert sein (z. B. df > 0). |
|
| $xnonc Pflicht | float | Nichtzentralitätsparameter der Verteilung. Kann beliebige reelle Werte annehmen; bei 0.0 ergibt sich eine zentrale t-Verteilung. |
Rückgabewert
Beispiele
Einzelne Zufallszahl aus der nichtzentralen t-Verteilung
<?php
// Setzt die stats-PECL-Extension voraus
// Freiheitsgrade: 10, Nichtzentralitätsparameter: 2.5
$df = 10.0;
$xnonc = 2.5;
$randVal = stats_rand_gen_noncentral_t($df, $xnonc);
echo "Zufallswert (nichtzentrale t): " . $randVal . PHP_EOL;
Simulation von 1000 Stichproben und Berechnung des Mittelwerts
<?php
// Setzt die stats-PECL-Extension voraus
$df = 15.0;
$xnonc = 1.0;
$n = 1000;
$sum = 0.0;
for ($i = 0; $i < $n; $i++) {
$sum += stats_rand_gen_noncentral_t($df, $xnonc);
}
$mean = $sum / $n;
// Der theoretische Erwartungswert beträgt xnonc * sqrt(df/2) * Gamma((df-1)/2) / Gamma(df/2)
// für df > 1, hier näherungsweise xnonc * sqrt(df/(df-2))
echo "Empirischer Mittelwert nach {$n} Stichproben: " . round($mean, 4) . PHP_EOL;
echo "Theoretischer Näherungswert: " . round($xnonc * sqrt($df / ($df - 2)), 4) . PHP_EOL;
// Wichtig · Fallstricke
Voraussetzung: Die Funktion ist nicht Bestandteil des PHP-Kerns, sondern erfordert die Installation der stats-PECL-Extension (pecl install stats).
Parametervalidierung: Der Parameter df muss strikt positiv sein (df > 0). Ungültige Werte können zu undefiniertem Verhalten oder falschen Ergebnissen führen, da die Funktion intern keine ausführliche Fehlerprüfung vornimmt.
Reproduzierbarkeit: Für reproduzierbare Ergebnisse kann der Zufallszahlengenerator mit stats_rand_setall() mit einem festen Seed initialisiert werden.