Signatur
Beschreibung
Die Funktion stats_dens_weibull() gehört zur PECL-Erweiterung stats und berechnet die Wahrscheinlichkeitsdichte der Weibull-Verteilung. Diese Verteilung wird in der Zuverlässigkeitstheorie, der Lebensdaueranalyse und der Risikomodellierung eingesetzt, um die Zeit bis zum Auftreten eines Ereignisses (z. B. Maschinenfehler) zu modellieren.
Die Dichtefunktion der Weibull-Verteilung ist definiert als:f(x; a, b) = (a / b) * (x / b)^(a - 1) * exp(-(x / b)^a) für x >= 0, wobei a > 0 der Formparameter und b > 0 der Skalenparameter ist. Für x < 0 gilt f(x) = 0.
Der Formparameter a bestimmt die Form der Verteilung: Werte kleiner als 1 deuten auf eine abnehmende Ausfallrate hin, der Wert 1 entspricht der Exponentialverteilung, und Werte größer als 1 beschreiben eine zunehmende Ausfallrate. Der Skalenparameter b streckt oder staucht die Verteilung entlang der x-Achse.
Die Funktion ist nur verfügbar, wenn die stats-Erweiterung installiert und geladen ist (z. B. via PECL). Sie eignet sich für statistische Berechnungen in wissenschaftlichen und ingenieurwissenschaftlichen Anwendungen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $x Pflicht | float | Der Wert, an dem die Dichtefunktion ausgewertet wird. Für x < 0 ist die Dichte 0. |
|
| $a Pflicht | float | Formparameter der Weibull-Verteilung. Muss größer als 0 sein. Bestimmt die Form der Verteilungskurve. | |
| $b Pflicht | float | Skalenparameter der Weibull-Verteilung. Muss größer als 0 sein. Streckt oder staucht die Verteilung entlang der x-Achse. |
Rückgabewert
x zurück. Für x < 0 wird 0.0 zurückgegeben.Beispiele
Einfache Berechnung der Weibull-Dichte
<?php
// Voraussetzung: PECL-Erweiterung 'stats' ist installiert
// Formparameter a = 2.0, Skalenparameter b = 1.5
$x = 1.0;
$a = 2.0;
$b = 1.5;
$dichte = stats_dens_weibull($x, $a, $b);
echo "Weibull-Dichte bei x={$x}: " . $dichte . PHP_EOL;
// Vergleich: Für x < 0 sollte die Dichte 0 sein
$dichteNegativ = stats_dens_weibull(-1.0, $a, $b);
echo "Weibull-Dichte bei x=-1.0: " . $dichteNegativ . PHP_EOL;
Wertetabelle der Weibull-Dichte für verschiedene x-Werte
<?php
// Dichtefunktion für a=1.5 (aufsteigende Ausfallrate), b=2.0
$a = 1.5;
$b = 2.0;
echo sprintf("%-8s %-20s\n", "x", "f(x; a=1.5, b=2.0)");
echo str_repeat('-', 30) . PHP_EOL;
foreach ([0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0] as $x) {
$dichte = stats_dens_weibull($x, $a, $b);
echo sprintf("%-8.1f %-20.8f\n", $x, $dichte);
}
// Wichtig · Fallstricke
Voraussetzung: Die Funktion stats_dens_weibull() ist nicht im PHP-Kern enthalten, sondern Teil der PECL-Erweiterung stats. Sie muss separat installiert werden (pecl install stats) und in der php.ini aktiviert sein (extension=stats.so).
Ungültige Parameter (z. B. a <= 0 oder b <= 0) können zu undefiniertem Verhalten, Warnungen oder falschen Ergebnissen führen. Eine Validierung der Eingaben vor dem Aufruf ist daher empfehlenswert.
Für a = 1 entspricht die Weibull-Verteilung exakt der Exponentialverteilung mit Rate 1/b. In diesem Fall kann alternativ stats_dens_exponential() verwendet werden.