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

Читайте на SMART-LAB:
Фото
Самолет запросил государственную поддержку, чего ждать держателям облигаций?
⚡️ «Самолет» сфокусирован на повышении долгосрочной устойчивости и эффективности
Друзья, привет! 💪 Мы всегда использовали и будем использовать все доступные инструменты для улучшения финансовой позиции компании в интересах...
Фото
Долгосрочным инвесторам на заметку: получить налоговые льготы стало проще
С 1 января 2026 года вступают в силу важные поправки к порядку применения льготы по налогу на доходы физических лиц (НДФЛ) по ставке 0% при...
Фото
Пошли продажи… Изменения в портфеле
Последний раз писал про портфель 13 января и сегодня я совершил несколько небольших сделок. Структура портфеля на 13.01.2026г.:

теги блога Eugene777

....все тэги



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