20.3 Math_Stats 

Besprochene Version: 0.9.0beta3 | Lizenz: PHP-Lizenz 2.02 |
Klassendatei(en): Math/Stats.php |
Das Paket Math_Stats definiert eine recht große Anzahl von Funktionen zur Berechnung statistischer Kennzahlen. Die Datengrundlage wird in Form eines Arrays übergeben. Entweder können die Zahlen einzeln in einem Array übergeben werden, oder Sie übergeben die Daten bereits kumuliert, was dem Objekt allerdings mitgeteilt werden muss.
$dat = array (1,3,4,2,2,1,3,3,1,3); $stat=new Math_Stats(); $erg=$stat->setData($dat); if (true==PEAR::isError($erg)) { // Fehlerbehandlung }
Übergabe von kumulierten Daten:
$dat = array ('1'=>3, '2'=>2, '3'=>4, '4'=>1); $stat=new Math_Stats(); $erg=$stat->setData($dat, STATS_DATA_CUMMULATIVE); if (true==PEAR::isError($erg)) { // Fehlerbehandlung }
In beiden Fällen werden die Daten also mithilfe der Methode setData() im Objekt abgelegt. Wenn Sie ein kumuliertes Data-Set nutzen, muss allerdings die Konstante STATS_DATA_CUMMULATIVE als zweiter Parameter übergeben werden. Bitte beachten Sie hierbei, dass die Daten komplett kumuliert sein müssen. Die Nutzung doppelter Schlüssel ist, da die Daten als Array übergeben werden, natürlich nicht möglich. Alternativ wäre auch die Konstante STATS_DATA_SIMPLE zulässig, um den ersteren Fall zu definieren. Da das allerdings die Standardeinstellung ist, kann diese Konstante auch wegfallen.
Der Konstruktor kann auch genutzt werden, um festzulegen, wie das Paket mit Array-Elementen umgehen soll, die null sind. In diesem Zusammenhang werden alle nicht-numerischen Werte als null angesehen. Übergeben Sie die Konstante STATS_REJECT_NULL, die dem Default-Wert entspricht, so liefert die Methode setData() ein PEAR_Error-Objekt, wenn ein nicht-numerischer Wert gefunden wird. Mit der Konstante STATS_IGNORE_NULL werden solche Werte ignoriert, und STATS_USE_NULL_AS_ZERO definiert, dass solche Werte durch die Zahl Null ersetzt werden sollen. Im letzten Fall könnten natürlich die berechneten Werte verfälscht werden.
Möchten Sie die Daten aus dem Objekt wieder auslesen, steht getData() zur Verfügung. Diese Methode liefert Ihnen dann die Daten zurück, bei denen die NULL-Werte bereits entsprechend der Vorschrift behandelt wurden. Bei der Nutzung von kumulierten Daten können Sie getData() den booleschen Wert true übergeben, um die Daten wieder zu entpacken.
Die einzelnen statistischen Funktionen, die das Paket bietet, finden Sie in Tabelle 20.2. Sollte bei der Berechnung ein Fehler auftreten, wird jeweils ein PEAR_Error-Objekt zurückgegeben. Möchten Sie beispielsweise das arithmetische Mittel (den Durchschnitt) berechnen, könnten Sie das so umsetzen:
require_once('Math/Stats.php'); $dat = array (1,3,4,2,2,1,3,3,1,3); $stat=new Math_Stats(); $erg=$stat->setData($dat); if (true==PEAR::isError($erg)) { die ($erg->getMessage(); } $erg=$stat->mean(); if (true==PEAR::isError($erg)) { die ($erg->getMessage(); } echo "Das arithmetische Mittel lautet: $erg"; // Gibt "Das arithmetische Mittel lautet: 2.3" aus
Listing 20.3 Berechnung des arithmetischen Mittels