Menu

Поиск взаимосвязей на примере Нефть-Рубль

  • Автор: Super User

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

image
Во-первых надо определить, имеет ли вообще задача смысл. Почему нефть и рубль должны/могут быть взаимосвязаны? Вкратце, модель такая: экспортёры продают нефть за доллары, а затем продают доллары, чтобы получить рубли для расчётов внутри страны. Механизм крайне упрощён, надо учитывать объёмы добычи-продажи, что эскортируют не только нефть, не всегда экспортёры продают доллары, на курс валют влияет ЦБ интервенциями и т.д. И тем не менее, будем считать, что модель более-менее рабочая, то есть, что существуют фундаментальные причины для взаимосвязи цены нефти и курса рубля.

Что нам понадобится. Данные — возьмём замеренные ежедневно цену нефти (сорт Brent) в долларах и курс рубля к доллару, данные можно свободно получить на сайте finam.ru, период выборки — с начала прошлого года. Инструментарий — нам понадобится строить много графиков, чтобы визуально оценивать как вообще работает модель и довольно простой аппарат для построения регрессий. Все эти возможности есть в Gnuplot, забегая вперёд — скрипт отрисовки графиков и подсчёта регрессий занимает не более 40 строк кода. На все рабочие скрипты ссылка будет дана ниже.

Посмотрим на совместную динамику по времени цены нефти и курса рубля:

image
Нефть вниз, рубль — вверх. Какая-то взаимосвязь есть, но впечатление что что-то упущено… Ага! Мы сравниваем величины «Нефть за доллары» и «доллар за рубли», то есть банально размерности не совпадаю. Курс рубля возьмём в виде «Рубль/доллар» и перерисуем картинку:

image
Вот тут корреляция уже явная. Мы на верном пути, продолжаем.

Построим множество точек (Нефть/Usd, Рубль/Usd) и проведём две линии регрессии, Y1 — линейная, Y2 — квадратичная, у обеих линий коэффициент детерминации высокий, то есть зависимость между ценой нефти и рублём довольно тесная.

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

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

image Резюме. Курс рубля довольно тесно связан с ценой нефти, зависимость линейная (для курса Rub/Usd), коэффициент детерминации ~0,97.

PS. Все данные, скрипты и файлы для построения картинок в Gnuplot можно скачать по ссылке: drive.google.com/file/d/0BwHQSqFOG-7ldjk0SHZ4M1RxRGc/view?usp=sharing

PPS
Update. В формуле исправлена опечатка (на сами графики это не влияло). Спасибо Алексею Кузьмину (alexeykuzmin0) за замечание.
 
 

Комментарии (63)

+7
defuz 17 марта 2015 в 12:31 #
Я правильно понимаю, что таким образом курс рубля на 97% определяется стоимостью нефти?
 
+7
OlegUV 17 марта 2015 в 12:36 #
Скажем так — оно так выглядит, на самом деле никогда нельзя исключать ложных корреляций. Кстати, правильнее сказать «определялся за последний год», сейчас ситуация, наверно, немного поменялась, видно по участку с декабря прошлого года и нефти в районе цены 45-65.
 
+1
Zerstoren 17 марта 2015 в 15:22 #
Так-же нельзя забывать о том, сколько ЦБ выкидывает долларов из резервов на торги.
Достаточно приличные суммы, чтоб хоть как-то держать рубль на плаву.

В добавок графики котировок говорят о том, что курс сдерживают, очень сильно сдерживают. Постоянные прыжки в ± 50 копеек говорят именно о сдерживании валюты за счет резервов.
 
+3
OlegUV 17 марта 2015 в 15:26 #
Действия ЦБ — это отдельная большая песня, я эту тему даже не трогаю, там всё очень не просто, в том числе даже с простейшей логикой. Так что лучше смотреть простые регрессии =)
 
