Блог им. Eugene777

Статистическая обработка данных в R с использованием Quandl

Изучая возможности языка R, наткнулся недавно на интересный сайт Quandl.com. Изначально увидел там возможность выгрузки данных по акциям, но приглядевшись, нашел там такое количество различных данных, что  голова реально идет кругом.  Никогда, особенно, не интересовался фундаментальными данными, однако, решил посмотреть, как можно с ними работать. 

Для примера я взял данные по производству, экспорту и импорту нефти от министерства энергетики США и данные цен фьючерсов на американскую нефть. 

Задача стояла в поиске зависимости этих параметров. 

Приведу несколько графиков, расчет коффициентов корреляции и код. 

Статистическая обработка данных в R с использованием Quandl

 

Статистическая обработка данных в R с использованием Quandl
 
Коэффициенты корреляции : 

Зависимость изменения цена на нефть в следующем месяце от измеенния цены текущего месяца : 0.177335
Зависимость изменения цена на нефть в следующем месяце от изменения объемов производства : -0.01026717
Зависимость изменения объемов производства в текущем месяце от изменения цены на нефть : 0.03413794
Зависимость изменения объемов экспорта от объемов производства : 0.7850823
Зависимость изменения объемов производства в следующем месяце от изменения обхемов производства текущего месяца : -0.5559376

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


Немного кода: 
library(«Quandl»)
Quandl.auth(«YourQuandlKeyHere»)
oil.production <- Quandl(«DOE/MCRFPUS1», start=«2007-01-01», type=«xts»)
oil.import <- Quandl(«DOE/MCRIMUS1», start=«2007-01-01», type=«xts»)
oil.export <- Quandl(«DOE/MCREXUS1», start=«2007-01-01», type=«xts»)
oil.future <- Quandl(«OFDP/FUTURE_CL1», start=«2007-01-01», type=«xts»)
oil[which(is.na(oil[,'Open'])),'Open'] <- oil[which(is.na(oil[,'Open']))-1,'Open']
oil2<-oil[which(!is.na(oil[,'Production']))]
change <- function(x) (tail(x, 1) — head(x, 1)) / head(x, 1) * 100
oil.price_change_next<-rollapply(as.zoo(oil2$Open), FUN=change, width=2, align=«left», fill = NA)
oil.price_change_current<-rollapply(as.zoo(oil2$Open), FUN=change, width=2, align=«right», fill = NA)
oil.export_change<-rollapply(as.zoo(oil2$Export), FUN=change, width=2, align=«right», fill = NA)
oil.production_change_next<-rollapply(as.zoo(oil2$Production), FUN=change, width=2, align=«left», fill = NA)
oil.production_change<-rollapply(as.zoo(oil2$Production), FUN=change, width=2, align=«right», fill = NA)

plot(oil.production_change, col=«red», ylab="% Chnage")
lines(oil.export_change, col=«blue»)
legend( «bottomright», c(«Production change», «Export change»), text.col=c( «red», «blue») )

plot( cbind( as.zoo(oil.production), as.zoo(oil.import), as.zoo(oil.export) ), col=c(«red», «blue», «green»), main=«US Dept of Energy Monthly Data», ylab=«Kilobarrels» )
legend(«bottomleft», c( «Production», «Import», «Export»), text.col=c(«red», «blue», «green») )
cor(as.numeric(oil.price_change_next), as.numeric(oil.price_change_current), use=«complete.obs»)
cor(as.numeric(oil.production_change), as.numeric(oil.price_change_next), use=«complete.obs»)
cor(as.numeric(oil.production_change), as.numeric(oil.price_change_current), use=«complete.obs»)
cor(as.numeric(oil.export_change), as.numeric(oil.production_change), use=«complete.obs»)
cor(as.numeric(oil.production_change_next), as.numeric(oil.production_change), use=«complete.obs»)
 
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
668 | ★3
2 комментария
Как показали годы работы над статистическими закономерностями, все сладкие теоретические заработки на статистике разбиваются одним хорошим небиржевым форс-мажором или негауссовым выносом. Например 3 марта биржа не транслировала один из параметров, на котором у меня была подвешена стратегия.
Попав на 2 таких выноса и потеряв 50% капитала, трудно продолжать торговать на супер-хитрой статистике ожидая что в перспективе 50лет вы по статистике непременно заработаете.
Сейчас использую самые простые закономерности, которые практически видны глазом и исполняются руками.
avatar
Simix, я спорить не буду. Никогда долгосрочной торговлей не занимался.
avatar

Читайте на SMART-LAB:
🔒 МГКЛ вводит мораторий на сделки инсайдеров
📅 С 15 по 31 августа 2026 года включительно инсайдерам МГКЛ запрещено совершать сделки с любыми финансовыми инструментами компании — акциями,...
Фото
EUR/USD: цена определилась с направлением?
Европейская валюта последнюю неделю активно тестирует ранее пробитую линию нисходящего тренда. Пятничную сессию пара стремится закрыть «бычьим...
Фото
Золото, серебро и платина — в чём расходится драгоценная троица?
Недавно “Альфа Капитал” осветил в своём обзоре мировой рынок металлов. Его эксперты скептично относятся к продолжению общего роста драгоценных...
Фото
Совкомбанк МСФО 2 кв. 2026 г.: я вернул себе маржу — на рекорд я выхожу
Совкомбанк опубликовал финансовые результаты за 2 кв. 2026 г.  Чистая прибыль за полугодие составила 45,3 млрд руб., рост в 2,6 раза к...

теги блога Eugene777

....все тэги



UPDONW
Новый дизайн