Байесовская сеть, валюты и мировой кризис

в 16:08, , рубрики: data science, аналитика, банки, брокеры, доллар, машинное обучение, мировой кризис, Мировые валюты, рубль, финансовый кризис, финансы, финансы в IT, экономический кризис

Байесовская сеть, валюты и мировой кризис - 1

Эта статья про модель на основе Байесовской сети, которая описывает котировки мировых валют. Я покажу на основе простой метрики, что паттерн поведения котировок мировых валют за последние два года (с начала 2018 по конец 2019) совпадает с тем, который наблюдался в течении двух лет перед началом острой фазы мирового экономического кризиса 2008 года. Результаты моего мини исследования находятся в согласии с мнением многих экспертов о том, что сегодня мировая экономика находится на пороге масштабного экономического кризиса, который может превзойти кризис 2008 года. Также я опишу как я строил модель, где брал данные и дам свой анализ результатов работы модели на примере котировок рубля. Начну с небольшого количества технических деталей.

n-мерное пространство котировок

Котировки мировых валют за определенный период можно представить в виде набора точек в n-мерном пространстве, где n – это количество рассматриваемых валют. Каждая точка в таком пространстве описывается вектором из n элементов. Элементы этого вектора – это значения котировок n мировых валют на один день. Другими словами, имеем n осей на каждой из которых откладываем величину котировки соответствующей валюты.

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

Валюта (или валюты) из-за чьей котировки наша точка (в n-мерном пространстве) имеет малую вероятность будем называть переоцененной или недооцененной в зависимости от того в какую сторону по оси соответствующей валюты эта точка сдвинулась. Если валюта имеет аномально большую котировку, то будем называть ее переоценённой, если аномально малую, то недооценённой. Зная, что валюта недооценена можно предположить, что вероятность укрепления ее в ближайшее время высока и, наоборот, если валюта переоценена, то вероятен сценарий снижения ее стоимости.

Причины аномальных значений котировок

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

В качестве одной из причин можно привести простой гипотетический пример для рубля. Допустим, в результате политики Центрального Банка России (ЦБ) произошла экономически необоснованная девальвация рубля. В этом случае котировки, которые соответствуют девальвированному рублю, расположатся в n-мерном пространстве в стороне от облака точек, которые наблюдались на предыдущем историческом промежутке. То есть, точки лягут в область пространства, где вероятность наблюдения их мала. Нам остается только найти способ как эту вероятность померить.

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

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

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

На рис. 1 в качестве примера показан граф для пяти валют. Овалы – это валюты, а стрелочками показаны зависимости. Здесь валюта 1 зависит от валюты 2 и валюты 3, валюта 5 от валюты 1 и валюты 4 и т.д. Если описывать этот граф в терминах регрессии, то зависимость означает, что валюта 1 находится в левой части регрессионной модели, а валюта 2 и валюта 3 находится в правой части. Та же логика для валюты 5 и для остальных.

Такой граф можно построить руками если знаешь зависимости или (как я это сделал) определить из данных специальными алгоритмами. После тренировки Байесовской сети на котировках валют получаем граф подобный тому что на рис.1 и также степень влияния одной валюты на другую.

Байесовская сеть, валюты и мировой кризис - 2

Рисунок 1.Пример Байесовской сети.

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

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

Если реальная стоимость валюты меньше ожидаемого и правдоподобие точки мало, то валюта недооценена. И наоборот, если реальная стоимость валюты больше ожидаемого и правдоподобие также мало, то валюта переоценена. Например, если цена доллара на бирже равняется 65 рублям и Байесовская сеть говорит, что правдоподобие такой котировки мало, а ожидаемое значение равно 70 рублей за доллар, то это означает, что рубль переоценен.

Тренировка Байесовской сети

Для тренировки модели я брал котировки валют в конце каждого торгового дня. Данные по мировым валютам бесплатно взял с finance.yahoo.com. После долгой чистки (много отсутствующих значений и выбросов), я выбрал около 100 валют, которые имеют более-менее информативное распределение. То есть, отбросил те валюты, у которых обменный курс регулируется прямыми административными механизмами. У таких валют годами стоит одинаковый обменный курс и лишь изредка девальвируются скачками. Надо сказать, что все валюты так или иначе регулируются ЦБ, или правительством, но есть такие, информативность которых для модели очевидно мала. Таким образом, у нашего n-мерного пространства n равно 100.

После чистки и другой обработки данных, я натренировал Байесовскую сеть в R с помощью пакета bnlearn. Пакет очень удобный с хорошим описанием и быстро работает. Котировки хоть и являются временной последовательностью, но в модель вошли без привязки ко времени. Использовались данные начиная с 2003 года. Для каждого следующего года модель перетренировалась с использованием данных за весь предыдущий период. То есть, 1 января каждого года модель тренируется заново с включением новых данных накопившихся за предыдущий год.

Результаты

Мы на пороге мирового кризиса

