Можно ли накапливать набор статистических данных, описывающих большое количество образцов, чтобы я мог затем создать коробочный график?


22

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

Тем не менее, я хотел бы знать, существует ли метод для накопления набора описательной статистики, который затем может быть использован для создания коробочного графика, который не влечет за собой сохранение группы отдельных выборок?

То, что я пытаюсь сделать, это создать графическую сводку времени обслуживания очереди в рамках сложного процесса с несколькими очередями. В прошлом я использовал пакет под названием tnftools, который позволял накапливать большие выборки, а затем обрабатывать их в виде хорошего графика времени отклика и выбросов ... Но tnftools недоступны для моей текущей платформы.

В идеале я хотел бы иметь возможность собирать набор описательной статистики «на лету» по мере выполнения процесса, а затем извлекать данные для анализа по требованию. Но я не могу просто заставить процесс накапливать сэмплы, так как задействованная при этом память / ввод-вывод окажет неприемлемое влияние на производительность системы.


Келин:> Вы имеете в виду, существует ли метод «на лету» для вычисления суммарной статистики, такой как медиана и квартили? Если это то, что вы хотите, я мог бы дать вам ссылки на документы с подробным описанием их. Вы также можете рассказать больше о платформах, над которыми вы работаете, поскольку эффективная реализация этих методов в GNU, вероятно, существует в R.
user603

@kwak: Да, это похоже на то, что я ищу. Я был бы очень признателен за эти ссылки. :-) Я работаю на Mac OS X… Я могу использовать R для пост-обработки данных, но не могу связать код GPL с продуктом моей компании по обычным причинам.
Колье Каэлина

Ответы:


27

Для бокса «на лету» вам понадобятся мин / макс (тривиально) «на лету», а также квартили «на лету» (0,25,0,5 = медиана и 0,75).

В последнее время проделана большая работа по проблеме онлайнового (или «на лету») алгоритма для вычисления медианы.

Недавние разработки - это бинмед . Как побочный удар, он также имеет лучшую сложность в худшем случае, чем быстрый выбор (который не является ни онлайн, ни однопроходным).

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

Вам также потребуется алгоритм однократного прохода для квартилей, для которого вы можете использовать описанный выше подход и следующую рекурсивную характеристику квартилей в терминах медиан:

Q0,75(Икс)Q0,5(Икся:Икся>Q0,5(Икс))

а также

Q0,25(Икс)Q0,5(Икся:Икся<Q0,5(Икс))

то есть квартиль 25 (75) процентов очень близок к медиане тех наблюдений, которые меньше (больше) медианы.

Приложение:

Существует множество старых многопроходных методов для вычисления квантилей. Популярный подход заключается в поддержании / обновлении детерминированного размера резервуара наблюдений, случайно выбранных из потока, и рекурсивного вычисления квантилей (см. Этот обзор) для этого резервуара. Этот (и связанный) подход заменен предложенным выше.


1
+1 справа; Я все еще находился в темноте, пытаясь приблизиться к гистограмме.

Правильно ли я понимаю, что такое рекурсивное определение квартилей по медианам требует двух проходов, если реализовано наивно? Вам известны алгоритмы однопроходного прохода?
Кварц

@Quartz: нет, один проход подойдет: у вас есть два, один проход, выполняются срединные вычисления.
user603

2

Вместо того, чтобы просто найти медиану, существует алгоритм, который непосредственно поддерживает оценочную гистограмму: « Алгоритм P-квадрата для динамического вычисления квантилей и гистограмм без сохранения наблюдений». Это, вероятно, будет намного эффективнее повторного биннинга для каждого квантиля, который вы хотите.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.