Logo Logo
  • Ana Sayfa
  • Hakkında
  • Kategoriler
    • Genel
    • İstatistik
    • Makine Öğrenme
    • Model Geliştirme
    • Sağlık
    • Teknoloji
  • Tüm Yazılarım
  • İletişim

İletişim

  • Email buluttevfik@gmail.com

Site Haritası

  • Ana Sayfa
  • Hakkında
  • İletişim

Sosyal Medya Adresleri

R’da Quandl Kütüphanesi İle Veri Çekme ve Dinamik Grafik Oluşturma: Extracting Data with Quandl Library and Creating Dynamic Charts in R

  • ANA SAYFA
  • Blog Details
Ağustos 30 2021
  • İstatistik

Intro

Within the scope of the study, how the data sets are drawn with the Quandl R package, how the metadata is obtained, how dynamic graphics are created especially in the data sets with time series are discussed using dygraphs and plotly packages.

Giriş

Çalışma kapsamında Quandl R paketi ile veri setlerinin nasıl çekildiği, meta verinin nasıl elde edildiği, özellikle zaman serileri bulunan veri setlerinde dinamik grafiklerin nasıl oluşturulduğu dygraphs ve plotly paketleri kullanılarak ele alınmıştır.

Quandl R paketi ile premium veri setlerini alabileceğiniz gibi ücretsiz olarak tanımlanmış veri setlerini de alabilirsiniz. Burada bir ücret söz konusu değildir. Bazı veri setlerinin indirilebilmesi için bu pakette ücretli abonelik tanımlanmıştır.Quandl R paketi ücretsizdir. Ancak günde 50’den fazla arama yapmak istiyorsanız, ücretsiz bir Quandl hesabı oluşturmanız ve API anahtarınızı almanız gerekir.Premium veri setlerine ulaşabilmek için de API anahtarının olması gerekir. API anahtarını https://www.quandl.com/login web adresinden kayıt yaptırarak alabilirsiniz.API anahtarını elde ettikten sonra Quandl.api_key(“API anahtarı”) ve Quandl(“FRED/GDP”) veya kombine olarak Quandl(“FRED/GDP”,api_key=”API anahtarı”) şeklinde yazılması gerekir. Buradaki örneğimizde ABD Merkez Bankasının Gayri Safi Milli Hasıla (GDP) verisi çekilmiştir.Fonksiyon içerisinde FRED ise Federal Reserve Economic Data yani Federal Rezerv Ekonomik Verisi’nin kısaltmasıdır. Ücretsiz olarak tanımlanan veri setlerinde bahsedildiği üzere API anahtarına ihtiyaç yoktur.Veri setlerini farklı formatlarda alabilirsiniz. Bunlardan bir kaçı şöyledir:

  • Ham veri: Quandl(“FRED/GDP”, type=”raw”)
  • ts formatı: Quandl(“FRED/GDP”, type=”ts”)
  • xts formatı:Quandl(“FRED/GDP”, type=”xts”)
  • zoo formatı: Quandl(“FRED/GDP”, type=”zoo”)

Yukarıda belirtilen ts, xts ve zoo formatları zaman serisi formatları bilinmektedir.

Eğer veriyi farklı zaman periyodları halinde almak istersek veri setinin yapısına göre saatlik, günlük, haftalık, aylık, çeyrek dönemlik olarak da alabiliriz. Örneğin, Quandl(“FRED/GDP”, type=”ts”, collapse=”annual”) fonksiyonunda ABD GDP verisini yıllık olarak ve ts formatında almış oluruz.

Çalışmada grafikler oluşturulurken veri madenciliği teknikleri kullanarak nasıl grafiklere uygun hale getirildiğini de görmüş olacaksınız.

Yüklenen kütüphaneler

kütüphane<-c("dplyr","tibble","tidyr","ggplot2","ggthemes","readxl", "writexl", "psych", "GGally", "rstatix","RColorBrewer","htmlwidgets","kableExtra","stargazer","readr", "lubridate", "Quandl", "xts", "data.table", "dygraphs", "quantmod", "plotly")
yükle<-sapply(kütüphane, require, character.only = TRUE, warn.conflicts = FALSE)
 
