Продюсер: Бинцин (Клэр) Ли, Фан Хун, Керуи Чен, Тинъи Хун, Юэцзя Фэн

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

И. Резюме проекта

Цель: построить модели временных рядов для Нью-Йоркской фондовой биржи, чтобы прогнозировать завтрашнюю цену акций в непрерывном формате и построить линию тренда для дальнейшего понимания. Кроме того, мы извлекаем бизнес-идеи из различных прогнозов моделирования.

Данные. Наш набор данных для этого проекта взят из конкурса Kaggle под названием Нью-Йоркская фондовая биржа. Для нашего анализа мы в основном использовали два файла данных. Один из них — это данные о ценах на акции, а другой — фундаментальные данные, которые представляют собой годовые финансовые данные компании. Ссылка на этот конкурс ​https://www.kaggle.com/dgawlik/nyse

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

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

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

Ссылка на Github: https://github.com/yjiafeng117/DataMiningFinalProject

II. Сбор данных

Наш набор данных для этого проекта взят из конкурса Kaggle под названием «Нью-Йоркская фондовая биржа». В этом наборе данных есть четыре разных источника данных: price.csv, Prices-Split-Adjusted.csv, Securities.csv иОсновные данные.csv. Среди всех источников данных наша команда будет в основном изучать цены и фундаментальные данные.csv, чтобы найти взаимосвязь между ценами на акции и финансовыми показателями компании и оценить будущие тенденции цен на акции.

Вот краткая презентация двух наших основных наборов данных:

III. Фундаментальный анализ — линейная регрессия

А. Предварительная обработка данных

  1. Функции и ярлыки

В качестве независимых переменных мы использовали признаки из «foundation.csv». Файл содержит финансовые показатели 348 компаний с 2010 по 2016 год. Имеется 75 следующих признаков:

Для зависимой переменной Y мы рассчитали среднюю цену акций для каждой компании за год из таблицы «prices-split-adjusted.csv», поскольку переменные X основаны на годовых показателях. А затем две таблицы были объединены вместе по двум индексам «Тикер» и «Год».

2. Проверка коллинеарности

Для линейной модели одним из предположений является отсутствие очевидной корреляции между независимыми переменными, но для финансовых индексов мы можем найти такую ​​взаимосвязь между ними. Итак, необходимо проверить коллинеарность данных. При вычислении коэффициента корреляции Пирсона мы удалили 15 переменных, коэффициенты которых превышают 90%, следующим образом:

Коллинеарность внутри X-переменных

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

  1. Обычная модель наименьших квадратов (OLS)

В статистике OLS — это тип линейного метода наименьших квадратов для оценки неизвестных параметров в модели линейной регрессии. МНК выбирает параметры линейной функции из набора независимых переменных по принципу наименьших квадратов: минимизация суммы квадратов разностей между наблюдаемыми зависимыми переменными (значениями прогнозируемых переменных) в данном наборе данных и прогнозируемыми по линейной функции. Мы обучаем модель OLS, подбирая X и Y. R-квадрат всей модели равен 0,6, что означает 60 процентов движений цены ценной бумаги, которые можно объяснить движениями индексированного эталона. Однако мы хотели выяснить, какие индексы будут более важными при принятии инвестиционных решений. P-значения могут рассказать нам об этом. Для тех переменных со значением P менее 0,05 мы можем сказать, что они оказывают значительное влияние на цель, а именно:

P-значения ‹ 0,05 в модели OLS

Кроме того, ковариация скажет нам, является ли это положительным влиянием или отрицательным.

2. Модель PanelOLS

Модель Anthor, которую мы пробовали, называется PanelOLS. В нем использовалась та же формула, что и в OLS, но его удивительная особенность заключается в том, что он может автоматически группировать по сущностям и времени. Мы получаем более высокое значение R-квадрата для модели PanelOLS. Это имело смысл, потому что цены на акции имеют такую ​​природу, что они меняются в зависимости от сущностей и времени. Мы получили несколько разных P-значений для независимых переменных следующим образом:

P-значения ‹ 0,05 в модели PanelOLS

С. Результаты

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

Наш прогноз показывает ту же тенденцию, что и истинные метки.

IV. Модели временных рядов

А. Авто АРИМ

  1. Предварительная обработка данных

В этом наборе данных «prices-split-adjusted.csv» есть несколько столбцов, включая дату, символ, открытие, закрытие, минимум, максимум и объем.

  • открытие и закрытие: начальная и конечная цена акции.
  • максимум и минимум: максимальная и минимальная цена акции.
  • объем: количество акций, купленных или проданных за день.

Сначала мы загружаем набор данных о ценах на акции, и данные необходимо преобразовать в формат, содержащий индекс временных рядов, для использования в модели Auto Arima. Поэтому мы сортируем столбец «дата» и устанавливаем его в качестве индекса нашего набора данных. Затем в этом блоге мы собираемся предсказать будущую цену акций Microsoft, поэтому мы извлекаем данные со значением MSFT в столбце «символ». В то же время мы берем столбец «закрытие» в качестве целевых переменных, потому что цена закрытия может определить, будет ли это прибыль или убыток. На следующем рисунке показана историческая цена акций Microsoft:

После этого мы разделяем предварительно обработанные данные на набор данных для обучения и набор данных для проверки, в котором набор данных для обучения составляет 75% предварительно обработанных данных, а набор тестовых данных составляет 25% от предварительно обработанных данных. Теперь эти два набора данных готовы для проверки производительности модели Auto Arima.

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

