AnyLogic
Развернуть
Размер шрифта

Статистика

Объект сбора статистики Статистика вычисляет основную статистическую информацию (среднее значение, минимум, максимум и т.д.) для последовательности измеренных значений (типа double).

Объект работает по-разному в зависимости от того, считаются ли собираемые данные непрерывными или дискретными.

Демо-модель: Statistics as Function of the Number of Observations Открыть страницу модели в AnyLogic Cloud. Там можно запустить модель или скачать ее по ссылке Исходные файлы модели.

Непрерывные данные

Измерения имеют длительность во времени, то есть значение остается актуальным в течение какого-то времени, и изменяется только в дискретные моменты времени (например, длина очереди). В объект непрерывной статистики можно добавлять только измерения с возрастающими значениями временных меток. Методы вычисления среднего значения и т.д. подразумевают, что последнее добавленное значение было актуально до времени вызова метода.

Собранная объектом статистика в этом случае доступна посредством программного интерфейса класса StatisticsContinuous.

Дискретные данные

Измерения не имеют длительности во времени (например, цена продуктов или длительность пребывания пациентов). Они считаются изолированными, дискретными точками во времени, так что среднее значение является просто суммой измерений, поделенной на их общее количество.

Собранная объектом статистика в этом случае доступна посредством программного интерфейса класса StatisticsDiscrete.

Чтобы добавить объект сбора статистики

  1. Перетащите элемент Статистика  из палитры Статистика в то место графического редактора, где вы хотите поместить набор данных.
  2. Перейдите в панель Свойства.
  3. Введите выражение, которое будет динамически вычисляться во время выполнения модели, и результат его вычисления будет добавляться в объект сбора статистики, в поле Значение.
  4. Укажите, хотите ли вы, чтобы собираемые данные считались непрерывными или дискретными, выбрав опцию Непрерывная или Дискретная.
Свойства

Имя — Имя объекта сбора статистики. По этому имени объект будет доступен из кода.

Исключить — Если опция выбрана, то объект сбора статистики будет исключен из модели.

Видимость — Если опция выбрана, то объект сбора статистики будет отображаться на презентации во время выполнения модели.

Дискретная — Если опция выбрана, то собираемые данные будут считаться дискретными.

Непрерывная — Если опция выбрана, то собираемые данные будут считаться непрерывными.

Значение — Выражение, которое будет динамически вычисляться во время выполнения модели, и результат его вычисления будет добавляться в объект сбора данных.

Обновлять данные автоматически — Если опция выбрана, то новые значения будут добавляться в объект сбора статистики автоматически с периодичностью, указанной в поле Период. Так же здесь вы можете выбрать, хотите ли вы Использовать модельное время, чтобы задать Время первого обновления, или вы хотите Использовать календарные даты, чтобы задать Дату обновления.

Не обновлять данные автоматически — Если опция выбрана, то объект сбора статистики не будет обновляться автоматически. В этом случае вам нужно будет самостоятельно добавлять новые значения, как это описано здесь.

Вести журнал в базе данных — Если опция выбрана, то данные, собранные этим элементом, будут добавлены в журнал выполнения модели statistics_log (если в свойствах базы данных выбрана опция вести журналы).

Методы для работы с собранными данными

Статистика по собранным данным доступна с помощью специальных методов объекта Статистика. Набор методов различается в зависимости от того, какой тип статистики собирается объектом:

  • Непрерывная — элемент является экземпляром класса StatisticsContinuous.
  • Дискретная — элемент является экземпляром класса StatisticsDiscrete.
Непрерывная статистика
Функция Описания
void add(double value, double time) Добавляет в объект значение value, т.e. уведомляет объект об изменении значения в момент времени time.

value — новое значение;
time — время, соответствующее переходу к этому значению
int count() Возвращает количество значений, хранимых в объекте.
void reset() Удаляет всю накопленную статистику.
double max() Возвращает максимальное значение, или Double.NEGATIVE_INFINITY, если объект не хранит ни одного значения.
double min() Возвращает минимальное значение, или Double.POSITIVE_INFINITY, если объект не хранит ни одного значения.
String toString() Возвращает табулированное многострочное текстовое представление объекта.
double deviation() Возвращает среднеквадратичное отклонение для хранящихся значений на момент последнего обновления.
double deviation(double time) Возвращает среднеквадратичное отклонение для хранящихся значений к заданному моменту времени time, при условии, что последнее добавленное значение сохраняется до заданного момента времени.
double integral() Возвращает средний интеграл для статистики на момент последнего обновления, или 0, если объект не хранит ни одного значения.
double integral(double time) Возвращает интеграл для собранной статистики к заданному моменту времени time, при условии, что последнее добавленное значение сохраняется до заданного момента времени, или 0, если объект не хранит ни одного значения.
double mean() Возвращает среднее значение на момент последнего обновления, или 0, если объект не хранит ни одного значения.
double mean(double time) Возвращает среднее значение к заданному моменту времени time, при условии, что последнее добавленное значение сохраняется до заданного момента времени, или 0, если объект не хранит ни одного значения.
double meanConfidence() Возвращает половину среднего доверительного интервала (математический предел ошибки (погрешности)) для хранящихся значений на момент последнего обновления, или 0, если объект не хранит ни одного значения. Средний доверительный интервал вычисляется исходя из предположения, что доверительная вероятность равна 95%.
double meanConfidence(double time) Возвращает половину среднего доверительного интервала (математический предел ошибки (погрешности)) для хранящихся значений к заданному моменту времени time, при условии, что последнее добавленное значение сохраняется до заданного момента времени, или Double.POSITIVE_INFINITY, если в объекте хранится менее 2 значений, или если время. Средний доверительный интервал вычисляется исходя из предположения, что доверительная вероятность равна 95%.
double variance() Возвращает значение дисперсии (квадрат среднего квадратичного отклонения) на момент последнего обновления, или 0, если в объекте хранится менее 2 значений.
double variance(double time) Возвращает значение дисперсии (квадрат среднего квадратичного отклонения) к заданному моменту времени time, при условии, что последнее добавленное значение сохраняется до заданного момента времени, или 0, если объект не хранит ни одного значения.
Дискретная статистика
Функция Описание
void add(double value) Добавляет в объект значение value.
int count() Возвращает количество значений, хранимых в объекте.
void reset() Удаляет всю накопленную статистику.
double max() Возвращает максимальное значение, или Double.NEGATIVE_INFINITY, если объект не хранит ни одного значения.
double min() Возвращает минимальное значение, или Double.POSITIVE_INFINITY, если объект не хранит ни одного значения.
String toString() Возвращает табулированное многострочное текстовое представление объекта.
double deviation() Возвращает среднеквадратичное отклонение для хранящихся значений.
double mean() Возвращает среднее значение, или 0, если объект не хранит ни одного значения.
double meanConfidence() Возвращает половину среднего доверительного интервала (математический предел ошибки (погрешности)) для хранящихся значений, или 0, если объект не хранит ни одного значения. Средний доверительный интервал вычисляется исходя из предположения, что доверительная вероятность равна 95%.
double sum() Возвращает сумму хранящихся в объекте значений, или 0, если объект не хранит ни одного значения.
double variance() Возвращает значение дисперсии (квадрат среднего квадратичного отклонения), или 0, если в объекте хранится менее 2 значений.
Как мы можем улучшить эту статью?