#Kütüphane yüklenme durumunu gösteren tablo
 
tablo=suppressWarnings(yükle, classes = "warning")
   
isim=names(tablo)
   
deger=as_tibble(tablo)
   
data.frame(Sıra=1:length(isim), Kütüphane=isim, Durumu=deger$value) %>% 
mutate(Durumu=if_else(Durumu==TRUE, "Yüklendi", "Paket Kurulumu Gerekli")) %>% 
kable(caption = "Yüklenen Kütüphaneler")%>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = F, html_font="calibri")

Veri setlerine ulaşma

National Stock Exchange of India Prices (NSE) OIL veri setinden çeyrek dönemlik ve zoo formatında veri elde edilmiştir.

```{r}
Quandl('NSE/OIL', collapse = "quarterly", type = "zoo", limit = 10)%>% 
kable() %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = F, html_font="calibri")
```

Türkiye aramasına göre veri setleri

Burada ilk 6 kayıt verilmiştir.

Quandl.api_key('Api Anahtarı')
Quandl.search(query="Turkey", silent=T) %>% 
select(id, dataset_code, database_code, name,	description)%>%
kable() %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = F, html_font="calibri")

Ekonomik göstergeler veri seti (Global Economic Indicators)’nden bir kesit

Quandl.api_key('Api Anahtarı')
Quandl.datatable('EDIA/ECD')%>% 
as_tibble() %>% 
head() %>% 
kable() %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = F, html_font="calibri")

ABD Milli Hasıla verisi

# veri birleştirme
r=Quandl("FRED/GDPC1") %>% 
as_tibble()%>% mutate(tur=rep("Reel GSMH",298))

g=Quandl("FRED/GDP") %>% 
as_tibble() %>% mutate(tur=rep("GSMH",298))

rp=Quandl("FRED/GDPPOT")%>% 
as_tibble() %>% mutate(tur=rep("Reel Potansiyel GSMH",332))

veri=bind_rows(r,g, rp) %>% rename("Hasıla"=Value, "Tarih"=Date)
veri %>% ggplot(aes(x=Tarih, y=Hasıla, group=tur))+geom_line(aes(colour=tur), size = 1) + theme_igray() + ggtitle("ABD Milli Hasıla ($)")+ xlab("Tarih")+ylab("Milyar $")+scale_x_date(date_breaks = "8 years", date_labels = "%Y" )+
theme(plot.title = element_text(hjust = 0.5))+
labs(color='Türü')+
labs(caption = "Veri kaynağı: FRED")

Dinamik grafik oluşturma 1

Burada dygraph kütüphanesi kullanılarak dinamik grafik oluşturulmuştur. Ancak burada sadece oluşturulan grafiğin resmi verilmiştir. Çalışmanın sonunda html linki paylaşılacaktır.

r=Quandl("FRED/GDPC1") %>% 
as_tibble()%>% mutate(tur=rep("Reel GSMH",298))%>% rename("Hasıla"=Value, "Tarih"=Date)
r1=r[,c(1:2)]
r1$Tarih= as.Date(r1$Tarih)

r2=as.xts(as.data.table(r1))

dygraph(r2, main="ABD GSMH") %>%
  dyOptions(labelsUTC = TRUE, fillGraph=TRUE, fillAlpha=0.2, drawGrid = T, colors="red") %>%
  dyRangeSelector() %>%
  dyAxis("y", label = "Milyar ($)") %>%
  dyCrosshair(direction = "vertical") %>%
  dyHighlight(highlightCircleSize = 8, highlightSeriesBackgroundAlpha = 0.4, hideOnMouseOut = FALSE)  %>%
  dyRoller(rollPeriod = 1)

Dinamik grafik oluşturma 2

Burada dygraph kütüphanesi kullanılarak birden fazla değişken aynı grafik üzerinde gösterilmiştir. Ancak burada sadece oluşturulan grafiğin resmi verilmiştir. Çalışmanın sonunda html linki paylaşılacaktır.

r=Quandl("FRED/GDPC1") %>% 
as_tibble()%>% mutate(tur=rep("Reel GSMH",298))

g=Quandl("FRED/GDP") %>% 
as_tibble() %>% mutate(tur=rep("GSMH",298))

