Signatur
Beschreibung
stats_dens_normal() gibt die Wahrscheinlichkeitsdichte der Normalverteilung (Gauß-Verteilung) an einem bestimmten Punkt x zurück. Die Funktion beschreibt die klassische Glockenkurve, die in Statistik und Wahrscheinlichkeitstheorie allgegenwärtig ist.
Die Formel lautet: f(x) = (1 / (σ · √(2π))) · e^(−(x−μ)² / (2σ²)), wobei μ der Mittelwert (ave) und σ die Standardabweichung (stdev) ist. Der Rückgabewert ist keine Wahrscheinlichkeit im klassischen Sinne, sondern eine Dichte – für Wahrscheinlichkeiten muss über ein Intervall integriert werden.
Typische Einsatzbereiche sind statistische Modellierung, Qualitätskontrolle, Simulation von zufälligen Ereignissen sowie die Visualisierung von Häufigkeitsverteilungen. Die Funktion steht über die PECL-Erweiterung stats zur Verfügung und muss entsprechend installiert sein.
Mit ave = 0 und stdev = 1 ergibt sich die Standardnormalverteilung. Negative Werte für stdev sind physikalisch sinnlos und führen zu einem Fehler.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $x Pflicht | float | Der Punkt auf der x-Achse, an dem die Dichtefunktion ausgewertet werden soll. | |
| $ave Pflicht | float | Der Mittelwert (Erwartungswert) μ der Normalverteilung. Bestimmt den Scheitelpunkt der Glockenkurve. |
|
| $stdev Pflicht | float | Die Standardabweichung σ der Normalverteilung. Muss ein positiver Wert sein; bestimmt die Breite der Glockenkurve. |
Rückgabewert
x als float zurück. Bei ungültigen Parametern (z. B. stdev <= 0) kann ein Fehler auftreten oder false zurückgegeben werden.Beispiele
Dichte der Standardnormalverteilung am Scheitelpunkt
<?php
// Standardnormalverteilung: Mittelwert 0, Standardabweichung 1
// Maximale Dichte liegt bei x = Mittelwert = 0
$dichte = stats_dens_normal(0, 0, 1);
echo "Dichte bei x=0: " . $dichte . PHP_EOL;
// Erwarteter Wert: 1/sqrt(2*pi) ≈ 0.3989
?>
Normalverteilung mit benutzerdefiniertem Mittelwert und Standardabweichung
<?php
// Körpergröße in cm: Mittelwert 175, Standardabweichung 10
$mittelwert = 175.0;
$stdabw = 10.0;
$punkte = [155, 165, 175, 185, 195];
foreach ($punkte as $x) {
$dichte = stats_dens_normal($x, $mittelwert, $stdabw);
printf("x = %d cm => Dichte = %.6f\n", $x, $dichte);
}
?>
// Wichtig · Fallstricke
Erweiterung erforderlich: stats_dens_normal() ist Teil der PECL-Erweiterung stats und ist nicht in der PHP-Standardinstallation enthalten. Sie muss über PECL installiert werden (pecl install stats).
Achtung: Der Rückgabewert ist eine Dichte, keine Wahrscheinlichkeit. Für die Wahrscheinlichkeit, dass eine Zufallsgröße in einem Intervall [a, b] liegt, muss die kumulierte Verteilungsfunktion verwendet werden – siehe stats_cdf_normal().
Ein Wert von stdev <= 0 ist mathematisch undefiniert und führt zu einem Fehler oder undefinierten Verhalten.