–7
Zerstoren 17 марта 2015 в 15:40 #
Не имеет смысла тогда считать регрессии.
Даже если внезапно ни кто не захочет продавать валюту в Россию (полный отказ от покупки нефти, газа и других невероятных ситуаций), то при отсутствии действий ЦБ — это на следующий день скажется на курсе, если ЦБ будет распродавать резервы — то вы еще протяните какое-то время.

К примеру сейчас нефть политела к 53 и это брент, другая нефть россии стоит значительно ниже — на курсе не отразилось т.к. начились более активные вливания резервов в систему.
 
+6
f5623 17 марта 2015 в 17:07 #
Какую-то ерунду вы пишите. Вот дневные интервенции www.cbr.ru/hd_base/?PrtId=valint_day Вот месячные интервенции www.cbr.ru/hd_base/default.aspx?prtid=valint

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

За два месяца паники слили много, но и это сравнимо с предыдущими годами.

Сейчас на падающей нефти рубль скорее всего держится без поддержки сам собой.
 
0
conturov 17 марта 2015 в 23:31 #
Все же более правильная ссылка эта: www.cbr.ru/hd_base/?PrtId=mrrf_7d
 
0
akrupa 18 марта 2015 в 00:28 (комментарий был изменён)#
www.cbr.ru/hd_base/?PrtId=mrrf_7d


На цифры по этой ссылке сильно повлияло падение курса евро, которого много в резерхах. Если циферки на евро пересчитать, тенденция будет обратная ;-)
 
 
0
f5623 18 марта 2015 в 02:00 #
Все же это разные вещи. То что идет на поддержание курса именно по моим ссылкам. А почему уменьшаются резервы это отдельный вопрос. Я точно не знаю, но.

Одна из причин очевидна. Золото дешевеет и пересчитывается по текущему курсу.
Другая причина тоже очевидна. Евро дешевеет и пересчитывается по текущему курсу в доллары.
Кроме этого в ЗВР входят ценные бумаги, обязательства по которым мы имеет свойство списывать. Например, не так давно по дружбе купили облигации Украины на несколько миллиардов долларов. Вернутся ли они?
А еще часть ЗВР это ФНБ, который сейчас усиленно тратится на различные проекты. И т.д. и т.п.

Короче говоря, размер ЗВР напрямую не связан с курсом рубля. Он регулируется интервенциями.
 
 
+1
maxshopen 17 марта 2015 в 20:17 (комментарий был изменён)#
«протяните», «политела»… Уважаемый Зерсторен из Киева, будьте добры, в контексте статьи расскажите о известных вам критериях зависимости волатильности от интервенций регуляторов. Как вы всё это определяете, надеюсь не на глазок и у вас есть некая аналитическая база для этих выводов?
 
 
+2
IRainman 17 марта 2015 в 16:29 (комментарий был изменён)#
За последний год не так интересно, особенно с учётом полнейшей истерии на рынке, которая началась в 3м квартале, а в 4м обрела просто феерические формы. Если не затруднит сделайте, пожалуйста, график на период примерно, с 2006-2007, что бы захватить и пик мирового кризиса в 2008 и периоды достаточно стабильной ситуации как в РФ, так и в мире. По моим прикидкам при таком периоде должна получиться очень даже валидная зависимость.
 
+5
OlegUV 17 марта 2015 в 16:35 #
Думал об этом, но это не быстро, может отдельный пост сделаю.
 
0
IRainman 17 марта 2015 в 16:40 #
Благодарю, буду очень признателен если сделаете! Не экономист я ни разу, но опять же, по прикидкам, должно получиться, что зависимость оказывается в районе 0,4 ± 0,1.
 
 
+2
JaLoveAst1k 17 марта 2015 в 12:42 #
А что, у нас есть что-то еще на экспорт? Шутка.
По факту, этот коэффициент детерминации здесь ни что иное, как квадрат корреляции? Тогда действительно много получилось.
 
+1
OlegUV 17 марта 2015 в 12:46 #
Газ (Газпром — нашевсё), но его цена через нефть определяется насколько я знаю, ещё на экспорт золото, лес, уголь, может ещё что-то. Да, R2 — в однофакторной регрессии это просто квадрат корреляции.
 
 
–1
lam0x86 17 марта 2015 в 13:28 #
Наоборот, стоимость нефти на 97% определяется курсом рубля.
 
