В этом разделе в качестве примера построения и использования распределений на основе данных наблюдений подробно рассмотрена несколько упрощенная модель AnyLogic, которая была построена по заказу одной из организаций США для анализа влияния фактора тяги к алкоголю на продолжительность жизни и финансовые потери общества на лечение пьющих сограждан. Необходимость разработки модели определялась тем, что до проведения национальных акций (пропаганды здорового образа жизни, убеждения, рекламы и т. п.), результатом которых могло бы стать уменьшение уровня интенсивности тяги к алкоголю, желательно оценить, какой эффект может дать уменьшение этой интенсивности. Социологические исследования могут дать оценки подобных параметров только для существующего состояния общества. Чтобы получить оценки для другого возможного состояния общества, желательно провести эксперимент типа ЧТО-ЕСЛИ
С моделью, а Не С обществом. Модели Alcohol Use Dynamics И Alcohol Use
Dynamics simple, построенные для получения указанной ранее оценки, находятся в папке Model Examples\Part III.
Постановка проблемы
Характеристики общества в этой модели определяются как интегральные значения параметров, полученных для отдельных его членов. Каждый член общества анализируется с двух точек зрения. Во-первых, с точки зрения алкогольной зависимости, которая рассматривается как четыре различающиеся стадии:
□ Стадия 0. Никогда не употребляет алкоголь — Never used;
□ Стадия 1. Употребляет время от времени — Recreational user;
□ Стадия 2. Алкогольно-зависимый — Addict;
□ Стадия 3. Бросивший пить — Quitter.
Во-вторых, человек изучается с точки зрения продолжительности его жизни (которая, очевидно, зависит от стадии его алкогольной зависимости).
В результате проведения исследований в обществе были получены статистические данные о смертности от возраста для всех людей, вообще не употребляющих алкоголь. Эти данные собраны в таблицу (названную здесь DeathRate), в которой для каждого возраста (первого года жизни, второго, третьего и т. п.) указана интенсивность смертности в процентах от общего количества людей того же возраста. Пример таких данных представлен на рис. 10.8.
Для разных стадий алкогольной зависимости также были получены статистические данные — статистика смертности по годам жизни и статистические данные перехода людей от стадии к стадии. Фактор влияния на смертность выражается в коэффициенте, увеличивающем интенсивность смертности для каждого возраста. Для различных стадий алкогольной зависимости эти коэффициенты имеют разные значения. В данной упрощенной модели эти коэффициенты принимаются константами, не зависящими от возраста для каждой стадии. Очевидно, что для начальной стадии (когда алкоголь вовсе не употребляется) этот мультипликативный коэффициент равен 1.
Статистические данные переходов между стадиями алкогольной зависимости также заданы как интенсивности. Например, переход от предыдущей стадии i к стадии i+1 можно представить как множество пар <период
нахождения в стадии i, интенсивность перехода к стадии i+l>
(рис. 10.9).
В данном исследовании ставится задача анализа влияния акций, результатом которых станет определенный уровень уменьшения тяги к алкоголю, на среднюю продолжительность жизни и материальные потери общества. Результат проведенной акции моделируется тем, что интенсивности перехода межд> стадиями изменяются на некоторый коэффициент (задаваемый в качестве параметра), который, по предположению, будет обеспечивать предполагаемая акция. Материальные потери общества рассчитываются при известных средних ежегодных затратах (долларов в год) на лечение каждого из алкогольно-зависимых его членов, находящихся на конкретной стадии этой болезни.
Описание модели
Агентная модель позволяет легко выполнить описываемое исследование. Как будет определено в главе 15, идея модели, основанной на агентах, состоит в том, что, определив индивидуальное поведение каждого из многих активных объектов независимо, мы затем можем наблюдать в модели, как коллективное поведение всей системы порождается из этих индивидуальных поведений и как интегральные характеристики этого коллективного поведения складываются из индивидуальных характеристик членов коллектива.
Мы ОПИШем здесь упрощенную Модель Alcohol Use Dynamics Simple.
В ней рассматриваются две группы, моделирующие популяции пс 1000 членов каждая. Одна из групп является контрольной, она имеет "естественную" динамику алкогольной зависимости по указанным ранее стадиям (т. е. эта динамика соответствует собранной статистике, отражающей существующие в обществе интенсивности перехода между стадиями по возрастам членов популяции). Другая группа моделирует популяцию, подвергшуюся проведению акции пропаганды. В данной модели исследуется влияние акции, направленной на профилактику начала использования алкоголя и на убеждение пьющих людей в том, что им нужно бросить пить. Результаты акции моделируется уменьшением на некоторый коэффициент, задаваемый как параметр, интенсивностей перехода от фазы 0 к фазе 1 и увеличением на некоторый коэффициент интенсивностей перехода от фазы 2 к фазе 3.
Моделирование состоит в том, что в обеих группах прослеживается полный жизненный путь (от рождения до смерти) каждого из членов групп, и по годам для каждой из двух групп подсчитываются количества членов, находящихся в каждой из четырех стадий алкогольной зависимости (непьющих, умеренно пьющих, зависимых и бросивших). По этим количествам подсчи-тывается полная стоимость необходимого лечения членов обеих групп. Результатом моделирования является разница этих стоимостей в группах, а также увеличение продолжительности жизни (в человеко-годах) в группе, подвергшейся воздействию акции по сравнению с контрольной группой, которая не подвергалась воздействию акции (она моделируется в соответствии с собранной статистикой).
Структура модели
Модель (Model) состоит из двух групп, контрольной (normal) и подвергшейся влиянию акции (intervened). Каждая группа (AgentGroup) включает некоторое число агентов и переменные, в которых будут накапливаться интегральные характеристики группы. Активный объект Agent моделирует
поведение одного члена группы.
■
10.6.4. Активный объект Agent
Этот активный объект включает таблицу, содержащую собранные статистические данные о смертности (DeathRate, см. рис. 10.8), а также пять таблиц, три из которых содержат статистические данные о переходе между стадиями алкогольной зависимости в контрольной группе, а две — статистические данные для членов группы, подвергшейся влиянию акции (рис. 10.10).
Отметим, что в соответствии с Соглашением о неразглашении в этих таблицах в данном демонстрационном примере приведена не реальная статистика, собранная заказчиком этой модели, а лишь некоторые приблизительные данные.
Таблица DeathRate (см. рис. 10.8) для каждого возраста (первого, второго и так далее года жизни) указывает интенсивность смертности (доля смертей в процентах от общего количества людей того же возраста, вовсе не употреблявших алкоголь).
Три таблицы (AlcogolInitiationRate, AlcogolAddictionRate И AlcogolQuitRate) представляют статистические данные о переходах между стадиями алкогольной зависимости (соответственно от 0-й к 1-й, от 1-й ко 2-й и от 2-й к 3-й) для членов контрольной группы с "естественной" динамикой алкогольной зависимости. Так, таблица AlcogolInitiationRate содержит существующую в обществе интенсивность перехода от начальной
стадии алкогольной зависимости (непьющие, Never used) к первой стадии (Recreational user) в зависимости от времени нахождения человека в этой стадии.
Две Другие таблицы, (AlcogolInitiationlntervenedRate И
AlcogolQuitinervenedRate) содержат интенсивности перехода между соответствующими стадиями алкогольной зависимости для тех людей, которые принадлежат группе, подвергшейся влиянию акции.
Кроме таблиц, объект Agent содержит две переменные, birthTime и group. а также два стейтчарта (рис. 10.11). Переменная birthTime хранит модельное
Время "рождения" данного агента. В модели Alcohol Use Dynamics Simple
эта переменная у всех агентов равна 0, она будет использоваться в более сложной модели Alcohol use Dynamics. Переменная group будет содержать указатель на активный объект AgentGroup, включающий агентов. Поэтому тип переменной group определен как AgentGroup с начальным значением null, а в поле Код инициализации окна Код эта переменная проинициализи-рована так:
group = (AgentGroup)getOwner();