При инвестировании в акции полезно узнать о корреляции между акцией и другой акцией при планировании нашей торговой стратегии. Например, известно, что акции AAPL (Apple) имеют положительную корреляцию с акциями MSFT (Microsoft). Это означает, что мы можем ожидать увидеть аналогичное направление изменения цен между двумя акциями. Когда акции AAPL демонстрируют восходящий тренд в определенный период времени, MSFT в целом также имеет тенденцию к росту.

В этой статье я собираюсь продемонстрировать простой рабочий процесс для выполнения корреляционного анализа данных о запасах AAPL и MSFT, чтобы проверить приведенный выше факт. Корреляционный анализ будет проводиться с использованием Python.

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

Необходимые библиотеки Python

  1. yFinance - https://pypi.org/project/yfinance/
  2. Панды - https://pandas.pydata.org/
  3. Numpy - https://numpy.org/

Github

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

Корреляционный анализ складских данных

1. Импорт библиотеки и сбор данных

Во-первых, мы начинаем с импорта всех необходимых библиотек и получаем данные о запасах AAPL и MSFT. с помощью библиотеки yFinance. Библиотека yFinance - это библиотека с открытым исходным кодом, которая позволяет нам получать данные об акциях от Yahoo Finance.

Строка 1–3: Импортируйте библиотеки Pandas, Numpy и yFinance.

Строка 5–6: Создайте список тикеров (например, MSFT и AAPL). Используйте метод yFinance download, чтобы получить данные об акциях MSFT и AAPL с 7 июня 2020 года по 7 июня 2021 года (данные за один год).

yFinance вернет данные об акциях в формате фрейма данных.

2. Визуализация изменений цен на акции и доходности

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

Когда мы наблюдаем сгенерированный линейный график выше, совершенно очевидно, что модель движения цены аналогична между AAPL и MSFT.

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

Строка 1: Вычислите логарифмическую отдачу для AAPL и MSFT с помощью метода Numpy log и присвойте результаты переменной, return.

Строка 2: удалите нулевые значения с помощью метода dropna.

Строка 3: Создайте частичные графики логарифмической доходности для AAPL и MSFT.

Из приведенных выше подзаголовков мы можем наблюдать модель волатильности акций AAPL и MSFT с довольно высокой степенью сходства. Как правило, периоды высокой волатильности AAPL сопровождаются MSFT.

Мы также можем использовать метод Pandas scatter_matrix для визуализации модели волатильности как AAPL, так и MSFT с помощью гистограмм.

3. Регрессия методом наименьших квадратов (МНК)

Теперь мы готовы перейти к выполнению обычного регрессионного анализа методом наименьших квадратов (OLS) для доходности акций AAPL и MSFT. Мы будем использовать методы Numpy polyfit и polyval для достижения этой цели.

Строка 1: используйте метод Numpy polyfit, чтобы выполнить регрессию OLS для возвращаемых значений AAPL и MSFT и присвоить результат переменной regression.

Строка 3: создайте диаграмму рассеяния, чтобы показать образец распределения возвращаемых значений AAPL и MSFT.

Строка 4. Добавьте к диаграмме рассеяния линию регрессии.

Наклон линии регрессии положительный, и это подтверждает постулат о положительной корреляции AAPL и MSFT, как упоминалось выше.

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

Начнем с более простой статической корреляции. Это можно сделать с помощью встроенного метода corr фрейма данных.

Статическая корреляция APPL и MSFT составляет 0,707269.

Теперь мы перейдем к скользящей корреляции с использованием встроенного метода Rolling фрейма данных.

Строка 1: Рассчитайте скользящую доходность APPL с размером окна 20 дней (около 1 месяца торговых дней) и ее корреляцию с доходностью MSFT. Наконец, нанесите результат на линейный график.

Строка 2: нанесите значение статической корреляции в виде горизонтальной линии на тот же рисунок диаграммы.

Из графика выше видно, что корреляция между AAPL и MSFT со временем меняется, но всегда положительная. Мы можем сделать вывод, что корреляция между AAPL и MSFT сильно положительно коррелирована.

Заключение

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

Желаю вам приятного чтения этой статьи.

Ссылка: https://www.investopedia.com/terms/c/correlation.asp

Больше контента на plainenglish.io