Start · Sprachen · PHP · Referenz · stats_rand_gen_noncentral_f

stats_rand_gen_noncentral_f

Funktion

Erzeugt eine einzelne Zufallszahl aus der nichtzentralen F-Verteilung mit den angegebenen Freiheitsgraden und Nichtzentralitätsparameter.

Kategorie: math

Signatur

stats_rand_gen_noncentral_f(float $dfn, float $dfd, float $xnonc): float

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

Typ
float
Beschreibung
Gibt eine einzelne pseudozufällige Gleitkommazahl zurück, die aus der nichtzentralen F-Verteilung mit den gegebenen Parametern gezogen wurde.

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;
Zufallszahl (nichtzentrale F-Verteilung): 2.4731...

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;
Simulierter Mittelwert: 1.5832 Theoretischer Erwartungswert: 1.5556

// 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.