+11
paata 17 марта 2015 в 19:57 #
Нет, именно рубль следует за нефтью.
В этом легко убедиться самостоятельно, используя тест Грэнджера на причинность (Granger 1969).
По шагам:
1. Берете данные, предоставленные автором в файле _dat.txt — столбцы Brent и RubUsd. RubUsd лучше умножить на 1000, чтобы не пропали значащие цифры. Назовем это Рубль.
2. Засовываете их (данные в столбцах, десятичный разделитель — точка, а не запятая) в онлайн-калькулятор двунаправленного теста Грэнджера на причинность.
3. Разворачиваете данные во времени (задом наперед), и уже вывернутые данные засовываете в тот же онлайн-калькулятор.

Примерные результаты вычислений для прямого времени, лаг 1:
1. Рубль = Функция (Нефть) — F-test (f-статистика) = 21; P-значение (p-value) = 5e-6 (5 миллионных).
2. Нефть = Функция (Рубль) — F-test (f-статистика) = 0,28; P-значение (p-value) = 0,60.
Примерные результаты для инвертированного времени, лаг тоже 1:
3. Рубль = Функция (Нефть) — F-test (f-статистика) = 0,47; P-значение (p-value) = 0,49.
4. Нефть = Функция (Рубль) — F-test (f-статистика) = 15; P-значение (p-value) = 1e-4 (1 десятитысячная).

При бОльших лагах результаты слабее.

Чеканные формулировки про отвергнутые нуль-гипотезы здесь не нужны, попробую чуть проще.
Интерпретация результатов:
1. Нефть является Грейнджер-причиной Рубля.
2. Рубль не является Грейнджер-причиной Нефти.
3. При движении из будущего в прошлое, Нефть не является Грейнджер-причиной Рубля.
4. При движении из будущего в прошлое, Рубль является Грейнджер-причиной Нефти.
Кроме того, Грейнджер-причинность выше у прямого направления времени, чем у обратного (21>15, 5e-6<1e-4).
Это означает, что легче (увереннее) прогнозировать вперед Рубль от Нефти, чем прогнозировать назад (вычислить историю) Нефти от Рубля.

Итого, сначала свыше появляется цена барреля (в долларах), а именно след-в-след за ней соответствующее значение рубля (в долларах).
 
+6
paata 17 марта 2015 в 20:05 #
А что до регрессии, которую автор вычислил, проще свободный член занулить (провести тренд через точку (ноль, ноль)). Эр-квадрат (коэффициент детерминации) сползет с 97,26% до 95,75%, но и этого вполне достаточно.
Ненулевой свободный член мог бы означать в сказочном мире, что при абсолютно бесплатной нефти доллар бы стоил примерно 356 рублей 30 копеек. :)
Оставшаяся регрессия превращается в прямую пропорциональность, что дает нефть с медианой примерно 3700 и рассеянием (сигма) примерно 200, в рублях за баррель. Легко вычислить на данных автора цены барреля в рублях. Исторический минимум примерно 2968 от 12.01.2015 (потушено интервенциями?), а истерический максимум примерно 4086 от 16.12.2014.

Можно и диаграмму построить на осях «Привычный курс доллара в рублях» от «Баррелей нефти Brent за 1000 долларов».
image
Диаграмма похожа на теннисную ракетку. Ширина головки ракетки может означать гетероскедастичность, что бы это ни обозначало.
Точки связаны календарной последовательностью. Ручка ракетки (примерно 280 значений) переходит в головку ракетки (примерно 71 значение) во второй декаде декабря 2014.
 
+9
SVlad 17 марта 2015 в 21:01 #
истерический максимум