rp=Quandl("FRED/GDPPOT")%>% 
as_tibble() %>% mutate(tur=rep("Reel Potansiyel GSMH",332))

veri=bind_rows(r,g, rp) %>% rename("Hasıla"=Value, "Tarih"=Date)


lv=pivot_wider(veri, names_from = tur, values_from = Hasıla)

lv$Tarih= as.Date(lv$Tarih)

lv1=as.xts(as.data.table(lv))

dygraph(lv1, main="ABD GSMH Türleri") %>%
  dyOptions(labelsUTC = TRUE, fillGraph=TRUE, fillAlpha=0.2, drawGrid = T) %>%
  dyRangeSelector() %>%
  dyAxis("y", label = "Milyar ($)") %>%
  dyCrosshair(direction = "vertical") %>%
  dyHighlight(highlightCircleSize = 8, highlightSeriesBackgroundAlpha = 0.4, hideOnMouseOut = FALSE)  %>%
  dyRoller(rollPeriod = 1)

Dinamik grafik oluşturma 3

Burada plotly kütüphanesi kullanılarak birden fazla değişken aynı grafik üzerinde gösterilmiştir. Ancak burada sadece oluşturulan grafiğin resmi verilmiştir. Çalışmanın sonunda html linki paylaşılacaktır.

r=Quandl("FRED/GDPC1") %>% 
as_tibble()%>% mutate(tur=rep("RGSMH",298))

g=Quandl("FRED/GDP") %>% 
as_tibble() %>% mutate(tur=rep("GSMH",298))

rp=Quandl("FRED/GDPPOT")%>% 
as_tibble() %>% mutate(tur=rep("RPGSMH",332))

veri=bind_rows(r,g, rp) %>% rename("Hasıla"=Value, "Tarih"=Date)


lv=pivot_wider(veri, names_from = tur, values_from = Hasıla) #tablonun geniş formata dönüştürülmesi

sekil <- plot_ly(lv, x = ~Tarih, y = ~GSMH, name = 'GSMH', type = 'scatter', mode = 'lines') 
sekil<- sekil %>% add_trace(y = ~RGSMH, name = 'RGSMH', mode = 'lines') 
sekil <- sekil %>% add_trace(y = ~RPGSMH, name = 'RPGSMH', mode = 'lines')%>%
         layout(title = "ABD GSMH Türleri",
         xaxis = list(title = "Tarih"),
         yaxis = list (title = "Hasıla ($)"))

sekil

Dinamik grafik oluşturma 4

Burada plotly kütüphanesi kullanılarak birden fazla değişken aynı grafik üzerinde alan grafiği olarak gösterilmiştir. Ancak burada sadece oluşturulan grafiğin resmi verilmiştir. Çalışmanın sonunda html linki paylaşılacaktır.

r=Quandl("FRED/GDPC1") %>% 
as_tibble()%>% mutate(tur=rep("RGSMH",298))

g=Quandl("FRED/GDP") %>% 
as_tibble() %>% mutate(tur=rep("GSMH",298))

rp=Quandl("FRED/GDPPOT")%>% 
as_tibble() %>% mutate(tur=rep("RPGSMH",332))

veri=bind_rows(r,g, rp) %>% rename("Hasıla"=Value, "Tarih"=Date)


lv=pivot_wider(veri, names_from = tur, values_from = Hasıla)

#alan grafiği
c <- plot_ly(na.omit(lv), x = ~Tarih, y = ~GSMH, type="scatter", mode="markers", fill = "tozeroy", name = 'GSMH')
c <- add_trace(c, x = ~Tarih, y = ~RGSMH, type="scatter", mode="markers", fill = "tozeroy", name = 'RGSMH')
c <- add_trace(c, x = ~Tarih, y = ~RPGSMH, type="scatter", mode="markers", fill = "tonexty", name='RPGSMH')%>%
         layout(title = "ABD GSMH Türleri",
         xaxis = list(title = "Tarih"),
         yaxis = list (title = "Milyar $"))
c

Dünya Bankası metaveri

data <- Quandl.datatable("WB/METADATA")
data %>% head(10) %>% kable() %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = F, html_font="calibri")

Dünya Bankası (DB) veri seti

