Шаг 6. Создание вспомогательных переменных

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

  1. Приобретениям, совершенным под влиянием рекламы.
  2. Приобретениям, совершенным под влиянием общения потребителей продукта с потенциальными потребителями.
 Создайте вспомогательную переменную AdoptionFromAd
  1. Перетащите элемент Вспомогательная переменная  из палитры Системная динамика на диаграмму класса активного объекта.
  2. На странице Основные панели Свойства введите новое Имя переменной: AdoptionFromAd.

Теперь мы хотим задать формулу для этой вспомогательной переменной. Влияние рекламы моделируется следующим образом: некий постоянный процент потенциальных клиентов AdEffectiveness всё время становятся клиентами. Их доля в AdoptionRate равна, соответственно, PotentialAdopters*AdEffectiveness.

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

 Добавьте связи от двух переменных к зависимой от них AdoptionFromAd

  1. Добавьте связи, ведущие от AdEffectiveness и PotentialAdopters к AdoptionFromAd
  1. Вы можете изменить внешний вид связи (а именно - радиус ее выпуклости), перетащив мышью маркер, находящийся посередине связи (чтобы он стал виден, связь вначале надо выделить щелчком мыши). Пусть связь выглядит, как на приведенном ниже рисунке:

Вы могли заметить, что эта связь выглядит немного иначе, чем та, что ведет от TotalPopulation к PotentialAdopters. Связи с переменными, упоминающимися в начальных значениях накопителей, рисуются пунктирными линиями, в то время, как все остальные - сплошными. 

  1. Добавьте еще одну связь, ведущую от AdEffectiveness к AdoptionFromAd.
  1. Задайте формулу, согласно которой будет вычисляться значение переменной. В свойствах переменной AdoptionFromAd, в поле AdoptionFromAd = введите:  AdEffectiveness*PotentialAdopters (Вы можете воспользоваться Мастером подстановки кода).

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

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

Количество контактов человека в единицу времени (а под единицей времени в нашей модели подразумевается год) задается параметром ContactRate. Запишем ContactRate в качестве первого сомножителя нашей формулы.

Количество людей, которые владеют продуктом, и могут убеждать остальных приобрести его, в нашей модели в каждый момент времени будет определяться значением накопителя Adopters, и поскольку каждый потребитель будет общаться в единицу времени с ContactRate людей, то количество контактов в единицу времени у всех потребителей продукта будет равно Adopters*ContactRate

Теперь нужно учесть тот факт, что в результате общения не все те, кто еще не купил этот продукт, сразу побегут его покупать - если кого-то доводы своего знакомого, успешно пользующегося изучаемым нами продуктом, могут убедить, то кто-то может остаться к ним равнодушным, и своего решения не покупать продукт не изменить. Поэтому мы добавим в нашу формулу еще один сомножитель AdoptionFraction, задающий силу убеждения владельцев продукта, определяющую ту долю контактов, которая приводит к продажам продукта. Таким образом, наша формула приобретает вид Adopters*ContactRate*AdoptionFraction.

И наконец, нам нужно учесть, что на данный момент наша формула не учитывает того, что владельцы продукта будут общаться как с потенциальными потребителями, так и с теми, кто уже владеет продуктом. И общение с последними ни к каким новым продажам продукта не приведет. Поэтому нам нужно учесть в нашей формуле и вероятность того, что тот, с кем общался потребитель, ещё не владеет интересующим нас продуктом. Эта вероятность задается так: PotentialAdopters/TotalPopulation.

В итоге наша формула будет выглядеть следующим образом:  Adopters*ContactRate*AdoptionFraction*PotentialAdopters/TotalPopulation 

Именно столько потенциальных потребителей будут приобретать продукт в единицу модельного времени под воздействием общения с владельцами этого продукта.

 Создайте вспомогательную переменную AdoptionFromWOM
  1. Аналогично создайте еще одну вспомогательную переменную.
  2. Назовите ее AdoptionFromWOM.
  3. Задайте для этой переменной следующую формулу:
    ContactRate * AdoptionFraction * PotentialAdopters * Adopters / TotalPopulation
  4. Вам может показаться утомительным рисовать связи для задействованных в формулах переменных и параметров. Чтобы облегчить этот процесс, AnyLogic предлагает пользователям механизм быстрого исправления ошибок, связанных с отсутствующими или избыточными связями. Когда Вы зададите указанную формулу, то щелкнув в этом поле Вы увидите индикатор ошибки:
  1. Щелкните мышью по индикатору. Вы увидите контекстное меню, состоящее из пунктов Добавить отсутствующую связь для: ... .  Поочередно щелкнув по всем этим пунктам Вы добавите на диаграмму все недостающие связи.

В итоге у Вас должна будет получиться диаграмма следующего вида:

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

 Задайте формулу потока

  1. Выделите поток AdoptionRate щелчком мыши.
  2. Перейдите на страницу Основные панели Свойства.
  3. Введите правую часть формулы, по которой будет вычисляться значение потока, в поле AdoptionRate= :
    AdoptionFromAd + AdoptionFromWOM
  4. Добавьте соответствующие связи от этих переменных к потоку AdoptionRate.


Теперь мы закончили создание нашей модели. Диаграмма накопителей и потоков должна выглядеть как на приведенном ниже рисунке:


Связи имеют полярность, положительную или отрицательную:

Вы можете добавить рядом со связями метки, которые будут обозначать полярность этих связей. Обычно полярность обозначается с помощью символов +/- рядом со стрелкой связи. Таким образом Вы можете показать, как зависимая переменная изменяет свое значение при изменении значения независимой переменной.

 Проставьте полярности у связей

  1. Чтобы отобразить у связи значок полярности, выделите связь и выберите нужный символ (+ или -) из группы кнопок Полярность на странице свойств связи:
  2. Здесь же при желании можно изменить и цвет линии связи, а также ее толщину.

В нашей модели все связи, за исключеинем той, что ведет от TotalPopulation к AdoptionFromWOM, имеют положительную полярность.

Можно увидеть, что наша модель содержит два цикла с обратной связью: один компенсирующий и один усиливающий.

 Добавьте идентификатор цикла, вызывающего насыщение рынка

  1. Перетащите элемент Цикл  из палитры Системная динамика на графическую диаграмму, как показано на рисунке ниже:
  1. Перейдите на страницу Основные панели Свойства, чтобы изменить свойства цикла. 
  2. Задайте Направление цикла - этот цикл направлен Против часовой стрелки
  3. В поле Текст введите краткое описание этого цикла, объясняющее его смысл: Market Saturation (или Насыщение рынка). Этот текст будет показан на презентации.
  4. Из группы кнопок Тип выберите символ, который будет отображаться для данного цикла. Выберите символ B (обозначающий Balancing, то есть компенсирующий цикл).

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

Цикл является:

 Добавьте идентификатор для цикла, задающего общение людей друг с другом

  1. Добавьте еще один идентификатор цикла, как показано на рисунке ниже:
  1. Этот цикл соответствует общению людей друг с другом. Он является усиливающим, поэтому выберите для него символ R (обозначающий усиливающий, Reinforcing цикл) 
  2. Задайте Word of Mouth (или Устное общение) в качестве текста.
  3. Задайте Направление цикла - этот цикл направлен По часовой стрелке
В итоге Ваша диаграмма должна выглядеть следующим образом:


          Шаг 5. Задание начальных значений накопителей

          Шаг 7. Настройка запуска модели