На рис. 2 отложен логарифм правдоподобия (log-likelihood) для каждой точки в нашем 100-мерном пространстве котировок мировых валют. По вертикальной оси отложена величина log-likelihood, а по горизонтальной оси — дата. Метрику log-likelihood надо интерпретировать так: чем меньше ее значение, тем меньше вероятность наблюдать данные котировки мировых валют в данный день. Экстремально низкие значение этой метрики могут говорить о неких масштабных изменениях в мировой экономике.

Байесовская сеть, валюты и мировой кризис - 3

Рисунок 2: Вероятности (log-likelihood) наблюдать котировки мировых валют для каждого дня (красные линии). Голубым цветом подсвечена область кризиса 2008, оранжевым цветом – область начала вероятного следующего кризиса

Обратим внимание на область с 2006 по конец 2008 года (область подсвечена голубым цветом на рис. 2). Видим, что минимальные значения log-likelihood в этой области наблюдаются в конце 2008 года. Как мы знаем, в это время протекала острая фаза мирового экономического кризиса, сопровождающаяся крахом ряда финансовых организаций, таких как инвестиционный банк Lehman Brothers.

В течении двух предыдущих лет с 2006 по 2007 мы видим значительные колебания log-likelihood. Если бы мы могли вернуться в прошлое в те года и посмотреть на этот график, то мы бы однозначно сделали вывод, что в мировой экономике происходит что-то экстраординарное. Сегодня мы знаем, что эти всплески на графике в 2006-2007 годах были предвестниками мирового экономического кризиса.

Теперь посмотрим на текущей период с 2018 по конец 2019 (область подсвечена оранжевым цветом на рис. 2). После почти 8 лет относительного спокойствия наша метрика log-likelihood опять также, как и в 2006-2007 годах показывает значительные всплески. Причем в конце 2018 log-likelihood упала значительно ниже того что наблюдалось за два года до криза 2008. Если в середине 2006 года мы наблюдаем всплеск до -5000, то в конце 2018 наблюдаем всплеск в -12000 (экстремально низкие отрицательные значения не показаны на графике).

Это может с большой вероятностью указывать на наличие масштабных изменениях в мировой экономике наподобие или даже значительнее тех, что были за два года до кризиса 2008. Таким образом, если сравнить поведение метрики сегодня с поведением ее в кризис 2008, то можно предположить, что в ближайший год или два мировую экономику ждут большие потрясения, которые, возможно, превзойдут те, что были в 2008.

Немного добавлю ясности к графику на рис. 2. Мы видим, что для каждого года наблюдается устойчивый ниспадающий тренд от начала к концу года. Значения метрики находятся вблизи нуля в начале года по причине того, что модель тренируется заново в начале каждого года и таким образом включает в себя информацию о недавних котировках. К концу года форма распределения котировок в нашем n-мерном пространстве изменяется. Из-за того, что модель ничего не знает о новом распределении, то ожидаемо показывает для них низкие значения log-likelihood.

Это подчеркивает тот факт, что мировая экономика находится в непрерывном движении: появляются новые экономические связи между странами и исчезают старые. То есть, равномерное снижение метрики от начал к концу года – это ожидаемый картина, а сильные всплески и резкий спад указывает на сильные изменения в мировой экономике.

Из-за наличия ниспадающего тренда у log-likelihood трудно применять ее напрямую для оценки того насколько недооценены или переоценены валюты. Для этого я ввел новую метрику, которую назвал z-value. Метрика z-value зависит от трех величин: трансформированной log-likelihood (здесь log-likelihood для конкретной валюты, а не той, что на рис.2), ожидаемого значения и реального значения котировок валют. Таким образом, z-value — это некий индикатор того насколько недооценена или переоценена валюта.

Посмотрим на Российский рубль

Далее я покажу, что z-value относительно хорошо указывает на повышенную вероятность смены тренда. Посмотрим на рис. 3 где зелеными линиями изображены котировки российского рубля. Метрика z-value показана на графике красными и синими точками. Красные точки говорят о том, что рубль переоценен, а синие точки говорят от том, что рубль недооценен. Размер точек зависит от абсолютной величины z-value (чем больше величина, тем больше точка).

Байесовская сеть, валюты и мировой кризис - 4

Рисунок 3: Величины переоцененности (красные точки) и неоцененности (синии точи) для котировок рубля (зеленые линии)

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

На графике видим, что локальные минимумы, как правило, подсвечены красным цветом, а локальные максимумы как правило подсвечены синим цветом. Максимумы и минимумы – это, очевидно, точки смены тренда. Есть области (например, конец 2018 года), где метрика указывает на смену тренда, но действительный тренд остается прежним. Таким образом, метрика z-value указывает на повышенную вероятность смены тренда в ближайшие дни или недели.

Далее я попытаюсь проанализировать поведение ожидаемых значений для котировок рубля (ожидаемая стоимость рубля). Ожидаемое значение котировки– это такое, которое Байесовская сеть ожидает на конкретный день для конкретной валюты исходя из котировок остальных 99 валют. Байесовская сеть знает все о распределении котировок и, следовательно, знает об их ожидаемых значениях.