Хороший термин. Или это такая удачная опечатка?
 
 
+7
lam0x86 17 марта 2015 в 22:04 #
Мой комментарий был, разумеется, шуткой. Я даже удивлён, что кто-то мог воспринять его всерьёз. В следующий раз буду ставить смайлик :)
Но Ваш ответ достоин отдельного поста. Спасибо, очень обстоятельно.
 
 
+4
rocknrollnerd 17 марта 2015 в 16:01 #
*зануда* На 97% коррелирует со стоимостью нефти)

должен же был кто-то
 
0
OlegUV 17 марта 2015 в 16:09 #
да, верно, причинно-следственная связь не есть корреляция, кажется банальностью из серии "«да ну, ладно», но в жизни встречается гораздо чаще, чем хотелось бы
 
 
0
PsyHaSTe 17 марта 2015 в 16:07 (комментарий был изменён)#
Регрессия с детерминацией 0.5-0.6 уже считается неплохой, с 0.7-0.8 — хорошей, 0.9 и выше — отличной. 0.97 — это практически прямая зависимость.
 
0
OlegUV 17 марта 2015 в 16:10 #
только что выше написал про причины, следствия и корреляции
 
 
0
PsyHaSTe 17 марта 2015 в 16:12 #
А учитывая, что у нас тут регрессия всего от одного параметра, то это мега-успех. Спасибо за статью, рад увидеть научные методы в обработке стат. данных.
 
0
OlegUV 17 марта 2015 в 16:13 #
u r welcome =)
 
 
–1
Suntechnic 18 марта 2015 в 01:40 #
Он на 146% определяется убежденностью пары людей, что если нефть будет стоить в районе 3600руб. за бочку, то все в стране будет хорошо и закономерно вытекающему из этой убежденности распоряжению ЦБ держать рубль на этой отметке. И вобщем-то все кто интересуется экономикой это знают.
 
+1
AllexIn 18 марта 2015 в 06:34 #
Данные по использованию валютных резервов для поддержания курса — открытые.
Судя по этим данным — вы не правы.
 
0
Suntechnic 18 марта 2015 в 12:36 #
Данные о том какой была валютная политика ЦБ ДО того как рубль «отпустили» тоже, но вы их не потрудились посмотреть.
Данные по интервенциям МФ и ВЭБ вы тоже не потрудились разыскать.
Данные по лимитам обязательной продажи валютной выручки и их изменение вы проигнорировали.
Видимо вы вообще не задумывались о том что кроме продающего валюту ЦБ и какого-то покупателя, на межбанке есть другие игроки.
Но зато вы знаете, что я не прав.
 
0
AllexIn 18 марта 2015 в 12:48 #
А тут все просто — вы утверждаете, вам и доказывать.
 
0
Suntechnic 18 марта 2015 в 13:16 #
Хорошее утверждение, годное.
Но что доказывать-то? Что это секрет полишинеля для многих? Ну так я вам это просто сообщаю, как первоисточник.
Что Шувалов и Путин убеждены в этой цифре? Я не знаю способа доказать чью-то убежденность.
То что государство держит курс на этом уровне? Ну во-первых вон целая статья с косвенными доказательствами.
Во-вторых существование самого коридора и правила интервенций это подтверждают. Мне погуглить их за вас? Разместить сюда полные правила? Заставить здесь зарегистрироваться Набиулину? Что для вас будет доказательством?
А в целом из предыдущего сообщения можно сделать какие методы использует МинФин и ЦБ для регулирования курса. Но кстати не только их.
А еще есть понятие «словесных интервенций».
Как много доказательств и чего мне приводить?
 
 
+1
Eureka 17 марта 2015 в 13:13 #
Не будет лишним дополнить ваш пост ссылкой на метод Бориса Немцова, опубликованный в прошлом году.
 
+1
OlegUV 17 марта 2015 в 15:17 #
Не вижу смысла, здесь речь идёт о математике, а не о политэкономике.
 
+1
CJay 17 марта 2015 в 18:24 #
Так там не на политику смотреть нужно, а на то, что стоимость рубля есть отношение 3620 к стоимости нефти.
 
