Bu dersin amacı, R ortamında finansal verilerin analizi ve
görselleştirilmesi süreçlerini uygulamalı olarak
öğretmektir.
Örnek uygulamalarda, TCMB (Türkiye Cumhuriyet Merkez
Bankası) veri portalına bağlanmak için CBRT
paketi, görselleştirme için ggplot2, veri manipülasyonu
için dplyr, zaman serisi tahmini için
forecast, ve hareketli ortalamalar için zoo
kullanılacaktır.
Aşağıdaki paketler R ortamında analiz için gereklidir:
| Paket | Açıklama |
|---|---|
| CBRT | TCMB API aracılığıyla döviz kuru, faiz oranı, para arzı gibi finansal serileri R ortamına aktarmayı sağlar. |
| ggplot2 | Finansal verilerin grafiksel olarak analiz edilmesi ve profesyonel düzeyde görselleştirilmesi için kullanılır. |
| dplyr | Verilerin filtrelenmesi, dönüştürülmesi ve özetlenmesi gibi veri temizleme işlemleri için güçlü bir araçtır. |
| zoo | Zaman serisi verileri üzerinde hareketli ortalamalar (moving averages) gibi işlemleri kolaylaştırır. |
| forecast | Basit veya gelişmiş zaman serisi tahmin yöntemlerini (örneğin naive, mean, ARIMA, ETS) uygular. |
install.packages(c("CBRT", "ggplot2", "dplyr", "zoo", "forecast"))
library(CBRT)
library(ggplot2)
library(dplyr)
library(zoo)
library(forecast)
TCMB veri tabanına erişmek için API anahtarınızı tanımlayın. Bu örnekte USD/TL günlük kuru (TP.DK.USD.A) çekilmektedir.
myCBRTKey <- “YOUR_API_KEY” # kendi API anahtarınızı giriniz.
cb <- CBRT(apiKey = myCBRTKey)
usd <- getDataSeries(“TP.DK.USD.A”, startDate = “2015-01-01”, endDate = “2025-01-01”)
head(usd)
Finansal seriler genellikle trend ve dalgalanma yapılarıyla analiz edilir.
Aşağıda USD/TL serisinin 2015–2025 dönemi çizgi grafiği verilmiştir.
ggplot(usd, aes(x = Date, y = Value)) + geom_line(color = “steelblue”, size = 1) + labs(title = “USD/TL Günlük Kuru (2015–2025)”, x = “Tarih”, y = “Kur (TL)”, caption = “Kaynak: TCMB Veri Portalı (CBRT API)”) + theme_minimal()
ggplot(usd, aes(x = Value)) + geom_histogram(bins = 40, fill = “deepskyblue”, color = “white”) + labs(title = “USD/TL Dağılımı”, x = “Kur”, y = “Frekans”) + theme_minimal()
Histogram, döviz kurunun hangi değer aralıklarında yoğunlaştığını gösterir.
Kuyruk yapısı (sağa çarpıklık) finansal volatiliteye işaret edebilir.
ggplot(usd, aes(y = Value)) + geom_boxplot(fill = “tomato”, color = “black”, width = 0.3) + labs(title = “USD/TL Kutu Grafiği”, y = “Kur (TL)”) + theme_minimal()
usd <- usd %>% mutate(MA30 = rollmean(Value, k = 30, fill = NA, align = “right”), MA90 = rollmean(Value, k = 90, fill = NA, align = “right”))
ggplot(usd, aes(x = Date)) + geom_line(aes(y = Value), color = “gray80”) + geom_line(aes(y = MA30), color = “blue”, size = 1) + geom_line(aes(y = MA90), color = “red”, size = 1) + labs(title = “USD/TL Kuru ve Hareketli Ortalamalar”, x = “Tarih”, y = “Kur (TL)”, caption = “Mavi: 30 Günlük Ortalama | Kırmızı: 90 Günlük Ortalama”) + theme_minimal()
Zaman serilerinde gelecek döneme ilişkin öngörü üretmek için basit tahmin modelleri uygulanabilir.
Zaman Serisine Dönüştürme
usd_ts <- ts(usd$Value, frequency = 365, start = c(2015, 1))
naive_model <- naive(usd_ts)
autoplot(naive_model) + labs(title = “Basit (Naive) Tahmin – USD/TL”, y = “Kur”, x = “Zaman”)
mean_model <- meanf(usd_ts, h = 30)
autoplot(mean_model) + labs(title = “Ortalama Tahmin (30 Günlük İleri Dönem)”, y = “Kur”, x = “Zaman”)