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

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

Процентили

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

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

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

  7. Если Вы знаете предполагаемые минимальное и максимальное значения измеряемых данных, то выберите из группы кнопок Диапазон значений опцию Фиксированный и задайте интервалы гистограммы, статически задав границы диапазона значений гистограммы в полях Минимум и Максимум, а количество интервалов в поле Кол-во интервалов.
  8. Если же Вы не знаете точный диапазон значений, которые будут добавляться на гистограмму, то Вам нужно будет использовать не фиксированные, а адаптивные интервалы. В этом случае гистограмма не будет требовать от Вас задания диапазона значений (Вам нужно будет только задать количество интервалов и начальную ширину интервала). Вместо этого, она автоматически будет изменять интервалы в соответствии с добавляемыми значениями (удваивать их до тех пор, пока все значения не попадут в новый диапазон). Для этого выберите опцию Выбирается автоматически и задайте Начальный размер интервала.
Основные свойства

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

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

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

На верхнем уровне – Если опция выбрана, то объект сбора данных будет виден на презентации класса, в который будет вложен данный активный объект. Поскольку объекты сбора данных не могут присутствовать на презентации класса верхнего уровня, этот флажок всегда сброшен и недоступен.

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

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

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

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

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

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

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

Обновлять данные автоматически после каждого "прогона"/итерации - [Видно, если элемент находится на диаграмме эксперимента] - Если опция выбрана, то новые значения будут добавляться в объект сбора данных после каждого "прогона"/итерации модели.

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

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

HistogramSimpleData- Данные гистограммы с фиксированным минимумом, максимумом и количеством интервалов. Выходящие за пределы заданного диапазона значения регистрируются в специальных интервалах "ниже нижней границы" и "выше верхней". Этот класс предоставляет следующие методы:

double getPDFOutsideHigh() -  Возвращает процент значений (значение, лежащее в пределах 0..1) , которые попали выше заданного максимума.

double getPDFOutsideLow() - Возвращает процент значений (значение, лежащее в пределах 0..1), которые попали ниже заданного минимума.

void setMinMax(double min, double max) - Полностью удаляет хранящиеся данные гистограммы и заново устанавливает диапазон интервалов.

HistogramSmartData - Данные гистограммы с фиксированным количеством интервалов, но с адаптивно настраиваемым диапазоном значений. Все значения всегда попадают в выбираемый для гистограммы диапазон значений. Этот класс предоставляет следующие методы:

double getIntervalWidth() - Returns the current interval width, i.e. the data range corresponding to one interval.

double getLowerBound() - Returns the lower bound of the range covered by intervals.

Оба класса наследуют от базового класса 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%).


См. также

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

 Справочник классов: Класс HistogramData