Чи можливо накопичити набір статистичних даних, що описують велику кількість зразків, щоб потім я міг виготовити коробку?


22

Я повинен негайно уточнити, що я практикуючий розробник програмного забезпечення, а не статистик, і що клас моєї статистики в коледжі був дуже давно ...

З огляду на це, я хотів би знати, чи існує метод накопичення набору описових статистичних даних, який потім може бути використаний для отримання коробки, що не тягне за собою збереження купу окремих зразків?

Що я намагаюся зробити, це створити графічний підсумок часу обслуговування черги в рамках складного процесу з кількома чергами. У минулому я використовував пакет під назвою tnftools, який дозволяв накопичувати великі зразки, а потім обробляти в хороший графік часу відгуку та перешкод… Але tnftools недоступний для моєї поточної платформи.

В ідеалі я хотів би мати можливість накопичити набір описових статистичних даних "на льоту" в процесі роботи, а потім витягнути дані для аналізу на вимогу. Але я не можу просто змусити зразки процесу накопичувати, оскільки пам'ять / IO, що беруть участь у цьому, матиме неприйнятний вплив на продуктивність системи.


Каелін:> Ви маєте на увазі, чи існує метод "на льоту" для обчислення зведених статистичних даних, таких як медіана та квартилі? Якщо це те, що ви хочете, я можу дати вам посилання на документи, де їх деталізується. Ви могли б також дати більш детальну інформацію про платформах , з якими ви працюєте в якості ефективної реалізації GNU цих методів , ймовірно , існує в R.
user603

@kwak: Так, це звучить як те, що я шукаю. Я дуже вдячний за ці посилання. :-) Я працюю над Mac OS X… Я можу використовувати R для післяобробки даних, але не можу пов’язати GPL-код із продуктом моєї компанії з звичайних причин.
Розбіжність Каеліна

Відповіді:


27

Для коробки "на льоту" вам знадобляться "мінімум на хвилину" міні / макс (тривіальний), а також "квартира" (0,25,0,5 = медіана та 0,75).

Останнім часом велика робота проводиться над проблемою онлайн-алгоритму (або «на льоту») для середніх обчислень.

Останні розробки є бінмедіанськими . Як бічний удар, він також користується кращою складністю в гіршому випадку, ніж швидкий вибір (який не є ні в Інтернеті, ні в одному проході).

Ви можете знайти відповідний папір, а також код C та FORTRAN в Інтернеті тут . Можливо, вам доведеться перевірити дані про ліцензування у авторів.

Також вам знадобиться алгоритм єдиного проходу для квартілів, для якого ви можете використовувати підхід вище та наступну рекурсивну характеристику квартілів з точки зору медіанів:

Q0,75(х)Q0,5(хi:хi>Q0,5(х))

і

Q0,25(х)Q0,5(хi:хi<Q0,5(х))

тобто 25 (75) відсотковий квартал дуже близький до медіани тих спостережень, які менші (більші), ніж медіана.

Додаток:

Існує безліч старих багатопрохідних методів обчислення квантилів. Популярним підходом є підтримка / оновлення резервуара детермінованих розмірів спостережень, випадковим чином обраних із потоку, та рекурсивно обчислювати кванти (див. Цей огляд) на цьому водоймі. Цей (та пов'язаний з ним) підхід витісняється із запропонованого вище.


1
+1 праворуч; Я ще був у темному віці, щоб зробити наближення до гістограми.

Чи правильно я розумію, що для такого рекурсивного визначення квартилів від медіанів потрібні два переходи, якщо вони реалізовані наївно? Чи знаєте ви алгоритми однопрохідного проходження?
Кварц

@Quartz: ні, один прохід зробить: у вас два, один прохід, що працюють середні обчислення.
user603

2

Замість того, щоб просто знайти медіану, існує алгоритм, який безпосередньо підтримує оцінену гістограму: " Алгоритм P-квадрата для динамічного обчислення квантових і гістограм без збереження спостережень". Це, ймовірно, буде набагато ефективніше, ніж повторне введення рахунків для кожного квантилу, який ви хочете.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.