Посмотрим на рис. 4, где изображены котировки рубля зелеными линиями (как и на предыдущем графике), а светло-зелеными точками — ожидаемые значения котировок, которые дала нам Байесовская сеть. Я попробую дать мою интерпретацию тому как ведут себя ожидаемые значения котировок рубля на примере двух периодов.

Байесовская сеть, валюты и мировой кризис - 5

Рисунок 4: Котировки рубля (зеленые лини) и его ожидаемая стоимость (светло зеленые точки). Голубым цветом подсвечен период, где была популярна carry trade стратегией. Розовым цветом показана область с примечательной активностью Министерства Финансов России.

Посмотрим на период с начала 2015 по конец 2017, который подсвечен голубым цветом на рис. 4. Видим, что ожидаемая стоимость рубля систематически сильно ниже реальной стоимости (светло-зелёные точки выше тёмно-зелёных). В этот период ЦБ отменят валютный коридор, прекращает интервенции и резко увеличивает ключевую ставку с 10% до 17% с плавным последующим снижением обратно до 10% (ключевая ставка на сайте ЦБ). Такая ситуация дала мощный импульс для carry trade операций, что привлекло в страну спекулятивный капитал и укрепило рубль сверх фундаментально обоснованного уровня.

Сarry trade – это торговая стратегия, когда, например, берешь кредит в Японии под 0.1% и кладешь эти деньги на банковский депозит в российском банке под 7%. Через год закрываешь депозит, отдаешь деньги японскому банку вместе с процентами, себе забираешь прибыль, которая складывается из разности процентных ставок между Центральными банками Японии и России.

Теперь посмотрим на 2018 год (область на рис. 4 подсвечена розовым цветом). Здесь я лишь хочу поделиться одним своим наблюдением. С начала года Министерство финансов России (Минфин) скупало иностранную валюту на внутреннем валютном рынке на сумму в среднем по 15-20 миллиардов рублей ежедневно. В конце августа 2018 Минфин закончил эти операции. Если посмотрим на рис. 4, то увидим, что на протяжении всего этого периода (с начала 2018 по август 2018) ожидаемая стоимость рубля была выше реальной и лишь в августе (ровно тогда, когда Минфин прекратил скупку валюты) точки ожидаемой стоимости на графики стали выше реальной (ожидаемая стоимость, соответственно, ниже).

Можно предположить, что в этот период действовали некоторые факторы, обуславливающие приток валюты в экономику страны и на графике это показано высокой ожидаемой стоимостью рубля. Соответственно, Минфин имел возможность изымать из оборота эту валюту без большого ущерба для экономики. Цифры по скупке валюты министерством можно видеть в таблице на сайте ЦБ, пятая колонка (колонка называется “операции Минфина России по покупке (продаже) иностранной валюты на внутреннем валютном рынке*”)

Графики для других валюты

Для тех, кто хочет проанализировать поведение других валют я сделал сайт www.valuenetto.com, где можно посмотреть на метрику z-value и ожидаемые стоимости всех 100 валют. Сайт не предназначен для большого количества пользователей, поэтому может иногда тормозить.

После перехода на сайт, нажмите голубую кнопку верхнем правом углу (там, где мигает подсказка “choose currency”) и выберите валюту, которая вас интересует (можно напечатать название страны в появившемся поле). Дальше появится график, схожий с тем что были на предыдущих двух рисунках. Циферблат в левом верхнем углу показывает текущее значение z-value. Если кликнуть на строку под циферблатом, появиться подробное описание для z-value.

Сайт работает автоматически. В конце каждого торгового дня выгружаются данные по котировкам. У модели спрашивается likelihood для валют из которых вычисляется метрика z-value (показана в виде красных и синих точек на графиках). В конце каждого года модель автоматические тренируется заново с учетом новых данных за предыдущий год.

Еще раз про мировой экономический кризис

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

Один из таких экспертов Мартин Вулф утверждает, что сегодняшний капитализм – это “капитализм рантье” и рента – это главный корень бед мировой экономики. Под рентой понимается избыточный доход того от сдачи в аренду какого-либо ресурса. Таким ресурсом может быть недвижимость или профессиональные качества высококлассного специалиста, который работает по найму за неоправданно высокую зарплату.

Другой эксперт Михаил Хазин высказывает мнение, что существование капитализма возможно только при постоянно расширяющихся рынках и при постоянно увеличивающемся потреблении. Дальнейшее расширение рынков сегодня невозможно по причине того, что в результате глобализации мировые рынки уже более-менее освоены. Увеличение потребление тоже невозможно из-за большой долговой нагрузки потребителей развитых стран. Это означает, что время капитализма закончилось и в ближайшем будущем мир начнет переход к новой экономической модели основанной на других принципах. Переход будет сопровождаться значительным спадом потребление в мире.

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

update: Поправил грамматические ошибки. Спасибо AndyPike и polearnik.

Автор: Максим Стручалин

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js