Burada DB veri setinden TX.VAL.TRVL.ZS.WT değişkeninden orta yüksek gelirli ülkelerde hizmet ihracatının payı (%) grafikle verilmiştir.

options(scipen=999)
veri=Quandl.datatable('WB/DATA') %>% 
as_tibble() %>% filter(country_name=="Upper middle income")%>%
filter(series_id=="TX.VAL.TRVL.ZS.WT")%>%select(year, value) 
veri %>%  
ggplot(aes(x=year, y=value))+ geom_line(aes(color="red"), size = 2) + theme_dark() + ggtitle("Orta Yüksek Gelir Grubundaki Ülkelerde Hizmet İhracatının Payı (%)")+ xlab("Yıl")+ylab("%")+
theme(plot.title = element_text(hjust = 0.5))+
theme(legend.position = "none")+
scale_x_continuous(breaks = seq(from = min(veri$year), to = max(veri$year), by = 2))+
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+
labs(caption = "Veri kaynağı: Dünya Bankası")

Sonuç

Çalışma kapsamında Quandl R paketi ile veri setlerinin nasıl çekildiği, meta verinin nasıl elde edildiği, özellikle zaman serileri bulunan veri setlerinde dinamik grafiklerin nasıl oluşturulduğu dygraphs, quantmod ve plotly paketleri kullanılarak ele alınmıştır.

Bu çalışma ile ilgili çalışmanın tamamına Quandl Kütüphanesi İle Veri Çekme ve Dinamik Grafik Oluşturma adlı çalışmamın olduğu  https://rpubs.com/tevfik1461/vericekme  linkinden ulaşabilir, dinamik grafikleri burada görebilirsiniz.

Faydalı olması ve farkındalık oluşturması dileğiyle.

Bilimle ve teknolojiyle kalınız.

Saygılarımla…

Not: Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.

Note: It can not be cited or copied without referencing.

Kaynaklar

  • https://docs.quandl.com/docs/r-installation#to-make-full-use-of-the-package-set-your-api-key-as-follows
  • https://blog.quandl.com/using-quandl-in-r
  • https://www.r-graph-gallery.com/318-custom-dygraphs-time-series-example.html
  • https://rstudio.github.io/dygraphs/gallery-series-highlighting.html
  • Dan Vanderkam, JJ Allaire, Jonathan Owen, Daniel Gromer and Benoit Thieurmel (2018). dygraphs: Interface to ‘Dygraphs’ Interactive
    Time Series Charting Library. R package version 1.1.1.6. https://CRAN.R-project.org/package=dygraphs
  • H. Wickham. ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York, 2016.
  • Raymond McTaggart, Gergely Daroczi and Clement Leung (2021). Quandl: API Wrapper for Quandl.com. R package version 2.11.0.
    https://CRAN.R-project.org/package=Quandl
  • Jeffrey A. Ryan and Joshua M. Ulrich (2020). xts: eXtensible Time Series. R package version 0.12.1.
    https://CRAN.R-project.org/package=xts
  • Matt Dowle and Arun Srinivasan (2021). data.table: Extension of data.frame. R package version 1.14.0.
    https://CRAN.R-project.org/package=data.table
  • C. Sievert. Interactive Web-Based Data Visualization with R, plotly, and shiny. Chapman and Hall/CRC Florida, 2020.
  • Quandl Kütüphanesi İle Veri Çekme ve Dinamik Grafik Oluşturma. https://rpubs.com/tevfik1461/vericekme

Önceki yazı Sonraki Yazı
dinamik grafikdygraphsggplotplotlyquandlxts

Yorum Yaz Cevabı iptal et

Son Yazılar

  • Kanada Sağlık Sisteminde Bekleme Süreleri
  • Araştırma Metodolojisi Notları-II
  • Araştırma Metodolojisi Notları-I
  • Microsoft Excel’de Bulut Endeks-Beta [BE-β] Simülasyonu
  • R’da Statik ve Dinamik Haritalama Vaka Çalışmaları: Türkiye Örneği