+2
RomanPyr 17 марта 2015 в 18:39 (комментарий был изменён)#
А ещё тот пост говорит о том, что как бы вы не исхитрялись сохранить свои капиталы, что бы не считали, результат в итоге может не понадобиться. Живите сегодняшним днём.
 
 
–1
elite7 17 марта 2015 в 21:47 #
И все же чистый теханализ может быть слеповат и не иметь хорошей предсказательной силы, в сравнении с более широкими моделями, которые что-то знают про резервы ЦБ, индекс доллара относительно мировых валют или новые топ-кадры ЦБ.
 
 
+3
state13 17 марта 2015 в 14:36 #
Осталось только выяснить, что такое курс, и как он формируется.
 
0
OlegUV 17 марта 2015 в 14:46 #
На бирже котируется, свободно, даже ЦБ не директивно вмешивается а через более-менее рыночные механизмы.
 
 
+1
lany 17 марта 2015 в 15:00 (комментарий был изменён)#
Что-то наглядности вообще не получилось. Из последней картинки, глядя на кружочки, я делаю вывод, что реально наблюдались точки, когда рубль (или нефть?) стоил около 190 чего-то, что отложено по оси ординат.

А вообще в данном случае нагляднее смотреть на отношение нефть/рубль (можно в зависимости от даты, курса рубля или курса доллара). Тогда будет видно, что нефть в рублях стоит примерно одинаково.
 
0
OlegUV 17 марта 2015 в 15:08 #
Да, согласен, с последней картинкой вышло не очень, то, что относится к реальным наблюдениям — отложено по правой оси, но я так это завуалировал, что кажется что и правда были времена с рублём по 190.

Нефть в рублях можно смотреть если заранее известно, что связь строго пропорциональная, тут я изначально такого не предполагал, цель была как раз найти связь (если она есть)
 
 
+3
brainick 17 марта 2015 в 15:42 #
вывод о том, что курс рубля зависит от цены на нефть на 97% можно сделать и без всех этих вычислений
 
 
+1
HomoLuden 17 марта 2015 в 15:50 #
Нефть вниз, рубль — вверх.


Вообще-то, если нефть — вниз, то и рубль — вниз. «Вверх» в данном случае цена доллара в рублях РФ растет, а не цена рубля.
 
0
OlegUV 17 марта 2015 в 15:56 #
в том абзаце текста «курс рубля» — на интуитивно-бытовом уровне, то что написано на табличках обменника (согласен, не чётко написал)
 
0
HunterSpy 17 марта 2015 в 16:03 #
Куда понятнее сделать подписи к осям графиков.
 
0
OlegUV 17 марта 2015 в 16:12 #
наверно… учту на будущее, сейчас писал как сам привык раскладывать по шагам
 
 
0
xiWera 17 марта 2015 в 16:25 #
А теперь тоже самое для менее удобного отрезка до 14го года :) и отдельно отрезок после валютной коррекции, кторую вы связали с ценой на нефть :)
 
0
OlegUV 17 марта 2015 в 16:37 #
Выше уже отвечал, сам хочу такое посмотреть, даже ради любопытства, но время нужно.
 
 
+1
volanddd 17 марта 2015 в 16:37 #
А нефть, судя по котировкам бралась light sweet?
Почему, если марка Urals больше привязана к brent? А корреляция между light sweet и brent последние месяцы существенно уменьшилась?
 
0
OlegUV 17 марта 2015 в 16:39 (комментарий был изменён)#
Нефть Brent, в тексте написано.
Корреляции сортов нефти не смотрел, хотя вообще это интересная тема, одно время они были жёстко связаны, потом разошлись, причём очень сильно, и потом опять сошлись, какие факторы влияли — лично я не знаю.
 
0
volanddd 17 марта 2015 в 16:59 #
Да, не тот цвет посмотрел на графике.
Факторы довольно простые — запасы нефти в США и уровень добычи в США и близлежащих странах.
Кстати, было бы интересно сравнить корреляцию рубля и нефти, без учета доллара на более длином периоде.
 
