1 Giriş

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.


2 Kullanılan Paketler ve İşlevleri

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.

3 Paketlerin Kurulumu ve Çağrılması

install.packages(c("CBRT", "ggplot2", "dplyr", "zoo", "forecast"))

library(CBRT)

library(ggplot2)

library(dplyr)

library(zoo)

library(forecast)

4 CBRT Paketinden Veri Çekme

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)

5 Finansal Trendlerin Görselleştirilmesi (ggplot2)

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()

6 Finansal Verinin Dağılımı: Histogram

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.

7 Kutu Grafiği (Boxplot)

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()

  • Kutu grafiği, medyan, çeyrekler ve olası aykırı değerleri görselleştirir.
  • Finansal verilerdeki aşırı değerler risk analizinde önemlidir.
  • Kutu grafiği serinin medyanını, çeyrek değerlerini (Q1–Q3) ve uç değerleri gösterir.
  • Finansal serilerde aşırı uç gözlemler (outlier) genellikle piyasa şoklarına işaret eder.

8 Hareketli Ortalamalar (Moving Averages)

  • Finansal serilerde kısa dönem dalgalanmaları yumuşatmak ve uzun dönem eğilimi görmek için hareketli ortalamalar kullanılır.

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()

  • 30 günlük hareketli ortalama kısa dönem trendi, 90 günlük ise uzun dönem trendi gösterir.

9 Basit Tahmin Yöntemleri

  • 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 (Basit) Tahmin

naive_model <- naive(usd_ts)

autoplot(naive_model) + labs(title = “Basit (Naive) Tahmin – USD/TL”, y = “Kur”, x = “Zaman”)

  • Naive tahmin, “yarının değeri bugünküyle aynıdır” varsayımına dayanır.
  • Volatil serilerde basit ama referans niteliğinde bir tahmin sağlar.

10 Ortalama Tahmin (Mean Forecast)

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”)

  • Bu model gelecekteki değerlerin serinin tarihsel ortalamasına yakınsamasını öngörür.
  • Uzun dönem denge eğilimi hakkında fikir verir.