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

Шаг 6. Создание динамических переменных

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

  1. Приобретениям, совершенным под влиянием рекламы.
  2. Приобретениям, совершенным под влиянием общения потребителей продукта с потенциальными потребителями.

Создайте динамическую переменную AdoptionFromAd

  1. Перетащите элемент Динамическая переменная из палитры Системная динамика на диаграмму типа агентов.
  2. В панели Свойства введите новое Имя переменной: AdoptionFromAd.

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

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

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

  1. Добавьте связи, ведущие от AdEffectiveness и PotentialAdopters к AdoptionFromAd.

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

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

  4. Задайте формулу, согласно которой будет вычисляться значение переменной. В свойствах переменной 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 предлагает пользователям механизм быстрого исправления ошибок, связанных с отсутствующими или избыточными связями. Когда вы зададите указанную формулу, то щелкнув в этом поле вы увидите индикатор ошибки:

  5. Щелкните мышью по индикатору. Вы увидите контекстное меню, состоящее из пунктов Добавить отсутствующую связь для: .... Поочередно щелкнув по всем этим пунктам вы добавите на диаграмму все недостающие связи.

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

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

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

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

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

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

  • Положительная связь означает, что два элемента системной динамики изменяют свои значения в одном направлении, т.e. если значение элемента, из которого направлена связь, уменьшается, значение другого элемента уменьшается тоже. Аналогично, если увеличивается значение одного элемента, то и значение зависимого от него элемента увеличивается тоже.
  • Отрицательная связь означает, что два элемента системной динамики изменяют свои значения в противоположных направлениях, т.e. если значение элемента, из которого направлена связь, уменьшается, то значение другого элемента увеличивается, и наоборот.

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

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

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

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

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

  • Усиливающий цикл с обратной связью воздействует на поток приобретения продукта, вызванный общением с потребителями продукта. Поток приобретения продукта увеличивает численность потребителей продукта, что приводит к росту интенсивности приобретения продукта под влиянием общения с потребителями продукта, и следовательно к росту интенсивности приобретения продукта.

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

  1. Перетащите элемент Цикл из палитры Системная динамика на графическую диаграмму, как показано на рисунке ниже:

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

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

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

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

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

  1. Добавьте еще один идентификатор цикла, как показано на рисунке ниже:

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

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

Как мы можем улучшить эту статью?