Czy można zgromadzić zestaw statystyk, które opisują dużą liczbę próbek, dzięki czemu mogę stworzyć wykres pudełkowy?

22

Muszę od razu wyjaśnić, że jestem praktykującym programistą, a nie statystykiem, a moja klasa statystyk z college'u była bardzo dawno temu…

To powiedziawszy, chciałbym wiedzieć, czy istnieje metoda gromadzenia zestawu statystyk opisowych, które można by następnie wykorzystać do stworzenia wykresu pudełkowego, który nie pociąga za sobą przechowywania wielu pojedynczych próbek?

Usiłuję utworzyć graficzne podsumowanie czasów obsługi kolejek w złożonym procesie składającym się z wielu kolejek. W przeszłości korzystałem z pakietu o nazwie tnftools, który pozwalał na gromadzenie dużych próbek, a następnie przetwarzanie ich w ładny wykres czasów odpowiedzi i wartości odstających… Ale tnftools nie są dostępne dla mojej obecnej platformy.

Idealnie chciałbym móc gromadzić zestaw statystyk opisowych „w locie” w trakcie trwania procesu, a następnie wyodrębniać dane do analizy na żądanie. Ale nie mogę po prostu pozwolić, aby proces gromadził próbki, ponieważ zaangażowana w to pamięć / operacja miałaby niedopuszczalny wpływ na wydajność systemu.

Kaelin Colclasure
źródło
Kaelin:> czy masz na myśli, czy istnieje metoda „w locie” do obliczania statystyk podsumowujących, takich jak mediana i kwartyle? Jeśli tego właśnie chcesz, mógłbym dać ci linki do opisujących je dokumentów. Możesz także podać więcej szczegółów na temat platform, nad którymi pracujesz, ponieważ wydajna implementacja GNU tych metod prawdopodobnie istnieje w R.
user603
@kwak: Tak, to brzmi jak to, czego szukam. Byłbym bardzo wdzięczny za te linki. :-) Pracuję na Mac OS X… Mogę używać R do przetwarzania danych, ale nie mogę połączyć kodu GPL z produktem mojej firmy z typowych powodów.
Kaelin Colclasure

Odpowiedzi:

27

W przypadku wykresu pudełkowego „w locie” potrzebne będą kwantyle „w locie” min / max (trywialne), a także kwartyle „w locie” (0,25, 0,5 = mediana i 0,75).

Ostatnio dużo pracy dotyczy problemu algorytmu online (lub „w locie”) do obliczania mediany.

Ostatnie zmiany to binmedian . W skrócie , ma również większą złożoność w najgorszym przypadku niż szybki wybór (który nie jest ani online, ani jednoprzebiegowy).

Powiązany artykuł, a także kod C i FORTRAN można znaleźć tutaj . Być może będziesz musiał sprawdzić szczegóły licencji u autorów.

Będziesz także potrzebował algorytmu jednoprzebiegowego dla kwartylów, do którego możesz zastosować powyższe podejście i następującą rekurencyjną charakterystykę kwartylów pod względem median:

Q0,75(x)Q0,5(xja:xja>Q0,5(x))

i

Q0,25(x)Q0,5(xja:xja<Q0,5(x))

tj. 25 (75) procent kwartyl jest bardzo zbliżony do mediany tych obserwacji, które są mniejsze (większe) niż mediana.

Uzupełnienie:

Istnieje wiele starszych wieloprzebiegowych metod obliczania kwantyli. Popularnym podejściem jest utrzymywanie / aktualizowanie wyznaczonego rozmiaru zbiornika obserwacji losowo wybranych ze strumienia i rekurencyjne obliczanie kwantyli (patrz ten przegląd) na tym zbiorniku. To (i powiązane) podejście zostało zastąpione tym zaproponowanym powyżej.

użytkownik603
źródło
1
+1 prawo; Byłem jeszcze w mrocznych czasach przybliżania histogramu.
Czy dobrze rozumiem, że taka rekurencyjna definicja kwartylów z median wymaga dwóch przejść, jeśli jest realizowana naiwnie? Czy znasz algorytmy jednoprzebiegowe?
Kwarc
@Quartz: nie, wystarczy jeden przebieg: masz dwa, jedno przejście, uruchomione obliczenia mediany.
user603
2

Zamiast po prostu znaleźć medianę, istnieje algorytm, który bezpośrednio utrzymuje szacowany histogram: „ algorytm kwadratu P do dynamicznego obliczania kwantyli i histogramów bez przechowywania obserwacji”. Prawdopodobnie będzie to o wiele bardziej wydajne niż wielokrotne binowanie dla każdego kwantyla, jaki chcesz.

Neil G.
źródło