Дипломная работа: Количественный рекуррентный анализ в обнаружении экстремальных событий в социальных сетях

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

В R эта функция выглядит как на рисунке 19:

Рисунок 19. Функция RQA на языке R

takens - вместо указания time.series, embedding.dim и time.lag пользователь может указать непосредственно векторы Такенса.

time.series - исходный временной ряд, из которого выполняется реконструкция фазового пространства.

embeddingDim - целое число, обозначающее размерность, в которую мы будем встраивать временные ряды.

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

radius - максимальное расстояние между двумя точками фазового пространства, которое следует рассматривать как повторение.

Lmin - минимальная длина диагональной линии для учета в RQA. По умолчанию lmin = 2.

Vmin - минимальная длина вертикальной линии, которая должна учитываться в RQA. По умолчанию vmin = 2.

distanceToBorder - чтобы избежать эффектов границы, точки distanceToBorder вблизи границы матрицы повторения игнорируются при вычислении параметров RQA. По умолчанию, distanceToBorder = 2.

save.RM - логическая переменная. Если TRUE, то матрица повторения сохраняется как разреженная матрица.

doPlot - логическая переменная. Если TRUE, то отрисовывается рекуррентный график. Однако построение рекуррентной матрицы требует больших вычислительных мощностей.

После применения функции на выход выдаётся рекуррентная матрица, разные меры RQA: RR, DET, LAM, RATIO, Lmax, Lmean, DIV, Vmax, Vmean, ENT, TND и рекуррентный график, то есть все необходимые для анализа данные.

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

Рассмотрев все необходимые инструменты для работы с рекуррентным анализом, начнём работать с ним.

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

Некоторые исследователи уже демонстрировали возможности количественного рекуррентного анализа отличать критические события на финансовых рынках от нормальных состояний. Попробуем рассмотреть экономический пузырь с помощью RQA. В данном примере используется промышленный индекс Доу-Джонса (DJI) 1929 года (используемые данные взяты с yahoo.finance.com).

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

Прежде всего, посмотрим на крах DJI 1929 года (рисунок 20). Данные DJI были взяты таким образом, чтобы крах случился ровно посредине. Размер окна - 250, размерность и задержка - 1, радиус - 0,1. Параметры вложения были выбраны опытным путем, так как наиболее подходят для расчета показателей в динамике для нашей цели.

Рисунок 20. Крах промышленного индекса Доу-Джонса

Рассчитанная мера LAM (рисунок 21) начинается с горизонтальной координаты x = 250, потому что был принят во внимание размер окна (250 точек). Таким образом, каждая точка LAM точно соответствует точкам DJI.

Рисунок 21. Показатель LAM во время краха промышленного индекса Доу-Джонса

Согласно рисунку 21, мера LAM количественно оценивает режим нормального функционирования рынка. Снижение показателя указывает на нестабильность рынка, чему способствуют хорошие торговые ожидания и, как следствие, повышение волатильности. Горизонтальная 3 координата x = 1355 указывает на границу нестабильности, проходя через которую, крах неизбежен. Пузырь сформировался, и возникновение краха - лишь вопрос времени. Эту границу мы можем назвать «критической точкой». LAM также показывает время полного расслабления рынка. Период между критической точкой и полным расслаблением рынка, который содержит крах и экономическую депрессию, мы определяем как «критический период».

После 04.05.1928 (х = 1156) LAM начал падать, что указывает на начало нестабильности. Критическая точка появилась 26.03.1929 (х = 1355). Таким образом, LAM подал сигналы за 342 и 145 торговых дней до краха (в году 250 торговых дней). Этого времени более чем достаточно для принятия мер по устранению «взрыва пузыря».

Точка полного восстановления рынка наступила 18.08.1932 (х = 2207), поскольку сегмент, охваченный окном (х = 2207 - 2457), уже функционировал в своем нормальном режиме. Поэтому полное восстановление считается с первой точки данного окна.

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

Таблица 4. Описание рынка и меры LAM для промышленного индекса Доу-Джонса

Нормальное состояние

Начало не-стабильности

Критическая точка

Крах

Минимум

Полное восстановление

Коорди-ната «x»

0-1155

1156

1355

1500

1700

2207

Дней до краха

-

342

145

-

-

-

LAM

0.980-0.992

0.980

0.969

0.925

0.898

-

%LAM

-

-

1.122

5.612

8.367

-

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

Таблица 5. Значение меры LAM для разных рынков

Нормальное состояние

Начало не-стабильности

Критическая точка

Крах

Промышленный индекс Доу-Джонса 1987

Дней до краха

-

341

161

-

LAM

0.989-0.985

0.985

0.964

0.932

%LAM

-

-

2,178

5.380

Нью-Йоркская фондовая биржа 1987

Дней до краха

-

342

145

-

LAM

0.995-0.991

0.991

