Signatur
Beschreibung
Die Funktion stats_rand_gen_noncentral_chisquare() gibt eine pseudozufällige Gleitkommazahl zurück, die gemäß der nichtzentralen Chi-Quadrat-Verteilung verteilt ist. Diese Verteilung ist eine Verallgemeinerung der (zentralen) Chi-Quadrat-Verteilung und tritt auf, wenn die zugrundeliegenden Normalverteilungsvariablen von null verschiedene Erwartungswerte besitzen.
Der Parameter df legt die Anzahl der Freiheitsgrade fest, während xnonc den Nichtzentralitätsparameter (englisch: noncentrality parameter) angibt. Bei einem Nichtzentralitätsparameter von 0 entspricht die nichtzentrale Chi-Quadrat-Verteilung der gewöhnlichen (zentralen) Chi-Quadrat-Verteilung.
Die Funktion ist Teil der PECL-Erweiterung stats und eignet sich vor allem für statistische Simulationen, Hypothesentests und Monte-Carlo-Methoden, bei denen Stichprobendaten aus dieser speziellen Verteilung benötigt werden – beispielsweise beim Test auf Güte der Anpassung mit nichtzentralen Teststatistiken oder in der Leistungsanalyse von statistischen Tests.
Da stats_rand_gen_noncentral_chisquare() eine PECL-Funktion ist, muss die stats-Erweiterung separat installiert und aktiviert sein. Die Qualität der Zufallszahlen hängt vom internen Zufallszahlengenerator der Erweiterung ab.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $df Pflicht | float | Die Anzahl der Freiheitsgrade der nichtzentralen Chi-Quadrat-Verteilung. Muss positiv sein (größer als 0). | |
| $xnonc Pflicht | float | Der Nichtzentralitätsparameter (noncentrality parameter) der Verteilung. Muss nicht-negativ sein (≥ 0). Bei 0 entspricht das Ergebnis einer zentralen Chi-Quadrat-Verteilung. |
Rückgabewert
df und xnonc entstammt. Der Rückgabewert ist stets nicht-negativ.Beispiele
Einzelne Zufallszahl aus der nichtzentralen Chi-Quadrat-Verteilung erzeugen
<?php
// Voraussetzung: PECL-Erweiterung 'stats' ist installiert
$df = 5.0; // 5 Freiheitsgrade
$xnonc = 2.0; // Nichtzentralitätsparameter
$zufall = stats_rand_gen_noncentral_chisquare($df, $xnonc);
echo "Zufallszahl (nichtzentr. Chi²): " . $zufall . PHP_EOL;
Monte-Carlo-Simulation: Stichproben aus der nichtzentralen Chi-Quadrat-Verteilung
<?php
// Erzeuge 1000 Zufallszahlen und berechne den empirischen Mittelwert
// Erwarteter Mittelwert: df + xnonc = 4 + 3 = 7
$df = 4.0;
$xnonc = 3.0;
$n = 1000;
$summe = 0.0;
for ($i = 0; $i < $n; $i++) {
$summe += stats_rand_gen_noncentral_chisquare($df, $xnonc);
}
$mittelwert = $summe / $n;
echo sprintf(
"Empirischer Mittelwert nach %d Stichproben: %.4f (Erwartungswert: %.1f)\n",
$n,
$mittelwert,
$df + $xnonc
);
// Wichtig · Fallstricke
Voraussetzung: Diese Funktion ist nicht Teil der PHP-Standardinstallation. Sie erfordert die PECL-Erweiterung stats, die separat installiert werden muss (pecl install stats).
- Der Parameter
dfmuss strikt größer als 0 sein, andernfalls kann das Verhalten undefiniert sein oder ein Fehler auftreten. - Der Parameter
xnoncmuss nicht-negativ (≥ 0) sein. - Für reproduzierbare Ergebnisse sollte der Zufallszahlengenerator der
stats-Erweiterung vorher mitstats_rand_setall()gesetzt werden. - Der Erwartungswert der nichtzentralen Chi-Quadrat-Verteilung beträgt
df + xnonc, die Varianz beträgt2 * (df + 2 * xnonc).