Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort
Vorwort
1 PEAR – Einführung
2 Authentication
3 Caching
4 Date and Time
5 File Formats
6 HTTP
7 Internationalization
8 Mail
9 Networking
10 PHP
11 Text
12 Web Services
13 Benchmarking
14 Configuration
15 Database
16 File System
17 HTML
18 Images
19 Logging
20 Math
21 Numbers
22 Tools and Utilities
23 XML
24 Selbst Pakete erstellen
25 PECL
Index
Ihre Meinung?

Spacer
 <<   zurück
PHP PEAR von Carsten Möhrke
Anwendung und Entwicklung – Erweiterungen für PHP schreiben
Buch: PHP PEAR

PHP PEAR
798 S., 39,90 Euro
Rheinwerk Computing
ISBN 3-89842-580-0
gp 20 Math
  gp 20.1 Math_Integer
  gp 20.2 Math_TrigOp
  gp 20.3 Math_Stats
  gp 20.4 Math_Fraction
  gp 20.5 Math_BinaryUtils


Rheinwerk Computing

20.3 Math_Stats  toptop


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.

Übergabe von Rohdaten:

$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


Tabelle 20.2 Statistische Funktionen des Pakets
Funktion Erläuterung Funktion Erläuterung
absDev() Standardabweichung absDevWithMean($m) Berechnet die Standardabweichung bei übergebenem arithmetischen Mittel
coeffOfVariation() Koeffizent der Variation count() Anzahl der Werte
frequency() Frequenz der Werte geometrcMean() Geometrisches Mitel
harmonicMean() Harmonisches Mittel interquartileMean() Um 25  % gestutztes Mittel
interquartileRange() Interquartiler Abstand kurtosis() Kurtosis
max() Maximalwert mean() Arithmetisches Mittel
median() Median midrange() Mitte der Extremwerte
min() Minimalwert mode() Modalwert
percentile() Perzentil des übergebenen Wertes product() Produkt aller Werte
productN() Produkt aller Werte, die zuvor mit einem übergebenen Wert potenziert wurden quartileDeviation() Halber Quartilabstand
quartiles() Liefert die Quartile als Array zurück quartileSkewness Coefficient() Quartilskoeffizient der Schiefe
quartileVariation Coefficient() Quartilsvariations koeffizient range() Spannweite
sampleCentralMoment() Berechnet das Zentralmoment eines übergebenen Wertes skewness() Schiefe
stdErrorOfMean() Standardfehler stDev() Standardabweichung
stDevWithMean() Standardabweichung von einem übergebenen Wert studentize() studentisieren
sum() Summe aller Werte sum2() Summe aller quadrierten Werte
sumN() Potenziert alle Werte mit einem übergebenen Wert und addiert sie dann. variance() Varianz
varianceWithMean() Varianz zu einem übergebenen Mittel    

 <<   zurück
     
  Zum Katalog
Zum Katalog: PHP PEAR
PHP PEAR
Jetzt bestellen!
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: PHP 5.6 und MySQL 5.7






 PHP 5.6 und
 MySQL 5.7


Zum Katalog: Einstieg in PHP 5.6 und MySQL 5.6






 Einstieg in PHP 5.6
 und MySQL 5.6


Zum Katalog: Responsive Webdesign






 Responsive Webdesign


Zum Katalog: Moderne Websites entwickeln






 Moderne Websites
 entwickeln


Zum Katalog: MySQL 5.6






 MySQL 5.6


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Rheinwerk Verlag GmbH 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de