0
OlegUV 17 марта 2015 в 17:02 #
Нормировать на индекс доллара — интересная идея. Правда, это лежит за сферой моих интересов, на большом периоде, лет за 7-10, нефть и рубль собираюсь посмотреть, а бОльшая экономика — уже вряд ли…
 
0
Daemon_Hell 18 марта 2015 в 11:25 #
На самом деле — не слишком. Сейчас индекс доллара растет во многом благодаря евро (57.6% веса)
 
 
0
Suntechnic 18 марта 2015 в 01:55 #
Корреляции теоретически это стоимость фрахта в расчете на баррель. Но это чисто теоретически.
Вот вы берете нефть марки Brent. И правильно — потому что это дефолтная нефть. Но есть небольшая проблема — такой марки нефти де-факто уже нет.
Т.е. от её цены все считают. Ее продают и покупают объёмами в несколько раз большими чем вообще есть всей нефти всех марок. Но ее уже почти не добывают и не используют.
Сегодня контракт на поставку Brent по сути мало чем отличается от билета МММ, если вы решите выйти с ним на реальную поставку.
 
 
+1
nzeemin 17 марта 2015 в 20:04 #
Urals было бы правильнее, но не думаю что это сильно повлияет — и так получилась очень близкая зависимость.
Замечу ещё, что нефть торгуется как фьючерсные контракты — т.е. расчёты происходят позже чем сделка.
И ещё то что трейдеры хорошо знают связь между нефтью и рублём — и стало быть само давление рынка эту связь поддерживает.
 
 
0
Levard 17 марта 2015 в 18:35 #
Есть такая программа STATISTICA 10, в ней можно очень удобно все это построить эти и многие другие графики без скриптов, буквально минут 10 гугления что за что отвечает и вы получаете домашнюю станцию «прогнозов и рекомендаций»
Можно еще воспользоваться «Коэффициент ранговой корреляции Спирмена» для самопроверки
 
0
OlegUV 17 марта 2015 в 18:43 #
В своё время я отказался от statistica, так же как и от spss.
 
0
Levard 17 марта 2015 в 18:46 #
Интересно из-за чего. Расскажете?
 
+2
OlegUV 17 марта 2015 в 18:53 #
Мотивы примерно такие же, по которым люди переходят с VBA для Excel на С++/Java/Perl/Python
 
0
Meklon 17 марта 2015 в 23:15 #
Мне ещё GraphPad Prism нравится. Удобен.
 
 
0
elite7 17 марта 2015 в 21:17 #
То есть, если WTI стоит сейчас 42 доллара, то доллар должен стоить 1/(0.00024*42+0.00281) = 77 рублей, что на 25 процентов выше текущего курса рубля в 62 рубля за доллар.

Мне кажется в декабре 2014 политика ЦБ РФ немного сменилась. Также сменились некоторые топ кадры.
До декабря для выравнивания бюджета нефть поддерживалась на уровне (грубо) 3500 руб за баррель. Если нефть падала, то падал рубль и доходы федерального бюджета в рублях не менялись.

Теперь мы видим 2600 руб за баррель (42$ баррель и 62 руб за доллар), это значит, что в бюджете дефицит. И его можно сократить только двумя способами: сократить расходы бюджета на 25-40 процентов или обесценить рубль с 62 до 80 руб за доллар.

Я не уверен, что депутаты могут сократить расходы в таких масштабах. Скорее всего будет второй вариант, только не плавный с 62 80, как это было осенью с 40 до 60 с рублём, а резкий, как это было с азербайджанским манатом, 33 процента за сутки 21 февраля 2015 года. Основной аргумент, что разовый шок немного менее болезненный, чем многомесячная паника.

Буду рад ошибаться.
 
 
+1
EvilPartisan 17 марта 2015 в 21:33 #
Не хватает графика цены нефти в рублях.
 
0
conturov 18 марта 2015 в 00:14 #
Это значение заложено в бюджет (доходная часть от продажи нефти и газа).
 
 
0
hecategram 17 марта 2015 в 21:44 #

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

Добавить комментарий


Защитный код
Обновить