Start · Sprachen · PHP · Referenz · stats_dens_normal

stats_dens_normal

Funktion

Berechnet den Wert der Wahrscheinlichkeitsdichtefunktion (PDF) der Normalverteilung an der Stelle <code>x</code> für den angegebenen Mittelwert und die Standardabweichung.

Kategorie: math

Signatur

stats_dens_normal(float $x, float $ave, float $stdev): float

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

Typ
float
Beschreibung
Gibt den Wert der Wahrscheinlichkeitsdichtefunktion der Normalverteilung an der Stelle 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
?>
Dichte bei x=0: 0.39894228040143

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);
}
?>
x = 155 cm => Dichte = 0.005399 x = 165 cm => Dichte = 0.024197 x = 175 cm => Dichte = 0.039894 x = 185 cm => Dichte = 0.024197 x = 195 cm => Dichte = 0.005399

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