Signatur
Beschreibung
Die Funktion stats_rand_gen_f() gehört zur PECL-Erweiterung stats und liefert eine zufällige Stichprobe aus der F-Verteilung (auch Fisher-Snedecor-Verteilung genannt). Die F-Verteilung wird typischerweise in der Varianzanalyse (ANOVA) und bei statistischen Hypothesentests zur Überprüfung von Varianzverhältnissen verwendet.
Die zwei Parameter dfn und dfd repräsentieren die Freiheitsgrade des Zählers (numerator degrees of freedom) und des Nenners (denominator degrees of freedom). Beide Werte müssen positiv sein. Intern wird die F-verteilte Zufallsgröße üblicherweise als Quotient zweier chi-quadrat-verteilter Größen, jeweils geteilt durch ihre Freiheitsgrade, realisiert.
Die Funktion ist nützlich, wenn man Monte-Carlo-Simulationen oder statistische Tests (z. B. F-Tests) implementiert und dafür F-verteilte Zufallsstichproben benötigt. Da sie Teil der PECL-Erweiterung stats ist, muss diese explizit installiert und aktiviert sein.
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. |
Rückgabewert
Beispiele
Einfache F-verteilte Zufallszahl erzeugen
<?php
// Voraussetzung: PECL-Erweiterung 'stats' ist installiert
// F-Verteilung mit 5 Freiheitsgraden im Zähler und 10 im Nenner
$dfn = 5.0;
$dfd = 10.0;
$zufallswert = stats_rand_gen_f($dfn, $dfd);
echo "F-verteilte Zufallszahl: " . $zufallswert . PHP_EOL;
?>
Monte-Carlo-Simulation mit F-Verteilung
<?php
// Erzeuge 1000 F-verteilte Stichproben und berechne den Mittelwert
// Theoretischer Erwartungswert = dfd / (dfd - 2) fuer dfd > 2
$dfn = 3.0;
$dfd = 8.0;
$anzahl = 1000;
$summe = 0.0;
for ($i = 0; $i < $anzahl; $i++) {
$summe += stats_rand_gen_f($dfn, $dfd);
}
$stichprobenmittel = $summe / $anzahl;
$theoretischerErwartungswert = $dfd / ($dfd - 2);
echo sprintf(
"Stichprobenmittel: %.4f\nTheoretischer Erwartungswert: %.4f\n",
$stichprobenmittel,
$theoretischerErwartungswert
);
?>
// Wichtig · Fallstricke
Wichtig: Die Funktion stats_rand_gen_f() ist Bestandteil der PECL-Erweiterung stats, die nicht im PHP-Kern enthalten ist. Sie muss separat über PECL installiert werden (pecl install stats) und in der php.ini aktiviert sein (extension=stats.so).
- Beide Freiheitsgrade (
dfnunddfd) müssen strikt positiv sein (größer als 0). Negative Werte oder null führen zu undefiniertem Verhalten. - Der Erwartungswert der F-Verteilung existiert nur für
dfd > 2und beträgt danndfd / (dfd - 2). - Für reproduzierbare Ergebnisse kann der Zufallsgenerator mit
stats_rand_setall()initialisiert werden. - Die Funktion ist nicht kryptografisch sicher und sollte nicht für sicherheitskritische Anwendungen verwendet werden.