Блог им. 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»)
 
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
659 | ★3
2 комментария
Как показали годы работы над статистическими закономерностями, все сладкие теоретические заработки на статистике разбиваются одним хорошим небиржевым форс-мажором или негауссовым выносом. Например 3 марта биржа не транслировала один из параметров, на котором у меня была подвешена стратегия.
Попав на 2 таких выноса и потеряв 50% капитала, трудно продолжать торговать на супер-хитрой статистике ожидая что в перспективе 50лет вы по статистике непременно заработаете.
Сейчас использую самые простые закономерности, которые практически видны глазом и исполняются руками.
avatar
Simix, я спорить не буду. Никогда долгосрочной торговлей не занимался.
avatar

Читайте на SMART-LAB:
Фото
Банк Санкт-Петербург: мультипликатор балансовой стоимости выглядит низким, пришло ли время покупать?
Банк Санкт-Петербург представил финансовые результаты по МСФО за 1-й квартал 2026 года. Чистая прибыль в 1К26 составила 10,9 млрд руб.,...
Фото
AUD/JPY: Продавцы забирают инициативу на старте новой недели
Кросс-курс AUD/JPY повторно протестировал область сопротивления на дневном таймфрейме, сформированную между уровнями 113.96 и 114.71, и закрыл...
Фото
Средние доходности облигаций в зависимости от кредитного рейтинга. От B- до AA+
Средние доходности облигаций в зависимости от рейтинга (бледные столбцы — доходности без сглаживания). И как они изменились за неделю....
Фото
Стали ли интересными акции ФосАгро на фоне ралли в ценах на удобрения?
Здравствуйте! Эскалация напряжённости вокруг Ормузского пролива спровоцировала рост цен сразу на нескольких товарных рынках. Помимо нефтегазового...

теги блога Eugene777

....все тэги



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