Найти в Дзене

Анализ стоимости Биткоина

Очередное решение задачи с DataCamp

Задача:

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

-2

нам предоставили три файла.

1. данные по стоимости и объема продаж биткоина:

date -дата продажи
open - цена открытия
high - максимальная цена внутри дня
low - минимальная цена внутри дня
close - цена закрытия
volume - объем продаж

-3
есть пропуски, но их мы отработаем попозже
есть пропуски, но их мы отработаем попозже

2. Аналогичные данные и по индексу SP500

пропусков нет.
пропусков нет.

Третий файл - это цена за золото и индекс инфляции в США. Данные представлены только по месяцам

-6

Поставленная задача:

1. Как цена Биткоина коррелирует с индексом SP 500 и ценой на золото?
2. Проанализируйте доходность и профиль волатильности биткоина. Считаете ли вы, что это может помочь улучшить производительность портфеля? Верите ли вы, что биткоин можно использовать в качестве средства защиты от инфляции?
3. Финансовый директор стремится снизить волатильность в фонде. Изучите возможность создания портфеля с использованием некоторых или всех этих активов. Сделайте рекомендацию, которая минимизирует общий риск.

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

гораздо проще чем в excel. Всего две строчки
гораздо проще чем в excel. Всего две строчки
у нас есть пропуски. Их много и удалить их не наш метод.
у нас есть пропуски. Их много и удалить их не наш метод.

Взглянем на цену открытия биткоина. Бокс-плот

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

Как видим из графика - цена открытия постоянно растет, поэтому было бы ошибкой заполнять пропуски средним значением или медианной. Поэтому заполнять пропуски будем предыдущим значением. Данный подход применим к каждой колонке с пропусками данных. Используем filna с методом ffill.

Почти все убрали.
Почти все убрали.
вот теперь мы устранили все пропуски. Можно и модельку строить
вот теперь мы устранили все пропуски. Можно и модельку строить
корреляционная матрица
корреляционная матрица

Отлично видно как очень много переменных коррелируют друг с другом. А переменная объема продажи sp500 вообще не оказывает влияние на целевую переменную. Отберем переменные предикторы и целевую переменные в отдельные серии.

columns_x=['volume_bitc', 'close_sp500', 'gold_usd', 'cpi_us']

columns_y=['close_bitc']

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

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

-15

Предскажем целевую переменную на тесте и тренировочных данных

-16

R^2 неплох, но вот квадрат ошибок уж очень велик. Неприлично много.
Необходимо взглянуть на график остатков. Если модель хорошо обучилась, то остатки (у(предсказанное) - у) должны распределиться равномерно возле 0.

Все очень плохо
Все очень плохо

Вариант на минималках не прокатил.

Данные разбиваются на две подвыборки. Значит модель не может предсказать данные коректно на всем диапазоне данных. Что то размазывает наши результаты.

Взглянем на наши переменные.

объем продаж биткоина
объем продаж биткоина

График смещен влево и не имеет нормального распределения. А это одно из главных ограничений линейной регрессии.
Но не стоит огорчаться, ведь есть он

Джон Тьюки
Джон Тьюки

Джон предложил преобразовывать переменные перед применением метода регрессии и доказал, что выход модели от этого не ухудшается, а даже наоборот становиться ближе к истине (уменьшается сумма квадратов ошибок)

Ну что ж проверим и прологарифмируем нашу переменную

-20

уже лучше.

цена закрытия sp500 до
цена закрытия sp500 до
цена закрытия sp500 после
цена закрытия sp500 после

Все тоже самое проделываем и с остальными переменными.
Соберем новый ДатаФрейм, поделим его на выборки и обучим нашу модель на новых данных.

-23

Вот теперь намного лучше. Квадрат ошибок маленький, а R^2 стал 0,962.

-24

График остатков почти идеален. Хоть бери и вешай где нибудь в музее))

Так как мы прологарифмировали целевую переменную, то теперь изменение коэффициента Bi(в уравнении регрессии) следует считать в процентах. Т.Е. изменение Bi на 1 означает изменение X на один процент.

Итоговое уравнение регрессии:

-25

y=-0.723722806346931+0.3663113336593727*volume_bitc_preob + +4.219420494615619*close_sp500_preob + -1.045320780195023*gold_usd_preob + -4.479857728200111*cpi_us_preob

Ответ на вопрос 1.

Из уравнения видно, что на цену Биткоина оказывает положительное влияние цена закрытия торгов индекса SP500. 4.2% роста. Объем продажи биткоина вызывает рост в 0,36%. А вот стоимость золота и инфляция снижает цену на 1 и 4,48% соответственно.
Небольшое предупреждение. Уравнение регрессии только показывает взаимосвязи переменных, но не объясняет причину данных связей. Поэтому не стоит забывать про ложную корреляцию. Все выводы сделаны только на тех данных, которые были предоставлены для анализа.

Теперь посмотрим на индексы волатильности активов.

Волатильность - это по сути стандартное отклонение цены актива умноженное на оцениваемый период.

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

-26

Теперь рассчитаем стандартное отклонение и умножим его на количество дней в году - это и будет нашей волатильностью!!!!

-27

Ответ на вопросы 2 и 3

Волатильность биткоина в разы больше чем волатильность остальных активов. Стоимость биткоина слишком сильно реагирует на внешние факторы. Даже твит И.Маска вызывает рост на 10%. С другой стороны Биткоина уже сейчас не хватает на всех. Нельзя просто так выпустить в обращение еще 1000000 биткоинов. Для этого необходимо переписать всю цепочку хэшей. А для этого нет столько вычислительных мощностей. А значит биткоин будет продаваться все меньшими долями. А для этого снова нужны вычислительные мощности, а значит цена на биткоин с ростом спроса будет расти.

Поэтому наиболее безрисковая стратегия это выбор акций SP500 или прямая покупка индекса. Или вложение в золото.

Стратегия с высоким риском - это включение в портфель небольшого количества Биткоинов.

Биткойн
1694 интересуются