Start · Sprachen · PHP · Referenz · stats_rand_gen_noncentral_chisquare

stats_rand_gen_noncentral_chisquare

Funktion

Erzeugt eine einzelne Zufallszahl aus der nichtzentralen Chi-Quadrat-Verteilung mit gegebenen Freiheitsgraden und Nichtzentralitätsparameter.

Kategorie: math

Signatur

stats_rand_gen_noncentral_chisquare(float $df, float $xnonc): float

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

Typ
float
Beschreibung
Gibt eine einzelne pseudozufällige Gleitkommazahl zurück, die der nichtzentralen Chi-Quadrat-Verteilung mit den angegebenen Parametern 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;
Zufallszahl (nichtzentr. Chi²): 6.3821...

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
);
Empirischer Mittelwert nach 1000 Stichproben: 6.9832 (Erwartungswert: 7.0)

// 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 df muss strikt größer als 0 sein, andernfalls kann das Verhalten undefiniert sein oder ein Fehler auftreten.
  • Der Parameter xnonc muss nicht-negativ (≥ 0) sein.
  • Für reproduzierbare Ergebnisse sollte der Zufallszahlengenerator der stats-Erweiterung vorher mit stats_rand_setall() gesetzt werden.
  • Der Erwartungswert der nichtzentralen Chi-Quadrat-Verteilung beträgt df + xnonc, die Varianz beträgt 2 * (df + 2 * xnonc).