0.966

0.931

%LAM

-

-

2.523

6.054

S&P 1987

Дней до краха

-

352

150

-

LAM

0.989-0.976

0.976

0.963

0.932

%LAM

-

-

1.332

4.721

Индекс Hang Seng 1994

Дней до краха

-

210

20

-

LAM

0.989-0.981

0.981

0.966

0.957

%LAM

-

-

1.529

2.509

Индекс NASDAQ 2000

Дней до краха

-

343

11

-

LAM

0.989-0.977

0.977

0.937

0.925

%LAM

-

-

4.094

5.322

Согласно представленной таблице мы можем утверждать, что:

· Период нестабильности начинается гораздо раньше, чем крушение. В нашем случае это начиналось с 210 (Индекс Hang Seng 1994) до 352 (S&P 1987) дней назад. Этого времени более чем достаточно, чтобы обеспечить денежно-кредитное регулирование и взорвать пузырь

· Критическая точка возникает ближе к краху, со 161 в 1987 году (Промышленный индекс Доу-Джонса) до 11 в 2000 (NASDAQ) дней назад. Это означает, что в настоящее время происходит быстрая консолидации капитала и инвестиций в прибыльный рынок

· Отклонения LAM от нормального состояния до критического разнятся в разных случаях, потому что волатильность различных рынков в разное время не одинакова.

Таким образом, нельзя предсказать точное время краха с помощью RQA, но, во-первых, данный метод прекрасно подходит для анализа рынков, а во-вторых, можно определить сам факт того, что через некоторое время (не более года) произойдёт крах рынка.

Как и прежде, используемые данные взяты из открытых данных Yahoo Finance. На рисунке 22 представлено как выглядит временной ряд для биткоина на сегодняшний день.

Рисунок 22. Временной ряд курса биткоина за весь период

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

Из-за сложности получения временного ряда для тегов биткоина в следующем примере будет приводиться набор данных всего за сто дней, охватывающих пик цены данной валюты. Чтобы сравнение рекуррентного анализа к двум областям было точнее, то и для данного примера возьмём всего 100 дней начиная с 1 ноября 2017 года.

В таком случае временной ряд выглядит как на рисунке 23:

Рисунок 23. Временной ряд курса биткоина за 100 дней с 1 ноября 2017 года

Воспользовавшись библиотекой python для расчётов, получаем следующий набор значений для показателя LAM, которые указаны в таблице 6.

Таблица 6. Мера LAM для курса биткоина за период в 100 дней

Нормальное состояние

Начало не-стабильности

Критическая точка

Крах

Биткоин курс

Дней до краха

-

29

8

-

LAM

0.995-0.983

0.983

0.971

0.942

Как видно из приведённых данных, если рассматривать данный рынок уже после событий, то рекуррентный количественный анализ способен предсказать крах за 8 дней до его начала и начало фазы нестабильности за месяц. Теперь проверим, как себя проявит RQA на следующем примере с текстовыми данными.

Изначально предполагалась использование третьего способа получения текстовых данных с Twitter, а именно использование программы Mozdeh, но из-за обстоятельств пришлось воспользоваться вторым способом, при котором данные взяты из онлайн-платформы (бесплатной), которая занималась биткоином, и по счастливой случайности их интересовало и количество хэштегов по данной тематики в одной из популярных социальных сетей. Временной ряд представлен на рисунке 24.

Рисунок 24. Временной ряд количества твиттов с хэштегом «биткоин»

На самом деле, если сравнить с временным рядом курса биткоина, то они очень схожи, хотя реакция пользователей слегка задерживается на 1-2 дня и иногда несколько чрезмерна.

Возьмём тот же временной промежуток: 100 дней начиная с 1 ноября 2017 года. И затем построим фазовый портрет и рекуррентную диаграмму, основывающуюся на данном временном ряде. Они представлены на рисунке 25.

Рисунок 25. Фазовый портрет (слева), рекуррентная диаграмма (справа) для временного ряда из рисунка 24

Возможно, из-за малого количества данных, но на рекуррентной диаграмме отчётливо заметно затухание в правом нижнем и левом верхнем углах, что означает нестабильность и возможное наличие сдвига, критической точки для данной модели.

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

Рассчитаем меру LAM, с которой работали в предыдущих примерах. Как и ранее воспользуемся библиотекой python и затем построим график (рисунок 26) для показателя замирания, который представлен ниже.

Рисунок 26. Показатель LAM для хэштега «биткоин» за период в 100 дней

На основе данного графика построим таблицу с показателем замирания для разных состояний системы (таблица 7).

Таблица 7. Мера LAM для хэштега биткоин за период в 100 дней

Нормальное состояние

Начало нестабильности

Критическая точка

Крах

Биткоин хэштег

Дней до краха

-

35

15

-

LAM

0.998-0.979

0.979

0.956

0.905