Ist es möglich, eine Reihe von Statistiken zu erstellen, die eine große Anzahl von Stichproben beschreiben, sodass ich dann einen Boxplot erstellen kann?

22

Ich muss sofort klarstellen, dass ich ein praktizierender Softwareentwickler bin, kein Statistiker, und dass meine College-Statistik-Klasse schon sehr lange her ist…

Allerdings würde ich gerne wissen, ob es eine Methode zum Sammeln einer Reihe von beschreibenden Statistiken gibt, mit der dann ein Boxplot erstellt werden kann, bei dem keine einzelnen Stichproben gespeichert werden müssen.

Ich versuche, eine grafische Zusammenfassung der Warteschlangendienstzeiten in einem komplexen Prozess mit mehreren Warteschlangen zu erstellen. Ich habe in der Vergangenheit ein Paket namens tnftools verwendet, mit dem große Samples akkumuliert und dann zu einem schönen Diagramm mit Antwortzeiten und Ausreißern nachbearbeitet werden konnten. Aber tnftools sind für meine aktuelle Plattform nicht verfügbar.

Im Idealfall möchte ich in der Lage sein, eine Reihe von beschreibenden Statistiken "on the fly" zu sammeln, während der Prozess abläuft, und dann die Daten zur Analyse nach Bedarf zu extrahieren. Der Prozess kann jedoch nicht einfach Samples akkumulieren, da der damit verbundene Speicher / E / A-Aufwand die Leistung des Systems inakzeptabel beeinträchtigen würde.

Kaelin Colclasure
quelle
Kaelin:> Meinst du, ob es eine On-the-Fly-Methode zur Berechnung von Summenstatistiken wie Median und Quartile gibt? Wenn es das ist, was du willst, könnte ich dir Links zu Artikeln geben, in denen sie genau beschrieben sind. Sie können auch weitere Details zu den Plattformen geben Sie als effiziente GNU - Implementierung dieser Methoden arbeiten wahrscheinlich in R. vorhanden
user603
@kwak: Ja, das hört sich nach dem an, wonach ich suche. Ich würde mich sehr über diese Links freuen. :-) Ich arbeite unter Mac OS X… Ich kann R für die Nachbearbeitung von Daten verwenden, aber aus den üblichen Gründen keinen GPL-Code mit dem Produkt meines Unternehmens verknüpfen.
Kaelin Colclasure

Antworten:

27

Für den Boxplot "on the fly" benötigen Sie sowohl "on the fly" -min / max (trivial) als auch "on the fly" -Quartile (0,25, 0,5 = Median und 0,75).

In letzter Zeit wurde eine Menge Arbeit in Bezug auf das Problem des Online-Algorithmus (oder "on the fly" -Algorithmus) für die Medianberechnung geleistet.

Eine neuere Entwicklung ist binmedian . Als Nebeneffekt ist die Komplexität im schlimmsten Fall besser als bei der Schnellauswahl (weder online noch in einem Durchgang).

Den dazugehörigen Artikel sowie den C- und FORTRAN-Code finden Sie hier online . Möglicherweise müssen Sie die Lizenzdetails bei den Autoren erfragen.

Sie benötigen auch einen Single-Pass-Algorithmus für die Quartile, für den Sie den obigen Ansatz und die folgende rekursive Charakterisierung der Quartile in Bezug auf Mediane verwenden können:

Q.0,75(x)Q.0,5(xich:xich>Q.0,5(x))

und

Q.0,25(x)Q.0,5(xich:xich<Q.0,5(x))

Das heißt, das 25 (75) Prozent-Quartil liegt sehr nahe am Median derjenigen Beobachtungen, die kleiner (größer) als der Median sind.

Nachtrag:

Es gibt eine Vielzahl älterer Multi-Pass-Methoden zur Berechnung von Quantilen. Ein gängiger Ansatz besteht darin, ein deterministisch großes Reservoir von Beobachtungen zu verwalten / zu aktualisieren, die zufällig aus dem Datenstrom ausgewählt wurden, und Quantile (siehe diese Übersicht) auf diesem Reservoir rekursiv zu berechnen . Dieser (und verwandte) Ansatz wird durch den oben vorgeschlagenen ersetzt.

user603
quelle
1
+1 Richtig; Ich befand mich noch in dunklen Zeiten, als ich mich dem Histogramm annäherte.
Verstehe ich richtig, dass eine solche rekursive Definition von Quartilen aus Medianen zwei Durchgänge erfordert, wenn sie naiv implementiert wird? Kennen Sie Single-Pass-Algorithmen?
Quarz
@Quartz: Nein, ein einzelner Durchgang reicht aus: Sie haben zwei Durchgänge mit Medianberechnungen.
user603
2

Anstatt nur den Median zu finden, gibt es einen Algorithmus, der ein geschätztes Histogramm direkt verwaltet: " den P-Quadrat-Algorithmus zur dynamischen Berechnung von Quantilen und Histogrammen ohne Speicherung von Beobachtungen". Dies ist wahrscheinlich viel effizienter als das wiederholte Binning für jedes gewünschte Quantil.

Neil G
quelle