Авторы: Арджун Чанда, Джай Агравал, Яохуи Ву, Юэси Ли, Тишан Чжан

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

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

Описание набора данных

Мы использовали набор данных Kaggle, который представляет собой комбинацию мировых новостей и информации о ценах на акции. Заголовки исторических новостей взяты с канала Reddit World News Channel. Пользователи Reddit ранжируют их сверху вниз в зависимости от популярности. Набор данных состоит из 25 столбцов, представляющих 25 самых популярных заголовков за каждый день во фрейме данных. Данные взяты из Yahoo Finance за период с 2008 по 2016 год. Всего имеется 2000 строк, по 1 для каждых данных в диапазоне. Этикетки основаны на фондовом индексе Dow Jones Industrial Average (DJIA).

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

Исследовательский анализ данных

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

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

Следующие два облака слов показывают наиболее часто встречающиеся слова, упомянутые в заголовке для класса 0 (слева) и класса 1 (справа). (Больший размер слова представляет более частое слово)

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

Моделирование

При построении модели мы использовали как Bag of Words (BoW), так и векторизатор TF-IDF. Сначала мы использовали BoW (Bag of Words) и построили модели Random Forest, Naive Bayes и AdaBoost. Затем мы использовали векторизатор TF-IDF, чтобы перестроить эти три модели, чтобы получить в общей сложности 6 моделей. Для BoW именно Random Forest дал наилучшую производительность, и соответствующая точность составляет 0,85. Для TF-IDF Наивный Байес дал наилучшие результаты. Точность модели составила 0,8518.

Из Precision and Recall мы видим, что модель имеет очень хорошие характеристики как в классе 0, так и в классе 1.

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

Пример прогнозирования модели

Выше показана совокупность 25 самых популярных заголовков от 6 июня 2022 года. Чтобы продемонстрировать нашу модель, мы добавим эти заголовки и сравним их с фактическими результатами фондового рынка.

После ввода данных в нашу модель вы можете видеть из приведенных выше результатов, что модель предсказывает, что фондовый рынок будет расти (обозначено цифрой 1). Это здорово, потому что в тот день фондовый рынок действительно вырос, как показано ниже.

Ключевые результаты

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

Проблемы

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

Заключение

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

Репозиторий проекта на Github можно найти здесь: https://github.com/ArjunChanda/Stock-Market-Prediction-using-News-Headlines.