Signatur
Beschreibung
stats_rand_gen_noncentral_f() gehört zur PECL-Erweiterung stats und erzeugt eine pseudozufällige Zahl, die der nichtzentralen F-Verteilung folgt. Die nichtzentrale F-Verteilung verallgemeinert die klassische (zentrale) F-Verteilung um einen Nichtzentralitätsparameter xnonc, der angibt, wie weit der Zähler vom Erwartungswert 0 entfernt ist.
Typische Anwendungsgebiete liegen in der mathematischen Statistik, etwa bei der Berechnung der Teststärke (Power) eines F-Tests oder bei Simulationen von Varianzanalysen (ANOVA), bei denen die Nullhypothese nicht zutrifft.
Der Zähler-Freiheitsgrad dfn und der Nenner-Freiheitsgrad dfd müssen jeweils positiv sein. Der Nichtzentralitätsparameter xnonc muss nicht-negativ sein. Ungültige Parameterwerte können zu undefiniertem Verhalten oder Warnungen führen.
Da die Funktion Teil der optionalen stats-Erweiterung ist, muss diese vor der Verwendung installiert und aktiviert sein (pecl install stats).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $dfn Pflicht | float | Freiheitsgrade des Zählers (Numerator degrees of freedom). Muss ein positiver Wert sein. | |
| $dfd Pflicht | float | Freiheitsgrade des Nenners (Denominator degrees of freedom). Muss ein positiver Wert sein. | |
| $xnonc Pflicht | float | Nichtzentralitätsparameter (Noncentrality parameter). Muss größer oder gleich 0 sein. Ein Wert von 0 entspricht der zentralen F-Verteilung. |
Rückgabewert
Beispiele
Einfache Zufallszahl aus der nichtzentralen F-Verteilung erzeugen
<?php
// Voraussetzung: PECL-Erweiterung 'stats' ist installiert
$dfn = 5.0; // Zähler-Freiheitsgrade
$dfd = 10.0; // Nenner-Freiheitsgrade
$xnonc = 2.0; // Nichtzentralitätsparameter
$zufallswert = stats_rand_gen_noncentral_f($dfn, $dfd, $xnonc);
echo "Zufallszahl (nichtzentrale F-Verteilung): " . $zufallswert . PHP_EOL;
Mehrere Zufallszahlen erzeugen und Mittelwert berechnen (Monte-Carlo-Simulation)
<?php
// Simuliert 10.000 Stichprobenwerte aus der nichtzentralen F-Verteilung
// und schätzt den theoretischen Erwartungswert
$dfn = 4.0;
$dfd = 20.0;
$xnonc = 3.0;
$n = 10000;
$summe = 0.0;
for ($i = 0; $i < $n; $i++) {
$summe += stats_rand_gen_noncentral_f($dfn, $dfd, $xnonc);
}
$mittelwert = $summe / $n;
// Theoretischer Erwartungswert E[X] = dfd * (dfn + xnonc) / (dfn * (dfd - 2))
$theoretisch = ($dfd * ($dfn + $xnonc)) / ($dfn * ($dfd - 2));
echo "Simulierter Mittelwert: " . round($mittelwert, 4) . PHP_EOL;
echo "Theoretischer Erwartungswert: " . round($theoretisch, 4) . PHP_EOL;
// Wichtig · Fallstricke
Erweiterung erforderlich: Diese Funktion ist nicht Bestandteil des PHP-Kerns, sondern gehört zur PECL-Erweiterung stats. Sie muss separat installiert werden (pecl install stats) und in der php.ini aktiviert sein (extension=stats).
Parametergrenzen: dfn und dfd müssen strikt positiv sein; xnonc muss >= 0 sein. Werden diese Grenzen verletzt, ist das Verhalten der Funktion undefiniert und kann zu falschen Ergebnissen oder einem Programmabbruch führen.
Reproduzierbarkeit: Für reproduzierbare Ergebnisse (z. B. in Tests) kann der Zufallsgenerator mit stats_rand_setall() mit einem festen Seed initialisiert werden.