Русский
Русский
English
Статистика
Реклама

БСД, или как легко объяснить финансистам их же задачи в терминах машинного обучения

Мне давно нравятся Байесовские сети доверия (БСД) своей наглядностью, что для учебного процесса, согласитесь, очень важно. Как-то в интернете, довольно неожиданно, наткнулся на очень удачную визуализацию простых финансовых задач, выполненную с использованием БСД. Мелькнула мысль вот это, пожалуй, можно будет объяснить не только нашим финансистам, но и филологам-психологам вкупе с врачами!

А началась эта история года три назад, когда руководство ВУЗа поставило нас, преподавателей перед выбором: либо мы по команде Все вдруг! вступаем в цифровую экономику, либо, пожав друг другу руки, тихо расходимся, кто куда сумеет. Причина демографическая яма, экономический кризис, успехи конкурентов и т. д.

Ну, что ж, как говорится, цифровая так цифровая! Тем из нас, у кого за плечами помимо финансового было еще и хорошее инженерное образование, всё это не показалось катастрофой, т.к. давно разжевано в учебниках и монографиях по машинному обучению, искусственному интеллекту, экспертным системам. Однако проблема усугублялась тем, что закон не препятствует поступлению филологов, психологов, врачей и еще кого хотите в финансовую магистратуру. В результате в учебной группе частенько оказывается филологов-психологов половина, а то и более. И вот тут, если вы не способны такой аудитории, что называется между делом, быстро дочитать теорию вероятностей хотя бы до теоремы Байеса, то дальше полный стоп, и никакой цифровизации.

После той находки в интернете какое-то время я целенаправленно перебирал готовые программные продукты, и, в конце концов, остановился на Нетике (Netica). Да, есть Hugin, есть MSBN, и еще с десяток им подобных, но, как всегда: один дорогой, другой сложный, третий и то и другое, и т. д. А вот Netica бесплатная (до 15 узлов переменных), простая, интуитивно понятная, студенты осваивают ее за одно занятие, и вперёд! Строить свою собственную, пусть простую, даже примитивную, но работающую с пинка экспертную систему, которая жужжит и щелкает у вас прямо на занятии.

Но показать лучше, чем рассказать, поэтому далее показываю, что из этого получилось.

Например, строим модель анализа решений инвестора об исполнении европейского опциона колл на акции. Такая БСД может быть для начала совсем небольшой хватит и двух узлов (см. рис. 1). В нашей узлы будут такими:

  • узел Рrice (или Р) описывает случайную переменную текущей цены акции;

  • узел Decision (или D) отображает варианты решения об исполнении опциона.

Узел Р является родительским, поэтому таблицу безусловных вероятностей (ТБВ) его состояния заполняем исходя из того, что инвестору, как лицу, принимающему решения (ЛПР), известно состояние рынка, и он, основываясь на собственном опыте, с вероятностью 60% ожидает, что цена Р акции будет расти и к дате истечения опциона превысит цену его исполнения Х. Он также считает, что вероятность точного совпадения цен Р и Х очень низка (10%), поэтому оставшиеся 30% составляют вероятность того, что цена Р акции окажется ниже цены исполнения опциона Х.

ТБВ для узла РТБВ для узла РРис. 1. Граф (а) и диаграммы вероятностей (б)Рис. 1. Граф (а) и диаграммы вероятностей (б)

Таблицу условных вероятностей (ТУВ) для узла D начнем заполнять исходя из того, что исполнение опциона выгодно инвестору только в том случае, если цена Р акции превысит цену исполнения опциона Х. Однако не будем забывать о том, что если это превышение будет незначительным, то оно не покроет премию, которую инвестор уже уплатил продавцу опциона. Таким образом, уверенность в исполнении опциона может в этом случае быть равна не 100%, а, допустим, 80% (1-я строка ТУВ).

ТУВ для узла DТУВ для узла D

Если P < X (2-я строка ТУВ), то исполнение невыгодно всегда, поэтому отказу от исполнения присваиваем 100% вероятность. Если Р точно равно Х (3-я строка ТУВ), то инвестору практически безразлично исполнять, или не исполнять опцион, поскольку и то и другое дает одинаковый экономический результат. В терминах вероятности такое состояние обычно записывают как 50/50.

После заполнения всех таблиц вероятностей в программе Netica инициализируем построенную БСД, и сразу получаем на стержневой диаграмме нижнего узла распределение полных вероятностей в исходном состоянии модели (рис. 1б). При подстановке значений вероятностей из ТБВ и ТУВ для проверки машины действительно получаем:

D yes = 0,8 0,6 + 0 0,3 + 0,5 0,1 = 0,53;

D no = 0,2 0,6 + 1 0,3 + 0,5 0,1 = 0,47.

Это означает, что модель работает, и ее можно использовать для вероятностных выводов. Как известно, байесовские модели такого типа позволяют делать вероятностные выводы как в прямом (диагностика), так и в обратном (прогнозирование) направлениях.

Рис. 2. Результаты вероятностных выводовРис. 2. Результаты вероятностных выводов

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

На рис.2а в качестве примера прямого вывода показан клик на стержне случайного события P > X. После этого в узле вариантов решений значения полных вероятностей изменились, и соответствуют 80% вероятности исполнения нашего опциона. На рис. 2б показан один из обратных выводов, который показывает, что если опцион исполняется, то значит, с вероятностью 90,6% (но не 100%) цена акции превысила цену исполнения, но при этом всё же остается 9,43% вероятности того, что цена акции будет равна цене исполнения. Самый интересный вывод следует из рис. 2в. Он говорит о том, что отказ от исполнения опциона в построенной модели может произойти с вероятностью 63,8%, при этом отказ вероятен на 25,5% даже если цена акции превысит цену исполнения, и на 10,6% при равенстве цен!

Остается проверить машину используя те же табличные данные, найдем вручную апостериорные вероятности состояния цены акции при условии, что опцион был исполнен (Рис. 2б). Для этого придется вспомнить формулу теоремы Байеса в ее первозданном виде, и подставить в неё всё, что у нас есть:

P(P_{m}|D_{yes})=\frac{P(D_{yes}|P_{m})\times P(P_{m})}{P(D_{yes})}P(P_{m}|D_{yes})=\frac{0,6\times0,8}{0,6\times0,8+0\times0,3+0,5\times0,1}=0,9057P(P_{l}|D_{yes})=0P(P_{e}|D_{yes})=0,0943

Как видим, результаты наших расчетов (с учетом округлений) полностью соответствуют результатам, полученным машиной.

На любые упрёки о допущениях, субъективных вероятностях, всегда отвечаю а вот, пожалуйста, теперь вы эксперт! Введите любые поправки, какие считаете нужными, и, не сходя с места, получите скорректированный результат. И поверьте, еще ни один не ушел без полной сатисфакции.

Модель слишком простая? сейчас же дополните её новыми узлами (переменными). Мало два? сделайте 22, и. т. д.

Источник: habr.com
К списку статей
Опубликовано: 19.06.2021 20:20:08
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Машинное обучение

Финансы в it

Финансовый инжиниринг

Байесовская сеть

Netica

Категории

Последние комментарии

© 2006-2021, personeltest.ru