Arima известен как популярный инструмент для прогнозирования данных временных рядов. Прежде чем реализовать модель Арима, нам нужно сначала сделать ряд стационарным и определить значения параметров. Auto ARIMA делает эту задачу действительно простой, а процессы подготовки данных и настройки параметров занимают очень много времени. Эта модель способна автоматически находить наилучшее сочетание параметров на основе информационных критериев (AIC и BIC), которые оценивают качество модели. В этой модели есть несколько важных параметров, и ниже приведены значения параметров и значения, которые мы для них установили.

  • p: порядок авторегрессионной (AR) модели, которая будет включать прошлые значения. Мы используем `start_p=1` и `max_p=3` и позволяем модели искать наилучшее «p».
  • г: степень различия. Мы используем `test="adf"`, который является adftest, чтобы найти оптимальное "d".
  • q: порядок модели скользящей средней (MA). Мы используем `start_q=1` и `max_q=3` и позволяем модели искать лучший «q».
  • P, D и Q: описывают те же ассоциации, что и p, d и q, но соответствуют сезонным компонентам модели. Мы используем `start_P=0` и `D=1` для поиска лучших значений.
  • m: количество наблюдений за сезонный цикл. m = 12 (для месячных данных это предполагает годовой сезонный цикл)
  • сезонный: заставляет модель обрабатывать сезонные данные. Мы установили его как «Истина», потому что цена акций имеет сезонные колебания.

3. Результаты

Чтобы проверить производительность модели Auto Arima, можно рассчитать среднеквадратичную ошибку (RMSE), используя прогнозы и фактические значения в наборе проверки. Более низкое значение RMSE подразумевает лучшую точность. RMSE модели Auto Arima близок к 7:

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

Б. LSTM

  1. Предварительная обработка данных

Чтобы сравнить две модели, мы снова использовали историческую цену акций MSFT. Мы разделяем данные на 75% и делаем прогноз на основе тестовых данных. Чтобы сделать наши данные в одном масштабе, мы использовали MinMaxScaler из sklearn для уменьшения наших данных с 0 до 1. Также мы создаем структуру данных с 60 временными шагами и 1 выходом и изменяем ее форму, чтобы она соответствовала входной форме трехмерного тензора Keras, которая включает размер пакета. , временной шаг и входное измерение.

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

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

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

  • Ворота забыть удаляют информацию, которая больше не требуется модели.
  • Ворота input добавляют информацию к состоянию ячейки.
  • Ворота output выбирают информацию, которая будет отображаться в качестве вывода.

Теперь давайте посмотрим, как данные временных рядов реализованы в LSTM.

1-й, импорт библиотек и пакетов Keras.

2-й, инициализация RNN с использованием последовательной модели.

3-й, добавление с 1-го по 4-й слой LSTM с 50 единицами и Dropout, чтобы избежать переобучения.

4-й, добавление выходного слоя с использованием плотного слоя.

5-е, компиляция RNN с оптимизатором «adam»

6-е, подгонка RNN к обучающим данным с эпохой 10

7-е, получение реальной цены акций тестовых данных

8-е, получение прогнозируемой цены акций тестовых данных

9-е, визуализация результатов

3. Результаты

RMSE модели LSTM составляет 5,85, а график изменения цены акций показан ниже. В целом мы считаем, что RMSE будет уменьшаться по мере увеличения эпохи при обучении данных.

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

С. Оценка модели

Следующие результаты показывают, как модели LSTM и Auto ARIMA работают при прогнозировании цены акций через 441 день (без конкретной причины, мы просто выбираем случайный день. Мы также можем прогнозировать акции через один день или через неделю). Каждая модель предсказывала цену акций для девяти продуктов, используемых в качестве наборов данных, что приводило к значению ошибки в RMSE. Чтобы сравнить модели и их значения ошибок, был проведен t-критерий, сравнивающий, существует ли значительная разница между моделями. Разница между моделями для каждого отдельного продукта, общая разница в ошибке, а также p-значение из t-критерия представлены в таблице 4.1. Как для отдельных продуктов, так и для общей разницы в ошибках отрицательное значение в таблицах указывает на то, что модель LSTM имеет меньшую ошибку, а положительное значение указывает на то, что модель ARIMA имеет меньшую ошибку.

В нашем сценарии H0 означало, что модель LSTM имеет меньшую ошибку прогнозирования, чем модель Auto ARIMA, а Ha (альтернативная гипотеза) — модель LSTM имеет такую ​​же маленькую или большую ошибку прогнозирования, как модель ARIMA.

В следующей таблице показаны результаты для сценария прогнозирования:

Полученное нами значение P равно 0,02 (‹0,05), что указывает на то, что модель LSTM в этом сценарии прогнозирования действительно имеет более высокую точность, чем модель Auto ARIMA.

В. Заключение

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

Кроме того, мы могли бы использовать данные для расчета процентного изменения запасов, чтобы увидеть, как акции падают и падают. Мы также строим график доходности акций, чтобы акционеры могли знать, когда лучше всего покупать те или иные акции. Что еще более важно, мы построили кривые цен акций Google и Microsoft с 2010 по 2017 год, нормализовав данные (путем деления каждого элемента временного ряда всех временных рядов на первый элемент). Компании могут разрабатывать стратегии, чтобы превзойти своих конкурентов. Акционеры могут сравнивать акции разных компаний и принимать более взвешенные решения о покупке.

Справочник

https://github.com/bashtage/linearmodels/tree/master/examples

https://www.machinelearningplus.com/time-series/arima-model-time-series-forecasting-python/

https://towardsdatascience.com/inferential-statistics-series-t-test-using-numpy-2718f8f9bf2f

https://pdfs.semanticscholar.org/e58c/7343ea25d05f6d859d66d6bb7fb91ecf9c2f.pdf

https://github.com/krishnaik06/Stock-Price-Prediction-using-Keras-and-Recurrent-Neural-Networ