Son Yorumlar

  1. Küresel İnovasyon Endeksi 2021 Yılı Raporu ve Türkiye - winally.com - Küresel İnovasyon Endeksi’nde Türkiye Ne Durumda?
  2. R’da Birliktelik Kuralları | canözkan - Apriori Algoritması Üzerine Bir Vaka Çalışması: A Case Study on Apriori Algorithm
  3. Tevfik BULUT - Python’da Şans Oyunları Perspektifinden Olasılık : Probability from Perspective of the Chance Games in Python
  4. Ahmet Aksoy - Python’da Şans Oyunları Perspektifinden Olasılık : Probability from Perspective of the Chance Games in Python
  5. Tevfik BULUT - Z Tablosuna Göre Güven Aralığının Hesaplanmasına Yönelik Bir Simülasyon Çalışması: A Simulation Study for Calculating Confidence Interval by Z Table

Arşivler

  • Ocak 2023
  • Ekim 2022
  • Eylül 2022
  • Nisan 2022
  • Mart 2022
  • Ekim 2021
  • Eylül 2021
  • Ağustos 2021
  • Temmuz 2021
  • Haziran 2021
  • Mayıs 2021
  • Nisan 2021
  • Şubat 2021
  • Ocak 2021
  • Aralık 2020
  • Kasım 2020
  • Ekim 2020
  • Eylül 2020
  • Ağustos 2020
  • Temmuz 2020
  • Haziran 2020
  • Mayıs 2020
  • Nisan 2020
  • Mart 2020
  • Şubat 2020
  • Ocak 2020
  • Aralık 2019
  • Kasım 2019
  • Ekim 2019
  • Eylül 2019
  • Ağustos 2019
  • Mayıs 2019
  • Şubat 2019
  • Aralık 2018
  • Eylül 2018
  • Ağustos 2018
  • Temmuz 2018
  • Mayıs 2018
  • Nisan 2018
  • Ekim 2017
  • Temmuz 2017
  • Haziran 2017
  • Mayıs 2017
  • Ocak 2017

Kategoriler

  • Genel
  • İstatistik
  • Makine Öğrenme
  • Model Geliştirme
  • Sağlık
  • Teknoloji

Kategoriler

  • Genel
  • İstatistik
  • Makine Öğrenme
  • Model Geliştirme
  • Sağlık
  • Teknoloji

Etiketler

Accuracy Basit Tesadüfi Örnekleme Bernoulli Olasılık Dağılımı Confusion Matrix Coronavirus Doğruluk Doğruluk Oranı Dünya Sağlık Örgütü EDA Epidemi Epidemiyology Epidemiyoloji Exploratory Data Analysis Exploratory Data Analysis (EDA) F1 Forecast Keşifsel Veri Analizi Kitle Olasılık Fonksiyonu Koronavirüs Koronavirüs Salgını Olasılık Olasılıklı Örneklem OSB Pandemi Point Estimation Point Forecast Prevalance Prevalans Probability Sampling R Recall Salgın Sağlık Bakanlığı Simple Random Sampling Tahmin TBATS TURKEY TÜRKİYE Veri Madenciliği WHO World Health Organization Yapay Zeka ÇKKV Örneklem Örneklem Büyüklüğü
Logo

Burada, gazete ve dergilerde yayınlanan çalışmalarımın tamamı çalışmakta olduğum kurumdan bağımsız olarak özel hayatımda yaptığım çalışmalardır. Dolayısıyla, burada yer alan çalışmalardan emeğe saygı adına kaynak gösterilmesi suretiyle azami ölçüde herkes yararlanabilir.

Site Haritası

  • Ana Sayfa
  • Hakkında
  • Blog
  • İletişim

Linkler

  • winally.com

Bana Ulaşın

Bu sayfa, bazı temel bilgilerin ve bir iletişim formunun yer aldığı bir iletişim sayfasıdır. Suç teşkil edecek, yasadışı, tehditkar, rahatsız edici, hakaret ve küfür içeren, aşağılayıcı, küçük düşürücü, kaba, müstehcen, ahlaka aykırı, kişilik haklarına zarar verici ya da benzeri niteliklerde içeriklerden doğan her türlü mali, hukuki, cezai, idari sorumluluk içeriği gönderen Kişilere aittir.

  • Email: buluttevfik@gmail.com

© Copyright 2022 Tevfik Bulut