Одна из базовых задач анализа данных — поиск взаимосвязи двух величин. Здесь я хочу показать пример поиска связи между ценой нефти и курсом рубля.
![image](https://habrastorage.org/r/w1560/files/06a/768/ea3/06a768ea33ed4feeb25885d639c5388d.png)
Во-первых надо определить, имеет ли вообще задача смысл. Почему нефть и рубль должны/могут быть взаимосвязаны? Вкратце, модель такая: экспортёры продают нефть за доллары, а затем продают доллары, чтобы получить рубли для расчётов внутри страны. Механизм крайне упрощён, надо учитывать объёмы добычи-продажи, что эскортируют не только нефть, не всегда экспортёры продают доллары, на курс валют влияет ЦБ интервенциями и т.д. И тем не менее, будем считать, что модель более-менее рабочая, то есть, что существуют фундаментальные причины для взаимосвязи цены нефти и курса рубля.
Что нам понадобится. Данные — возьмём замеренные ежедневно цену нефти (сорт Brent) в долларах и курс рубля к доллару, данные можно свободно получить на сайте finam.ru, период выборки — с начала прошлого года. Инструментарий — нам понадобится строить много графиков, чтобы визуально оценивать как вообще работает модель и довольно простой аппарат для построения регрессий. Все эти возможности есть в Gnuplot, забегая вперёд — скрипт отрисовки графиков и подсчёта регрессий занимает не более 40 строк кода. На все рабочие скрипты ссылка будет дана ниже.
Посмотрим на совместную динамику по времени цены нефти и курса рубля:
![image](https://habrastorage.org/r/w1560/files/e3c/b6c/1cd/e3cb6c1cdaca4734b7bc66dc2f56dc9a.png)
Нефть вниз, рубль — вверх. Какая-то взаимосвязь есть, но впечатление что что-то упущено… Ага! Мы сравниваем величины «Нефть за доллары» и «доллар за рубли», то есть банально размерности не совпадаю. Курс рубля возьмём в виде «Рубль/доллар» и перерисуем картинку:
![image](https://habrastorage.org/r/w1560/files/b56/588/cad/b56588cad50e4f7db247afb53d7f9bdd.png)
Вот тут корреляция уже явная. Мы на верном пути, продолжаем.
Построим множество точек (Нефть/Usd, Рубль/Usd) и проведём две линии регрессии, Y1 — линейная, Y2 — квадратичная, у обеих линий коэффициент детерминации высокий, то есть зависимость между ценой нефти и рублём довольно тесная.
![image](https://habrastorage.org/r/w1560/files/905/455/822/9054558227894463931bbf045c98c19a.png)
Линии регрессий практически совпадают. Выберем линейную, во-первых она проще и имеет меньше параметров, что очень важно, в том числе и с точки зрения принципа Оккама, а во вторых, у неё чуть больше коэффициент R2, то есть формально она лучше, немного, но лучше.
Перестроим график курса рубля от цены нефти в привычном формате, то есть так, как мы видим эти цифры в новостях, на сайтах, на табличках около банков. При этом для наглядности оставим на графике все наши построения, только сделаем их цвет бледнее.
![image](https://habrastorage.org/r/w1560/files/9b5/96c/dfd/9b596cdfd65d4d9586cf9448a76714ab.png)
Резюме. Курс рубля довольно тесно связан с ценой нефти, зависимость линейная (для курса Rub/Usd), коэффициент детерминации ~0,97.
PS. Все данные, скрипты и файлы для построения картинок в Gnuplot можно скачать по ссылке: drive.google.com/file/d/0BwHQSqFOG-7ldjk0SHZ4M1RxRGc/view?usp=sharing
PPS
Update. В формуле исправлена опечатка (на сами графики это не влияло). Спасибо Алексею Кузьмину (@alexeykuzmin0) за замечание.
![image](https://habrastorage.org/files/06a/768/ea3/06a768ea33ed4feeb25885d639c5388d.png)
Во-первых надо определить, имеет ли вообще задача смысл. Почему нефть и рубль должны/могут быть взаимосвязаны? Вкратце, модель такая: экспортёры продают нефть за доллары, а затем продают доллары, чтобы получить рубли для расчётов внутри страны. Механизм крайне упрощён, надо учитывать объёмы добычи-продажи, что эскортируют не только нефть, не всегда экспортёры продают доллары, на курс валют влияет ЦБ интервенциями и т.д. И тем не менее, будем считать, что модель более-менее рабочая, то есть, что существуют фундаментальные причины для взаимосвязи цены нефти и курса рубля.
Что нам понадобится. Данные — возьмём замеренные ежедневно цену нефти (сорт Brent) в долларах и курс рубля к доллару, данные можно свободно получить на сайте finam.ru, период выборки — с начала прошлого года. Инструментарий — нам понадобится строить много графиков, чтобы визуально оценивать как вообще работает модель и довольно простой аппарат для построения регрессий. Все эти возможности есть в Gnuplot, забегая вперёд — скрипт отрисовки графиков и подсчёта регрессий занимает не более 40 строк кода. На все рабочие скрипты ссылка будет дана ниже.
Посмотрим на совместную динамику по времени цены нефти и курса рубля:
![image](https://habrastorage.org/files/e3c/b6c/1cd/e3cb6c1cdaca4734b7bc66dc2f56dc9a.png)
Нефть вниз, рубль — вверх. Какая-то взаимосвязь есть, но впечатление что что-то упущено… Ага! Мы сравниваем величины «Нефть за доллары» и «доллар за рубли», то есть банально размерности не совпадаю. Курс рубля возьмём в виде «Рубль/доллар» и перерисуем картинку:
![image](https://habrastorage.org/files/b56/588/cad/b56588cad50e4f7db247afb53d7f9bdd.png)
Вот тут корреляция уже явная. Мы на верном пути, продолжаем.
Построим множество точек (Нефть/Usd, Рубль/Usd) и проведём две линии регрессии, Y1 — линейная, Y2 — квадратичная, у обеих линий коэффициент детерминации высокий, то есть зависимость между ценой нефти и рублём довольно тесная.
![image](https://habrastorage.org/files/905/455/822/9054558227894463931bbf045c98c19a.png)
Линии регрессий практически совпадают. Выберем линейную, во-первых она проще и имеет меньше параметров, что очень важно, в том числе и с точки зрения принципа Оккама, а во вторых, у неё чуть больше коэффициент R2, то есть формально она лучше, немного, но лучше.
Перестроим график курса рубля от цены нефти в привычном формате, то есть так, как мы видим эти цифры в новостях, на сайтах, на табличках около банков. При этом для наглядности оставим на графике все наши построения, только сделаем их цвет бледнее.
![image](https://habrastorage.org/files/9b5/96c/dfd/9b596cdfd65d4d9586cf9448a76714ab.png)
Резюме. Курс рубля довольно тесно связан с ценой нефти, зависимость линейная (для курса Rub/Usd), коэффициент детерминации ~0,97.
PS. Все данные, скрипты и файлы для построения картинок в Gnuplot можно скачать по ссылке: drive.google.com/file/d/0BwHQSqFOG-7ldjk0SHZ4M1RxRGc/view?usp=sharing
PPS
Update. В формуле исправлена опечатка (на сами графики это не влияло). Спасибо Алексею Кузьмину (@alexeykuzmin0) за замечание.