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

Данные гистограммы

Объект Данные гистограммы:

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

Процентили

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

Собранная статистика может быть отображена с помощью Гистограммы.

Чтобы создать объект сбора данных гистограммы

  1. Перетащите элемент Данные гистограммы с палитры Статистика на диаграмму типа агентов (или эксперимента).
  2. Перейдите в панель Свойства.
  3. В поле Значение введите выражение, которое будет динамически вычисляться во время выполнения модели, чтобы получить новое измерение, которое будет добавлено в объект сбора данных.
  4. Если вы хотите, чтобы вычислялась интегральная функция распределения, установите флажок Считать CDF.
  5. Если вы хотите, чтобы считались процентили, установите флажок Вычислять процентили и задайте значения нижнего и верхнего доверительных интервалов в полях Нижний и Верхний соответственно.
  6. Теперь нужно задать интервалы гистограммы. Укажите, хотите ли вы явно задать интервалы, либо использовать возможность автоматического формирования интервалов самой гистограммой, в секции свойств Диапазон значений.
  7. Если вы знаете предполагаемые минимальное и максимальное значения измеряемых данных, то выберите в секции Диапазон значений опцию Фиксированный и задайте интервалы гистограммы, статически задав границы диапазона значений гистограммы в полях Минимум и Максимум, а количество интервалов в поле Кол-во интервалов.
  8. Если же вы не знаете точный диапазон значений, которые будут добавляться на гистограмму, то вам нужно будет использовать не фиксированные, а адаптивные интервалы. В этом случае гистограмма не будет требовать от вас задания диапазона значений (вам нужно будет только задать количество интервалов и начальную ширину интервала). Вместо этого, она автоматически будет изменять интервалы в соответствии с добавляемыми значениями (удваивать их до тех пор, пока все значения не попадут в новый диапазон). Для этого выберите опцию Выбирается автоматически и задайте Начальный размер интервала.

Свойства

Основные свойства

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

Отображать имя — Если опция выбрана, то имя объекта сбора данных будет отображаться в графическом редакторе.

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

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

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

Кол-во интервалов — Количество интервалов этой гистограммы.

Считать CDF — Если опция выбрана, то для этой гистограммы будет вычисляться интегральная функция распределения.

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

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

Диапазон значений

Здесь вы можете выбрать, как будут формироваться интервалы этой гистограммы. Если вы знаете предполагаемые минимальное и максимальное значения измеряемых данных, то вы можете выбрать опцию Фиксированный и задать границы диапазона значений гистограммы в полях Минимум и Максимум. Если нет, то мы рекомендуем выбрать опцию Выбирается автоматически — в этом случае от вас не требуется задавать диапазон значений — гистограмма будет автоматически изменять интервалы при выходе добавляемых значений за пределы изначально выбранного диапазона значений.

Обновление данных

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

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

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

Собираемая объектом статистика доступна с помощью следующих методов. Объект Данные гистограммы представлен в AnyLogic экземпляром одного из следующих классов: HistogramSimpleData и HistogramSmartData.

HistogramSimpleData
Данные гистограммы с фиксированным минимумом, максимумом и количеством интервалов. Выходящие за пределы заданного диапазона значения регистрируются в специальных интервалах "ниже нижней границы" и "выше верхней".
Функция Описание
double getPDFOutsideHigh() Возвращает процент значений (значение, лежащее в пределах 0..1), которые попали выше заданного максимума.
double getPDFOutsideLow() Возвращает процент значений (значение, лежащее в пределах 0..1), которые попали ниже заданного минимума.
void setMinMax(double min, double max) Полностью удаляет хранящиеся данные гистограммы и заново устанавливает диапазон интервалов.
HistogramSmartData
Данные гистограммы с фиксированным количеством интервалов, но с адаптивно настраиваемым диапазоном значений. Все значения всегда попадают в выбираемый для гистограммы диапазон значений.
Функция Описание
double getIntervalWidth() Возвращает текущую ширину интервала, т.e. диапазон значений, соответствующий одному интервалу (разницу минимального и максимального значений из интервала).
double getLowerBound() Возвращает нижнюю границу покрытого интервалами диапазона значений.

Оба класса наследуют от базового класса HistogramData следующие методы, которые применимы к обоим типам гистограмм:

Общие функции
Функция Описание
void add(double val) Добавляет в объект новое значение val.
int count() Возвращает количество значений, хранимых в объекте.
void reset() Полностью удаляет данные, удаляет значения плотности вероятности, функции распределения и статистику.
double max() Возвращает максимальное значение или Double.NEGATIVE_INFINITY, если объект не хранит ни одного значения.
double mean() Возвращает среднее значение гистограммы.
double meanConfidence() Возвращает средний доверительный интервал для хранящихся значений. Средний доверительный интервал вычисляется исходя из предположения, что доверительная вероятность равна 95%.
double min() Возвращает минимальное значение или Double.POSITIVE_INFINITY, если объект не хранит ни одного значения.
double deviation() Возвращает среднеквадратичное (стандартное) отклонение для хранящихся значений.
int getNumberOfIntervals() Возвращает количество интервалов.
StatisticsDiscrete getStatistics() Возвращает объект Статистика, встроенный в этот объект Данные гистограммы.
double getXMax() Возвращает верхнюю границу диапазона значений.
double getXMin() Возвращает нижнюю границу диапазона значений.
Плотность вероятности
Функция Описание
double getPDF(int index) Возвращает плотность вероятности для интервала с заданным индексом index.
double getMaxPDF() Возвращает максимальное значение плотности вероятности по всем интервалам, т.e. максимальное количество попаданий значений в интервал, поделенное на общее количество значений.
Функция распределения
Функция Описание
double getCDF(int index) Возвращает функцию распределения для интервала с заданным индексом index.
void setCDFEnabled(boolean yes) Разрешает (если в качестве аргумента передать true) или запрещает (если передать false) вычисление функции распределения.
boolean isCDFEnabled() Проверяет, разрешено ли вычисление функции распределения. Возвращает true, если да, false — если нет.
Процентили
Функция Описание
boolean arePercentilesEnabled() Проверяет, разрешено ли вычисление процентилей. Возвращает true, если да, false — если нет.
void setPercentilesEnabled(boolean yes) Разрешает (если в качестве аргумента передать true) или запрещает (если передать false) вычисление процентилей (значений данных, соответствующих заданным нижней и верхней процентным границам).
void setPercents(double low, double high) Задает процентные границы для вычисления процентилей.
double getPercentHigh() Возвращает верхнее процентное значение, используемое для вычисления процентилей (1 соответствует 100%).
double getPercentLow() Возвращает нижнее процентное значение, используемое для вычисления процентилей (1 соответствует 100%).
Как мы можем улучшить эту статью?