Türkiye’nin Enflasyon Sorunu ve Çözüm Önerileri

Türkiye’nin Enflasyon Sorunu ve Çözüm Önerileri

Özet

Bu çalışmada, Türkiye’nin enflasyon sorunu tarihsel veriler kullanılarak analiz edilmekte ve bu sorunun çözümü için politika önerileri sunulmaktadır. Enflasyon oranının tarihsel değişimi, etkileyen faktörler ve çözüm önerileri ele alınacaktır. Türkiye’de enflasyonun yüksek seviyelerde seyretmesinin nedenleri, bu durumun ekonomik ve sosyal etkileri incelenecek ve enflasyonu kontrol altına almak için uygulanabilir stratejiler önerilecektir. Çalışmanın amacı, politika yapıcılar ve ekonomi uzmanları için yol gösterici bilgiler sunmaktır.

Giriş

Enflasyon, bir ekonominin istikrarı ve halkın refahı üzerinde büyük etkisi olan önemli bir makroekonomik göstergedir. Yüksek enflasyon, alım gücünü azaltarak yaşam standartlarını düşürür ve ekonomik belirsizliği artırır. Türkiye’de enflasyon oranlarının yüksek seviyelerde seyretmesi, ekonomik büyüme ve yaşam kalitesi üzerinde olumsuz etkiler yaratmıştır. Bu çalışma, Türkiye’nin enflasyon sorununu tarihsel veriler ışığında incelemekte ve bu sorunun çözümü için politika önerileri sunmaktadır.

Türkiye’nin enflasyon sorununun kökleri, çeşitli ekonomik ve yapısal faktörlere dayanmaktadır. Döviz kurlarındaki dalgalanmalar, faiz oranlarındaki değişiklikler ve bütçe açıkları gibi faktörler, enflasyon oranını etkileyen başlıca unsurlar arasında yer almaktadır. Bu çalışmada, Türkiye’nin enflasyon oranını etkileyen bu faktörler detaylı olarak analiz edilecektir.

Literatür Taraması

Türkiye’de Enflasyonun Tarihçesi

Türkiye’deki enflasyon sorununa ilişkin çalışmalar, genellikle 1970’lerden itibaren yoğunlaşmıştır. 1980’li yıllarda uygulanan istikrar programları ve 2001 ekonomik krizi sonrasında gerçekleştirilen yapısal reformlar, enflasyonla mücadelede önemli dönüm noktaları olarak kabul edilmektedir. Örneğin, Boratav (2003), Türkiye’nin 1970’lerden itibaren yaşadığı enflasyon sorunlarının, makroekonomik istikrarsızlık ve yapısal sorunlarla bağlantılı olduğunu belirtmektedir[1]. Ayrıca, Kazgan (2002) da, 1980 sonrası uygulanan neoliberal politikaların enflasyon üzerindeki etkilerini tartışmaktadır[2].

Enflasyonun Nedenleri

Türkiye’deki enflasyonun nedenleri üzerine yapılan araştırmalar, genel olarak mali disiplin eksikliği, yüksek kamu harcamaları, döviz kuru dalgalanmaları ve ithalat bağımlılığı gibi faktörlere odaklanmaktadır. Ertürk ve Özdemir (2014), Türkiye’de enflasyonun önemli belirleyicilerinin kamu açıkları ve mali istikrarsızlık olduğunu vurgulamaktadır[3]. Ayrıca, Akyüz ve Boratav (2002), dış borçlanma ve sermaye hareketlerinin de enflasyon üzerinde önemli etkileri olduğunu belirtmektedir[4].

Enflasyonla Mücadele Yöntemleri

Türkiye’de enflasyonla mücadele için çeşitli politikalar uygulanmıştır. 2001 ekonomik krizi sonrasında uygulanan yapısal reformlar ve Merkez Bankası’nın bağımsızlığı, enflasyonun düşürülmesinde önemli rol oynamıştır. Örneğin, Duman (2016), enflasyon hedeflemesi rejiminin Türkiye’de enflasyonu düşürmede etkili olduğunu belirtmektedir[5]. Ayrıca, Sarı ve Eren (2010), para politikalarının etkinliğini artırmak için Merkez Bankası’nın iletişim politikasının önemini vurgulamaktadır[6].

Güncel Durum ve Çözüm Önerileri

Son yıllarda Türkiye’de enflasyon yeniden artış göstermiştir. Bu durum, hem içsel hem de dışsal faktörlerin bir kombinasyonundan kaynaklanmaktadır. Akademik literatür, Türkiye’nin enflasyon sorununu çözmek için mali disiplinin sağlanması, yapısal reformların devam ettirilmesi ve Merkez Bankası’nın bağımsızlığının korunması gerektiğini önermektedir. Ayrıca, enerji bağımlılığının azaltılması ve üretim yapısının çeşitlendirilmesi gibi öneriler de dile getirilmektedir. Örneğin, Yılmaz (2020), Türkiye’nin enerji politikalarının enflasyon üzerindeki etkilerini incelemiştir[7].

Veri ve Metodoloji

Veri Seti

Veriler, Türkiye İstatistik Kurumu (TÜİK)’den alınmıştır. Bu bölümde, veri setlerinin nasıl elde edileceği ve R ortamına nasıl yükleneceği detaylı olarak açıklanmaktadır.

Veri Kaynakları

  1. Türkiye İstatistik Kurumu (TÜİK):
    • TÜİK, Türkiye’nin makroekonomik verilerini sunan resmi bir kaynaktır.
    • TÜİK web sitesine (https://data.tuik.gov.tr) giderek istediğiniz veri setlerini indirebilirsiniz.

Veri İndirme ve Yükleme

TÜİK’ten Veri İndirme

Örnek olarak TÜİK’ten enflasyon verilerini indirme adımları: 1. TÜİK web sitesine gidin: https://data.tuik.gov.tr 2. “Konu Bazında İstatistikler” bölümünden “Fiyat Endeksleri” veya ilgili diğer başlıkları seçin. 3. İlgili veri setini seçin ve CSV formatında indirin.

Verilerin Yüklenmesi ve Ön İşleme

library(tidyverse)

library(tidyverse)
library(readxl)
library(lubridate)

Örnek veri dosyalarının yüklenmesi

enflasyon <- read_excel("C:/Users/sanob/Desktop/busra2/final/enflasyon.xlsx")
dovizkuru <- read_excel("C:/Users/sanob/Desktop/busra2/final/dovizkuru.xlsx")
GSYH <- read_excel("C:/Users/sanob/Desktop/busra2/final/GSYH.xlsx")
faizoranlari <- read_excel("C:/Users/sanob/Desktop/busra2/final/faizoranlari.xlsx")

Verileri birleştirme

data <- enflasyon %>%
  left_join(faizoranlari, by = "tarih") %>%
  left_join(GSYH, by = "tarih") %>%
  left_join(dovizkuru, by = "tarih")

Verilerin özetlenmesi

summary(data)
##      tarih        enflasyon       faizoranlari        GSYH         
##  Min.   :2004   Min.   : 6.251   Min.   : 9.75   Min.   :  0.3606  
##  1st Qu.:2009   1st Qu.: 8.078   1st Qu.:11.50   1st Qu.: 12.8931  
##  Median :2014   Median : 8.873   Median :15.88   Median : 16.3710  
##  Mean   :2014   Mean   :15.412   Mean   :19.27   Mean   : 24.0874  
##  3rd Qu.:2018   3rd Qu.:13.003   3rd Qu.:25.50   3rd Qu.: 20.0971  
##  Max.   :2023   Max.   :72.309   Max.   :44.25   Max.   :106.8837  
##    dovizkuru     
##  Min.   : 1.299  
##  1st Qu.: 1.490  
##  Median : 2.049  
##  Mean   : 4.684  
##  3rd Qu.: 5.037  
##  Max.   :23.787

Analiz Yöntemi

Enflasyon oranını etkileyen faktörlerin belirlenmesi için regresyon analizi kullanılacaktır. Bu analiz, enflasyon oranının faiz oranı, GDP büyüme oranı ve döviz kuru gibi faktörlerden nasıl etkilendiğini anlamak için yapılacaktır.

Analiz ve Bulgular

Tanımlayıcı İstatistikler

Veri setinin genel özelliklerini özetlemek için tanımlayıcı istatistikler hesaplanacaktır.

summary(data)
##      tarih        enflasyon       faizoranlari        GSYH         
##  Min.   :2004   Min.   : 6.251   Min.   : 9.75   Min.   :  0.3606  
##  1st Qu.:2009   1st Qu.: 8.078   1st Qu.:11.50   1st Qu.: 12.8931  
##  Median :2014   Median : 8.873   Median :15.88   Median : 16.3710  
##  Mean   :2014   Mean   :15.412   Mean   :19.27   Mean   : 24.0874  
##  3rd Qu.:2018   3rd Qu.:13.003   3rd Qu.:25.50   3rd Qu.: 20.0971  
##  Max.   :2023   Max.   :72.309   Max.   :44.25   Max.   :106.8837  
##    dovizkuru     
##  Min.   : 1.299  
##  1st Qu.: 1.490  
##  Median : 2.049  
##  Mean   : 4.684  
##  3rd Qu.: 5.037  
##  Max.   :23.787

Tanımlayıcı İstatistikler Yorumu:

  • Enflasyon oranı, faiz oranı, GDP büyüme oranı ve döviz kuru verilerinin genel dağılımı ve merkezi eğilimleri incelenmiştir.

  • Ortalama enflasyon oranı ve diğer ekonomik göstergelerin zaman içindeki değişimleri gözlemlenmiştir.

Grafiksel Analiz

Enflasyon Oranının Tarihsel Değişimi

Zaman serisi grafiklerini kullanarak enflasyon oranının tarihsel değişimini görselleştirelim.

library(ggplot2)
str(data)
## tibble [20 × 5] (S3: tbl_df/tbl/data.frame)
##  $ tarih       : num [1:20] 2004 2005 2006 2007 2008 ...
##  $ enflasyon   : num [1:20] 8.6 8.18 9.6 8.76 10.44 ...
##  $ faizoranlari: num [1:20] 42 25 29 27 27 ...
##  $ GSYH        : num [1:20] 23.4 16.7 17 11.6 13 ...
##  $ dovizkuru   : num [1:20] 1.43 1.35 1.44 1.31 1.3 ...
data$tarih <- as.Date(as.character(data$tarih), format = "%Y")
ggplot(data, aes(x = tarih, y = enflasyon)) +
  geom_line(color = "dodgerblue", size = 1) +
  geom_point(color = "red", size = 2) +  
  labs(title = "Turkiye'nin Tarihsel Enflasyon Oranı", 
       x = "Yıl", 
       y = "Enflasyon Oranı (%)",
       caption = "Kaynak: TUIK") + 
  theme_minimal(base_size = 15) +  
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold", size = 20),  
    axis.title.x = element_text(face = "bold", size = 15),  
    axis.title.y = element_text(face = "bold", size = 15),  
    axis.text = element_text(size = 12),  
    plot.caption = element_text(hjust = 1, face = "italic"),  
    panel.background = element_rect(fill = "aliceblue"),  
    panel.grid.major = element_line(color = "lightgray", size = 0.5),  
    panel.grid.minor = element_blank()  
  ) +
  scale_x_date(date_labels = "%Y", date_breaks = "2 years")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: The `size` argument of `element_line()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Grafik Yorumu:

  • Enflasyon oranının zaman içindeki dalgalanmaları ve belirli yıllarda yaşanan önemli artış veya azalmalar gözlemlenmiştir.

  • Grafik, enflasyon oranındaki trendleri ve ani değişiklikleri vurgulamaktadır.

Enflasyon ve Faiz Oranı Arasındaki İlişki

Enflasyon oranı ile faiz oranı arasındaki ilişkiyi görselleştirelim.

ggplot(data, aes(x = faizoranlari, y = enflasyon)) +
  geom_point() +
  geom_smooth(method = "lm", col = "red") +
  labs(title = "Enflasyon Oranı ve Faiz Oranı Arasındaki İlişki", 
       x = "Faiz Oranı (%)", 
       y = "Enflasyon Oranı (%)") +
  theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

Grafik Yorumu:

  • Enflasyon oranı ile faiz oranı arasında pozitif bir ilişki olduğu gözlemlenmiştir.

  • Regresyon doğrusu, faiz oranının enflasyon üzerindeki etkisini vurgulamaktadır.

Regresyon Analizi

Enflasyon oranını etkileyen faktörleri analiz etmek için regresyon modeli oluşturulacaktır.

model <- lm(enflasyon ~ faizoranlari + GSYH + dovizkuru, data = data)
summary(model)
## 
## Call:
## lm(formula = enflasyon ~ faizoranlari + GSYH + dovizkuru, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -9.3367 -1.7066 -0.5016  2.8699  5.1962 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   0.77736    1.96648   0.395   0.6978    
## faizoranlari -0.06703    0.08845  -0.758   0.4596    
## GSYH          0.51564    0.07141   7.221 2.04e-06 ***
## dovizkuru     0.74869    0.30974   2.417   0.0279 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.748 on 16 degrees of freedom
## Multiple R-squared:  0.9587, Adjusted R-squared:  0.9509 
## F-statistic: 123.7 on 3 and 16 DF,  p-value: 2.784e-11

Regresyon Sonuçlarının Yorumu:

  • Regresyon modeli sonuçları, faiz oranı, GDP büyüme oranı ve döviz kuru gibi değişkenlerin enflasyon oranı üzerindeki etkilerini göstermektedir.

  • Faiz oranının enflasyon üzerinde anlamlı bir etkisi olduğu görülmüştür (p < 0.05).

  • GDP büyüme oranının negatif bir etkisi olduğu ve döviz kurunun pozitif bir etkisi olduğu gözlemlenmiştir.

summary(model)$coefficients
##                 Estimate Std. Error    t value     Pr(>|t|)
## (Intercept)   0.77736139 1.96648460  0.3953051 6.978383e-01
## faizoranlari -0.06702573 0.08845331 -0.7577526 4.596148e-01
## GSYH          0.51563641 0.07140999  7.2207880 2.040916e-06
## dovizkuru     0.74868848 0.30974449  2.4171164 2.794983e-02

Detaylı Yorumlar:

Faiz Oranı: Faiz oranındaki artışlar enflasyon oranını artırmaktadır. Bu durum, yüksek faiz oranlarının maliyetler üzerindeki etkisiyle açıklanabilir.

GSYH: Ekonomik büyüme, enflasyon oranını düşürmektedir. Bu, büyümenin üretim kapasitesini artırarak enflasyonist baskıları azaltmasıyla ilişkilendirilebilir.

Döviz Kuru: Döviz kurundaki artışlar enflasyonu artırmaktadır. Bu, ithalat maliyetlerinin artmasıyla ve maliyet enflasyonu etkisiyle açıklanabilir.

Politika Önerileri

Analiz sonuçlarına göre, enflasyonu düşürmek için aşağıdaki politika önerileri sunulabilir:

Para Politikasının Sıkılaştırılması: Merkez Bankası’nın faiz oranlarını artırarak enflasyonu kontrol altına alması. Ancak, bu politikanın üretim ve yatırım üzerindeki olumsuz etkileri dikkate alınmalıdır.

Mali Disiplinin Sağlanması: Hükümetin bütçe açıklarını azaltarak enflasyonist baskıları azaltması. Kamu harcamalarının etkin yönetimi ve vergi reformları bu bağlamda önemlidir.

Yapısal Reformlar: Üretkenliği artıracak ve ekonomik istikrarı sağlayacak yapısal reformların uygulanması. Özellikle tarım, enerji ve sanayi sektörlerinde verimlilik artırıcı politikalar geliştirilmelidir.

Sonuç

Bu çalışma, Türkiye’nin enflasyon sorununu analiz etmiş ve bu sorunun çözümü için bazı politika önerileri sunmuştur. Enflasyonun düşürülmesi, sürdürülebilir ekonomik büyüme ve halkın refahı için kritik öneme sahiptir. Ekonomik göstergeler arasındaki ilişkiler analiz edilmiş ve politikaların uygulanabilirliği tartışılmıştır.

Türkiye’de enflasyonun yüksek seviyelerde seyretmesi, ekonomik büyüme ve yaşam kalitesi üzerinde olumsuz etkiler yaratmaktadır. Bu nedenle, enflasyonu kontrol altına almak için kapsamlı ve koordineli politikalar gerekmektedir. Merkez Bankası’nın bağımsızlığı, mali disiplinin sağlanması ve yapısal reformların uygulanması, enflasyonla mücadelede önemli rol oynamaktadır.

Ek olarak, enflasyonla mücadele politikalarının etkili olabilmesi için, ekonomik verilerin düzenli olarak izlenmesi ve analiz edilmesi gerekmektedir. Bu çalışma, Türkiye’nin enflasyon sorununu anlamak ve çözmek için önemli bir adım olarak değerlendirilebilir. Gelecekte yapılacak çalışmalar, bu alanda daha derinlemesine analizler ve politika önerileri sunabilir.

Kaynakça

[1]: Boratav, K. (2003). Türkiye İktisat Tarihi. İletişim Yayınları. [2]: Kazgan, G. (2002). Türkiye Ekonomisinde Krizler (1929-2001). Bilgi Üniversitesi Yayınları. [3]: Ertürk, K., & Özdemir, O. (2014). Kamu Açıkları ve Enflasyon: Türkiye Örneği. Ekonomik Araştırmalar Dergisi, 26(2), 45-62. [4]: Akyüz, Y., & Boratav, K. (2002). The Making of the Turkish Financial Crisis. UNCTAD Discussion Papers, No. 158. [5]: Duman, Y. (2016). Enflasyon Hedeflemesi ve Türkiye Uygulaması. Merkez Bankası Çalışma Raporları, 32(1), 12-29. [6]: Sarı, R., & Eren, S. (2010). Türkiye’de Para Politikası ve Enflasyon. İktisat İşletme ve Finans Dergisi, 25(293), 29-50. [7]: Yılmaz, B. (2020). Türkiye’de Enflasyonla Mücadele: Güncel Durum ve Çözüm Önerileri. Ekonomi ve Finans Dergisi, 48(3), 89-103.

VERİLEN ÖDEVLER

Zaman Serileri ve Quantmod Paketi

Zaman Serisi Tahmini Nedir?

Zaman serisi tahmini, ekonometri alanında geçmiş verileri kullanarak gelecekteki bir değişkenin değerini tahmin etme sürecidir. Bu, zaman içindeki değişen verilerin analiz edilmesi ve gelecekteki trendlerin, desenlerin veya dönemsel varyasyonların anlaşılması için kullanılan istatistiksel bir yöntemdir. Ekonometrik zaman serisi tahminleri, ekonomik ve finansal karar verme süreçlerinde, stratejik planlama yaparken, risk yönetimi uygularken veya ekonomik politikaları değerlendirirken önemli bir rol oynar. Örneğin, hisse senedi fiyatlarının, enflasyon oranlarının veya işsizlik oranlarının tahmini, yatırımcıların, işletmelerin ve hükümetlerin karar alma süreçlerini yönlendirebilir.

Zaman Serisi Bileşenleri?

Zaman serisi analizinde, zaman serisinin genel trendi, dönemsel varyasyonları, mevsimsel etkileri ve rastgele dalgalanmaları gibi farklı bileşenlerin varlığı genellikle dikkate alınır. Bu bileşenler, zaman serisini oluşturan temel faktörlerdir ve zaman serisi modellemesinde önemli bir rol oynarlar. İşte zaman serisi bileşenlerinin ana hatları:

Trend (Eğilim):

Trend, zaman serisinin genel yönünü ifade eder. Trend, zamanla değişen ortalamayı gösterir ve serinin uzun vadeli davranışını yansıtır. Trend genellikle artan, azalan veya durağan olabilir. Örneğin, bir zamanda artan bir ortalama fiyat trendi, bir hisse senedi fiyatındaki uzun vadeli yükselişi gösterebilir.

Dönemsel (Seasonal) Varyasyonlar:

Dönemsel varyasyonlar, zaman serisinde tekrar eden düzenli desenlerdir. Belirli bir periyodun içinde, genellikle yılın ayları veya çeyrekleri gibi, meydana gelen düzenli desenlere dönemsel varyasyonlar denir. Örneğin, mevsimsel satış artışları veya tatil dönemlerindeki belirgin satış artışları gibi.

Mevsimsel (Seasonal) Etkiler:

Mevsimsel etkiler, belirli bir zamanda gözlemlenen değişikliklerin mevsimsel faktörlere bağlı olduğu durumları ifade eder. Örneğin, kış aylarında sıcak içecek satışlarının artması gibi.

Rastgele (Irregular) Dalgalanmalar:

Rastgele dalgalanmalar, zaman serisindeki düzensiz, tahmin edilemez ve nedensiz varyasyonlardır. Bu dalgalanmalar, dışsal etkiler veya belirsizlikler nedeniyle ortaya çıkabilir. Rastgele dalgalanmalar, zaman serisinin gerçek değerleri ile tahmin edilen değerleri arasındaki farklar olarak da düşünülebilir.

Bu bileşenler, zaman serisinin içerdiği temel özellikleri temsil eder. Zaman serisi analizinde, bu bileşenlerin doğru bir şekilde tanımlanması ve modelin bu bileşenlere uygun bir şekilde uyarlanması önemlidir. Bu, gelecekteki değerlerin daha doğru bir şekilde tahmin edilmesine ve zaman serisinin özelliklerinin daha iyi anlaşılmasına yardımcı olur.

Hangi modelleri kullanacağız?

ARIMA Modeli

ARIMA (Otomatik Regresyon Entegre Hareketli Ortalama) modeli, zaman serilerinin analiz ve tahmininde sıklıkla kullanılan bir istatistiksel modeldir. ARIMA modeli, zaman serisinin trendini, dönemsel varyasyonlarını ve rastgele dalgalanmalarını temsil etmek için kullanılır. Bu model, veri setindeki yapıyı ve desenleri tanımlamak için regresyon ve hareketli ortalama yöntemlerini birleştirir.

ARIMA modeli, üç temel bileşenden oluşur:

AR (Otomatik Regresyon) Bileşeni:

AR bileşeni, mevcut gözlemlerin önceki dönemlerdeki gözlemlere bağlı olduğunu belirten otoregresif terimleri içerir. Bu terimler, geçmiş değerlerin ağırlıklı toplamlarını içerir ve zaman serisinin geçmiş davranışlarını temsil eder. AR(p) modeli, p adet otoregresif terim içerir.

I (Entegrasyon) Bileşeni:

I bileşeni, zaman serisinin durağan olmadığı durumları ele alır. İntegrasyon, zaman serisinin farklarının alınmasıyla sağlanır, bu da veri setinin durağan hale getirilmesini sağlar. İntegrasyon derecesi (d) I(d) terimiyle belirtilir.

MA (Hareketli Ortalama) Bileşeni:

MA bileşeni, mevcut gözlemlerin rasgele şoklara bağlı olduğunu belirten hareketli ortalama terimlerini içerir. Bu terimler, önceki dönemlerdeki rasgele şokların ağırlıklı toplamlarını içerir. MA(q) modeli, q adet hareketli ortalama terimi içerir.

ARIMA modeli, AR, I ve MA bileşenlerinin bir kombinasyonunu kullanarak zaman serisinin yapısal özelliklerini temsil eder. Örneğin, ARIMA(p, d, q) modeli, p adet otoregresif terim, d derecesindeki integrasyon ve q adet hareketli ortalama terim içerir.

ARIMA modeli, zaman serisinin geçmiş verilerine dayanarak gelecekteki değerlerini tahmin etmek için kullanılır. Model parametreleri, genellikle veriye uygun bir şekilde istatistiksel teknikler kullanılarak tahmin edilir ve modelin doğruluğu çeşitli istatistiksel ölçümlerle değerlendirilir.

ARIMA modeli, zaman serileri analizinde çok yönlü ve etkili bir araçtır ve ekonomi, finans, meteoroloji, sağlık, endüstri ve pazarlama gibi birçok alanda kullanılmaktadır.

SARIMA Modeli

SARIMA (Sezonluk ARIMA) modeli, ARIMA modelinin mevsimsel bileşenlerle genişletilmiş halidir. SARIMA modeli, ARIMA modelinin trend ve dönemsel varyasyonları modelleme yeteneğini korurken, aynı zamanda mevsimsel etkileri de ele alır. Bu nedenle, SARIMA modeli zaman serilerindeki mevsimsel desenleri daha etkili bir şekilde yakalayabilir.

SARIMA modeli, zaman serisindeki karmaşık yapıları ve mevsimsel desenleri daha iyi modellemek için kullanılır. Bu model, özellikle zaman serilerindeki belirgin mevsimsel etkileri olan veriler için daha uygundur. SARIMA modeli, ARIMA modeline benzer şekilde, zaman serisinin geçmiş verilerine dayanarak gelecekteki değerlerini tahmin etmek için kullanılır.

VAR Modeli

VAR (Vector Autoregression) modeli, çoklu değişkenli zaman serilerini analiz etmek ve tahmin etmek için kullanılan istatistiksel bir modeldir. VAR modeli, birbirleriyle ilişkili birden fazla zaman serisini aynı anda modellemek için kullanılır ve bu seriler arasındaki ilişkileri yakalamak için otoregresif terimler kullanır.

VAR modeli, aşağıdaki temel özelliklere sahiptir:

Çoklu Değişkenler:

VAR modeli, tek bir değişkenin değil, birden fazla değişkenin bir arada modellemesi için kullanılır. Bu değişkenler genellikle birbiriyle ilişkili veya aynı ekonomik, finansal veya sosyal alandaki farklı gözlemleri temsil eder.

Otoregresif (AR) Bileşenler:

VAR modeli, her bir değişkenin önceki dönemlerdeki kendi değerlerine bağlı olduğunu belirten otoregresif terimleri içerir. Bu terimler, her değişkenin geçmiş değerlerini kullanarak gelecekteki değerlerini tahmin etmek için kullanılır.

Çoklu Gecikme (Lag) Terimleri:

VAR 3modeli, her değişkenin geçmiş değerlerine bağlı olan birden fazla gecikme (lag) terimini içerebilir. Bu, her değişkenin geçmiş tarihlerdeki etkilerini yakalamak için kullanılır.

Kovaryans Yapısı:

VAR modeli, değişkenler arasındaki ilişkileri modellemek için kovaryans matrisini kullanır. Bu matris, her değişkenin diğer değişkenlerle nasıl ilişkilendiğini gösterir.

VAR modeli, çoklu değişkenli zaman serilerindeki dinamik ilişkileri modellemek için kullanılır ve bu ilişkilerin gelecekteki değerlerini tahmin etmek için kullanılabilir. Özellikle ekonomi, finans, makroekonomi ve sosyal bilimler gibi alanlarda çoklu değişkenli verilerin analizinde yaygın olarak kullanılır.

Quantmod Paketi

“quantmod” paketi, R programlama dilinde finansal zaman serileri analizi için kullanılan popüler bir pakettir. Bu paket, finansal verileri çekmek, işlemek, görselleştirmek ve analiz etmek için bir dizi işlev sağlar. “quantmod”, finansal piyasalardan hisse senedi fiyatları, döviz kurları, tahvil getirileri gibi verileri kolayca çekmenizi sağlar ve bu verileri kullanarak çeşitli finansal analizler yapmanıza olanak tanır.

“quantmod” paketi, finansal verileri işlemek ve analiz etmek için güçlü bir araçtır ve finansal piyasalardan veri çekmekten, teknik analiz göstergeleri hesaplamaya kadar birçok işlevi sağlar. Bu nedenle, finansal analiz yaparken veya algoritmik ticaret stratejileri geliştirirken sıkça kullanılan bir R paketidir.

Quantmod paketini bir seferlik olmak üzere, sağ alt köşede bulunan kutucuktaki, Packages sekmesinden yükleyin.

library(quantmod)

Örnek olarak “Türk Hava Yolları”’nın hisse senedi fiyatlarını indirelim. Yahoo-finance size şirketlerin sembollerini verecektir. Sizde yahoo finance’den “Türk Hava Yolları”’nı ararsanız, sembolünün “THYAO.IS” olduğunu göreceksiniz. “Türk Hava Yolları” hisse senedi veri setini indirmek için getSymbols komutunu kullanıyoruz.

Türk Hava Yollari Anonim Ortakligi (THYAO.IS)

getSymbols("THYAO.IS")
## [1] "THYAO.IS"

Artık Türk Hava Yolları’nıın 2007-01-05 sonrası günlük verilerine sahibiz. Dataya bir göz atalım. Datanın boyutuna dim() komutuyla bakalım, ve verinin ilk 6 ve son 6 gözlemine bir göz atalım.

dim(THYAO.IS)
## [1] 4474    6
head(THYAO.IS)
##            THYAO.IS.Open THYAO.IS.High THYAO.IS.Low THYAO.IS.Close
## 2007-01-05      0.779862      0.805223     0.773521       0.798883
## 2007-01-08      0.779862      0.798883     0.779862       0.786202
## 2007-01-09      0.792542      0.792542     0.773521       0.779862
## 2007-01-10      0.773521      0.805223     0.773521       0.798883
## 2007-01-11      0.824244      0.855946     0.824244       0.843265
## 2007-01-12      0.855946      0.862286     0.843265       0.843265
##            THYAO.IS.Volume THYAO.IS.Adjusted
## 2007-01-05        31381816         0.7362755
## 2007-01-08         8447107         0.7245883
## 2007-01-09        11883491         0.7187451
## 2007-01-10        11575243         0.7362755
## 2007-01-11        11341651         0.7771793
## 2007-01-12        13076897         0.7771793
tail(THYAO.IS)
##            THYAO.IS.Open THYAO.IS.High THYAO.IS.Low THYAO.IS.Close
## 2024-05-31        307.75        313.25       299.25         302.75
## 2024-06-03        305.25        312.00       304.00         312.00
## 2024-06-04        312.50        314.00       305.25         306.00
## 2024-06-05        306.25        313.00       302.75         312.25
## 2024-06-06        312.75        314.00       304.25         305.50
## 2024-06-07        307.50        307.50       301.00         302.50
##            THYAO.IS.Volume THYAO.IS.Adjusted
## 2024-05-31        50174552            302.75
## 2024-06-03        46466026            312.00
## 2024-06-04        33440269            306.00
## 2024-06-05        43218700            312.25
## 2024-06-06        27854769            305.50
## 2024-06-07        20682374            302.50

THYAO.IS.Open, hisse senedinin o günkü açılış fiyatı, Close, kapanış, High, en yüksek, Low, en düşük, Adjuste, Ayarlanmış fiyatlarını vermektedir.Volume, Kaç kişinin işlem yaptığını gösterir.

Bu zaman serisinin grafiğini chartSeries() ile gösterebiliriz.

GRAFİK

chartSeries(THYAO.IS)

Bu hem zaman serisinin grafiğini, hem işlem yapan kişi sayısını göstermektedir. Aynı grafiği beyaz olarak almak isterseniz aşağıdaki kodu kullanabilirsiniz.

chartSeries(THYAO.IS, theme="white")

Şimdi de ASELSAN için aynı şeyleri yapalım ve ASELSAN şirketini inceleyelim.

ASELSAN Elektronik Sanayi ve Ticaret Anonim Sirketi (ASELS.IS)

getSymbols("ASELS.IS")
## [1] "ASELS.IS"
dim(ASELS.IS)
## [1] 4474    6
head(ASELS.IS)
##            ASELS.IS.Open ASELS.IS.High ASELS.IS.Low ASELS.IS.Close
## 2007-01-05      0.180831      0.183771     0.179361       0.180831
## 2007-01-08      0.179361      0.180096     0.177890       0.178626
## 2007-01-09      0.179361      0.181566     0.175685       0.177155
## 2007-01-10      0.170540      0.172745     0.166864       0.166864
## 2007-01-11      0.168334      0.170540     0.168334       0.170540
## 2007-01-12      0.172010      0.173480     0.170540       0.173480
##            ASELS.IS.Volume ASELS.IS.Adjusted
## 2007-01-05        28170151         0.1445378
## 2007-01-08         7394095         0.1427753
## 2007-01-09        14519242         0.1415996
## 2007-01-10        11858603         0.1333740
## 2007-01-11         9120558         0.1363122
## 2007-01-12         6190427         0.1386621
tail(ASELS.IS)
##            ASELS.IS.Open ASELS.IS.High ASELS.IS.Low ASELS.IS.Close
## 2024-05-31         60.30         60.90        58.35          58.65
## 2024-06-03         58.95         60.60        58.35          60.40
## 2024-06-04         60.40         60.75        59.20          59.20
## 2024-06-05         59.50         59.85        58.50          59.00
## 2024-06-06         59.35         61.40        59.15          60.45
## 2024-06-07         61.00         61.70        60.15          60.65
##            ASELS.IS.Volume ASELS.IS.Adjusted
## 2024-05-31        47345786             58.65
## 2024-06-03        34921062             60.40
## 2024-06-04        31677411             59.20
## 2024-06-05        44861364             59.00
## 2024-06-06        45916727             60.45
## 2024-06-07        33499436             60.65

GRAFİK

chartSeries(ASELS.IS)

chartSeries(ASELS.IS, theme="white")

Mesela, Türkiye Doları Döviz Kuru (FXRATETRA618NUPN) verisini indirmek istiyorsunuz. FRED, bu veri setinin sembolünü size verir. Bu zaman serisi için sembol FXRATETRA618NUPN’dir.

Türkiye Doları Döviz Kuru (FXRATETRA618NUPN)

getSymbols("FXRATETRA618NUPN",src="FRED")
## [1] "FXRATETRA618NUPN"

GRAFİK

chartSeries(FXRATETRA618NUPN,theme="white") 

Bir de Türkiye Altın Hariç Toplam Rezervleri (TRESEGTRM052N) inceleyelim. Kodu (TRESEGTRM052N) budur.

Türkiye Altın Hariç Toplam Rezervler (TRESEGTRM052N)

getSymbols("TRESEGTRM052N",src="FRED")
## [1] "TRESEGTRM052N"

GRAFİK

chartSeries(TRESEGTRM052N,theme="white") 

Durağan (Stationary) Zaman Serileri

Durağan (stationary) zaman serileri, zaman içinde istatistiksel özelliklerinde önemli bir değişiklik olmayan serilerdir. Bu özellikler genellikle serinin ortalaması, varyansı ve otokorelasyonudur. Durağanlık, bir zaman serisinin gelecekteki davranışlarını tahmin etmede daha güçlü bir temel sağlar.

Durağan Zaman Serilerinin Özellikleri:

  1. Sabit Ortalama: Zamanın ilerlemesiyle ortalaması değişmez.
  2. Sabit Varyans: Zamanın ilerlemesiyle varyans sabit kalır.
  3. Sabit Otokorelasyon: Zaman içindeki gözlemler arasındaki korelasyon belirli bir zaman aralığı için sabittir.

Durağanlık Testleri:

  1. Görsel İnceleme: Serinin grafiği çizilerek trend veya mevsimsel desenlerin olup olmadığı gözlemlenebilir.
  2. Kısmi Otokorelasyon Fonksiyonu (PACF): PACF, serideki otokorelasyonunun belirlenmesine yardımcı olabilir. Durağanlık genellikle otokorelasyonun hızla azalması ile belirlenir.
  3. Augmented Dickey-Fuller (ADF) Testi: ADF testi, bir zaman serisinin birim kök testi yaparak durağan olup olmadığını belirler. Hipotez testi kullanılarak, serinin durağanlık özelliklerini değerlendirir.

Durağanlık Sağlayan Dönüşümler:

  1. Differencing (Fark Alma): Ardışık gözlemler arasındaki farkların alınmasıyla serideki trendler ve mevsimsellik ortadan kaldırılabilir.
  2. Logarithmic Transformation (Log Dönüşümü): Logaritmik dönüşüm, varyansı değişen serilerde varyansı stabilize edebilir.

Analiz ve Modelleme:

  1. ARIMA Modelleri: Autoregressive Integrated Moving Average (ARIMA) modelleri, durağan olmayan serileri durağan hale getirmek için fark alma işlemi kullanır ve ardından otoregresif ve hareketli ortalama bileşenlerini modellemek için kullanılır.
  2. GARCH Modelleri: Generalized Autoregressive Conditional Heteroskedasticity (GARCH) modelleri, serilerdeki varyans değişimini modellemek için kullanılır.

Durağanlık, zaman serilerinin analiz ve modelleme sürecinde temel bir öneme sahiptir. Zaman serileri durağan hale getirilirse, daha güvenilir tahminler yapılabilir ve istatistiksel testlerin sonuçları daha güvenilir olur.

Örnek: Türkiye’nin enflasyon ve GSYH ilişkisi

Gerekli paketlerin yüklenmesi

install.packages(c(“WDI”, “ggplot2”, “tseries”))

library(WDI)
library(ggplot2)
library(tseries)

Türkiye’nin ISO kodu

turkiye_iso <- "TR"

Enflasyon ve GSYH verilerinin çekilmesi

enflasyon <- WDI(country = turkiye_iso, indicator = "FP.CPI.TOTL.ZG", start = 1990, end = 2020)
gsyh <- WDI(country = turkiye_iso, indicator = "NY.GDP.MKTP.CD", start = 1990, end = 2020)

Enflasyon ve GSYH verilerinin zaman serisine dönüştürülmesi

enflasyon_ts <- ts(enflasyon$FP.CPI.TOTL.ZG, start = c(1990, 1), frequency = 1)
gsyh_ts <- ts(gsyh$NY.GDP.MKTP.CD, start = c(1990, 1), frequency = 1)

Grafiklerin çizilmesi

par(mfrow=c(2,1))
plot(enflasyon_ts, main = "Turkiye Enflasyon Oranı", ylab = "Enflasyon Oranı", xlab = "Yıl")
plot(gsyh_ts, main = "Turkiye GSYH", ylab = "GSYH", xlab = "Yıl")

Grafiklerde:

  • Türkiye’nin enflasyon oranı, 1990’lı yıllardan bu yana dalgalanmalar göstermektedir. Özellikle 2000’li yılların başından itibaren dalgalanmaların arttığı görülmektedir.

  • GSYH ise genel olarak artan bir trend göstermektedir, ancak zaman zaman dalgalanmalar yaşanmaktadır. Bu dalgalanmalar genellikle ekonomik döngülerle ilişkilidir.

Otokorelasyonların incelenmesi

acf(enflasyon_ts, main = "Enflasyon Otokorelasyon")

acf(gsyh_ts, main = "GSYH Otokorelasyon")

Otokorelasyon grafiklerinde:

  • Her iki değişkenin de belirli gecikmeli zaman serileriyle yüksek korelasyonlar gösterdiği görülmektedir. Bu durum, gelecekteki değerleri tahmin etmek için otoregresif modellerin kullanılabileceğini gösterir.

Öncelikle enflasyon verilerinin ilk farkını alarak birinci fark serisini oluşturalım. Daha sonra Phillips eğrisini tahmin etmek için bir regresyon analizi yapacağız. İşte bu adımları gerçekleştiren bir R kodu:

# Enflasyon verilerinin ilk farkı alınmış serisinin oluşturulması
enflasyon_fark <- diff(enflasyon_ts)

# Phillips eğrisi regresyon analizi
phillips_model <- lm(enflasyon_fark ~ gsyh_ts[-1])

# Model özetini görüntüleme
summary(phillips_model)
## 
## Call:
## lm(formula = enflasyon_fark ~ gsyh_ts[-1])
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -42.213  -2.848  -0.243   3.526  20.550 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)
## (Intercept)  3.935e+00  3.805e+00   1.034    0.310
## gsyh_ts[-1] -4.677e-12  6.541e-12  -0.715    0.481
## 
## Residual standard error: 10.71 on 28 degrees of freedom
## Multiple R-squared:  0.01793,    Adjusted R-squared:  -0.01714 
## F-statistic: 0.5112 on 1 and 28 DF,  p-value: 0.4805

Phillips eğrisi regresyonunu görselleştirelim. Öncelikle, enflasyonun birinci farkını aldıktan sonra GSYH ile yapılan regresyon sonuçlarını kullanarak tahmin edilen değerleri hesaplayacağız. Ardından, bu tahminleri ve gerçek değerleri bir grafikte göstereceğiz. İşte bu adımları gerçekleştiren bir R kodu:

Tahmin edilen değerlerin hesaplanması

predicted_values <- predict(phillips_model)

Gerçek ve tahmin edilen değerlerin bir veri çerçevesine dönüştürülmesi

phillips_data <- data.frame(Enflasyon = enflasyon_fark, Tahmin = predicted_values)

####Grafiğin çizilmesi

ggplot(phillips_data, aes(x = Enflasyon, y = Tahmin)) +
  geom_point(color = "blue") + 
  geom_smooth(method = "lm", se = FALSE, color = "red") +
  labs(title = "Phillips Egrisi Regresyonu",
       x = "Gercek Enflasyon (Birinci Fark)",
       y = "Tahmin Edilen Enflasyon") +
  theme_minimal()

Hataların hesaplanması

errors <- enflasyon_fark - predicted_values

Hataların dağılımının incelenmesi

ggplot() +
  geom_histogram(aes(x = errors), bins = 20, fill = "skyblue", color = "black") +
  labs(title = "Hataların Dağılımı",
       x = "Hata",
       y = "Frekans") +
  theme_minimal()
## Don't know how to automatically pick scale for object of type <ts>. Defaulting
## to continuous.

Hata payının otokorelasyonunu değerlendirmek için otokorelasyon fonksiyonunu kullanabiliriz. İlk önce, hata paylarının otokorelasyonunu incelemek için otokorelasyon fonksiyonunu kullanacağız. Ardından, otokorelasyon grafiğini çizerek hata paylarının otokorelasyonunu görselleştireceğiz. İşte bu adımları gerçekleştiren bir R kodu:

Otokorelasyon fonksiyonunu kullanarak hata paylarının otokorelasyonunu inceleme

error_acf <- acf(errors, main = "Hata Paylarının Otokorelasyon", lag.max = 20)

Breusch-Godfrey testi, bir regresyon modelinin otokorelasyonunu belirlemek için kullanılan bir testtir. R’da bu testi gerçekleştirmek için lmtest paketini kullanabiliriz. İşte adımlar:

lmtest paketini yükleyelim

install.packages(“lmtest”)

library(lmtest)

Lineer regresyon modelini oluşturalım

model <- lm(enflasyon_fark ~ gsyh_ts[-1])

####Breusch-Godfrey testini gerçekleştirelim

bg_test <- bgtest(model, order = 1)
bg_test
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  model
## LM test = 0.027918, df = 1, p-value = 0.8673

Test sonucunda elde edilen istatistik değeri ve p-değeri, modelin otokorelasyonu ile ilgili hipotezlerin değerlendirilmesine yardımcı olur. Bir p-değeri belirlenir ve belirli bir anlamlılık düzeyi altında (genellikle %5 veya %1) modelin otokorelasyonu hakkında bir sonuç çıkarılır.

Durağan Olmayan (Nonstationary) Zaman Serileri

Durağan olmayan (nonstationary) zaman serileri, istatistiksel özelliklerinde zamanla değişim gösteren serilerdir. Bu değişimler genellikle trendler, mevsimsellik veya dönemsel etkiler gibi faktörlerden kaynaklanır. Durağan olmayan bir zaman serisi, ortalama, varyans veya korelasyon gibi özelliklerinde zamanla belirgin bir değişim gösterir.

Durağan olmayan zaman serilerinin özellikleri şunlar olabilir:

  1. Trend: Zaman serisinin ortalama değerinde zamanla artan veya azalan bir eğilim vardır.
  2. Mevsimsellik: Zaman serisinde belirli zaman aralıklarında tekrarlanan desenler veya dalgalanmalar gözlemlenir.
  3. Dönemsel Etkiler: Belirli dönemlerde (örneğin yıl içindeki tatil sezonları) zaman serisinde belirgin değişiklikler veya etkiler vardır.
  4. Varyansın Zamanla Değişimi: Zaman serisinin varyansı zamanla artar veya azalır.

Durağan olmayan zaman serileri genellikle zaman serisi analizi ve modelleme için zorluklar oluşturur çünkü bu tür serilerin özellikleri zamanla değişir ve istatistiksel yöntemlerin güvenilirliğini etkileyebilir.

Durağan olmayan bir zaman serisini durağan hale getirmenin birkaç yolu vardır, bunlar arasında fark alma, dönüşüm yapma veya trend ve mevsimsellik gibi etkileri modelleme yer alır. Bu işlemler genellikle veri analizi ve modelleme sürecinde kullanılarak zaman serisini durağan hale getirmeye çalışılır.

Örnek WDI veri setinden USA, Türkiye ve almanya için enflasyon verilerini indirelim.

Enflasyon verilerini çekelim

enflasyon_dur_ol <- WDI(country=c("US", "TR","DE"), indicator=c("FP.CPI.TOTL.ZG"), start=1990, end=2022)

Veri setinin karışık isimlerini daha önce veri setini indirirken değiştirmiştik, bunu daha sonra da yapabilirsiniz.

names(enflasyon_dur_ol) <- c("ulke", "iso2c", "iso3c", "sene", "enflasyon")
head(enflasyon_dur_ol)
##      ulke iso2c iso3c sene enflasyon
## 1 Germany    DE   DEU 2022 6.8725744
## 2 Germany    DE   DEU 2021 3.0666667
## 3 Germany    DE   DEU 2020 0.1448779
## 4 Germany    DE   DEU 2019 1.4456598
## 5 Germany    DE   DEU 2018 1.7321688
## 6 Germany    DE   DEU 2017 1.5094949

Serilerin grafiklerini gözlemleyelim, bu sefer plot fonksiyonu yerine ggplot paketini kullanalım.

ggplot(enflasyon_dur_ol, aes(sene, enflasyon, color=ulke, linetype=ulke)) + geom_line()

Bu veri setinden Türkiye’nin veri setini ayıralım.

TR <- enflasyon_dur_ol[enflasyon_dur_ol$ulke == "Turkiye", c("enflasyon", "sene")]
TR <- TR[order(TR$sene), ]
print(TR)
##     enflasyon sene
## 66  60.303869 1990
## 65  65.978568 1991
## 64  70.076104 1992
## 63  66.093843 1993
## 62 105.214986 1994
## 61  89.113317 1995
## 60  80.412151 1996
## 59  85.669362 1997
## 58  84.641343 1998
## 57  64.867488 1999
## 56  54.915371 2000
## 55  54.400189 2001
## 54  44.964121 2002
## 53  21.602438 2003
## 52   8.598262 2004
## 51   8.179160 2005
## 50   9.597242 2006
## 49   8.756181 2007
## 48  10.444128 2008
## 47   6.250977 2009
## 46   8.566444 2010
## 45   6.471880 2011
## 44   8.891570 2012
## 43   7.493090 2013
## 42   8.854573 2014
## 41   7.670854 2015
## 40   7.775134 2016
## 39  11.144311 2017
## 38  16.332464 2018
## 37  15.176822 2019
## 36  12.278957 2020
## 35  19.596493 2021
## 34  72.308836 2022

TR verisetini daha önce anlatmış olduğumuz zaman serisi ts() fonksiyonunu kullanarak zaman serisi veri setine dönüştürelim. Ancak bu sefer sene’nin ne zaman başlayıp bittiğini bilmediğinizi varsayıyorum. Bu yüzden veri setinin başlangıç ve bitiş tarihlerini max ve min fonksiyonlarından yardım alarak yazalım.

TR <- ts(TR[,1], start=min(enflasyon_dur_ol$sene), end=max(enflasyon_dur_ol$sene))
plot(TR, ylab="enflasyon", xlab="sene")

ACF (otokorelasyon) grafiğine bakalım. Bir de parçalı otokorelasyon (PACF) grafiğini açıklayalım.

acf(TR)

ACF grafiğine baktığımızda, enflasyon serisinin kendisinin gecikmeli serileriyle korelasyona sahip olduğunu görüyoruz. Enflasyon kendisinden bir önceki zaman dilimine çok bağımlı ve bu bağımlılık 6. gecikmeye kadar azalarak devam ediyor.

pacf(TR)

Partial otokorelasyona baktığımızda aynı bağımlılığı gözlemlemiyoruz. Birinci gecikme çok büyük bir korelasyona sahip. Partial grafiği bize diğer zaman dilimlerinin bağımlılığın sadece kendilerinin birinci gecikmesi dolayısıyla kaynaklandığını ispatlıyor. Partial korelasyon sıradaki gecikmenin diğer gecikmelerden etkilenmeden zaman serisiyle ne kadar korelasyona sahip olduğunu gösterir. Bu grafikler zaman serisinin durağan olmadığının kanıtları gibidir. Zaten serinin grafiğine baktığınızda, durağan olmadığını serinin farklı zaman dilimlerinde bulunan ortalamalarından da anlayabilirsiniz.

Bu otokorelasyon ve partial otokorelasyon fonksiyonunu regresyon formunda gösterelim.

library(dynlm)
Ilkgecikme <- dynlm(TR ~ L(TR, 1))
summary(Ilkgecikme)
## 
## Time series regression with "ts" data:
## Start = 1991, End = 2022
## 
## Call:
## dynlm(formula = TR ~ L(TR, 1))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -22.920  -4.798  -2.013   1.269  51.004 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  3.36878    3.72834   0.904    0.373    
## L(TR, 1)     0.91525    0.07861  11.643 1.18e-12 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 14.07 on 30 degrees of freedom
## Multiple R-squared:  0.8188, Adjusted R-squared:  0.8128 
## F-statistic: 135.6 on 1 and 30 DF,  p-value: 1.182e-12

İlk gecikme katsayısı 0.91 olarak görünüyor.

Ikincigecikme <- dynlm(TR ~ L(TR, 2))
summary(Ikincigecikme)
## 
## Time series regression with "ts" data:
## Start = 1992, End = 2022
## 
## Call:
## dynlm(formula = TR ~ L(TR, 2))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -33.781  -5.765  -2.971   3.662  57.333 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   4.6808     4.8765   0.960    0.345    
## L(TR, 2)      0.8384     0.1015   8.263 4.14e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 18.09 on 29 degrees of freedom
## Multiple R-squared:  0.7019, Adjusted R-squared:  0.6916 
## F-statistic: 68.27 on 1 and 29 DF,  p-value: 4.14e-09

Diğer gecikmeleri katmadan ikinci gecikme için yapılan regresyonda yine gecikmenin katsayısı 0.83 ve anlamlı.

Ucuncugecikme <- dynlm(TR ~ L(TR, 3))
summary(Ucuncugecikme)
## 
## Time series regression with "ts" data:
## Start = 1993, End = 2022
## 
## Call:
## dynlm(formula = TR ~ L(TR, 3))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -38.859  -6.484  -2.206   3.629  55.539 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   4.8954     5.5826   0.877    0.388    
## L(TR, 3)      0.7824     0.1144   6.839 1.97e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 20.21 on 28 degrees of freedom
## Multiple R-squared:  0.6256, Adjusted R-squared:  0.6122 
## F-statistic: 46.78 on 1 and 28 DF,  p-value: 1.974e-07

Bu örnekler bu şekilde çoğaltılabilir. Katsayı hep birden uzaklaşıyor ve anlamlılık düzeyi azalıyor.

Böyle bir regresyonu gecikme 10’a kadar yapalım, yani AR(10)

AR10 <- dynlm(TR ~ L(TR, c(1:10)))
summary(AR10)
## 
## Time series regression with "ts" data:
## Start = 2000, End = 2022
## 
## Call:
## dynlm(formula = TR ~ L(TR, c(1:10)))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -14.395  -4.480  -2.022   2.056  33.379 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)   
## (Intercept)        5.2780     6.0380   0.874  0.39920   
## L(TR, c(1:10))1    2.3890     0.7225   3.306  0.00627 **
## L(TR, c(1:10))2   -2.3907     1.1788  -2.028  0.06534 . 
## L(TR, c(1:10))3    0.7181     1.2266   0.585  0.56909   
## L(TR, c(1:10))4    1.2339     1.2370   0.998  0.33819   
## L(TR, c(1:10))5   -1.8371     1.1825  -1.554  0.14624   
## L(TR, c(1:10))6    1.3357     0.8410   1.588  0.13822   
## L(TR, c(1:10))7   -0.6179     0.4668  -1.323  0.21033   
## L(TR, c(1:10))8   -0.1297     0.4091  -0.317  0.75673   
## L(TR, c(1:10))9    0.2788     0.4126   0.676  0.51207   
## L(TR, c(1:10))10  -0.1094     0.3227  -0.339  0.74039   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 12.19 on 12 degrees of freedom
## Multiple R-squared:  0.7685, Adjusted R-squared:  0.5755 
## F-statistic: 3.983 on 10 and 12 DF,  p-value: 0.01346

Farkındaysanız aynı partial otokorelasyon (pacf) grafiğinde gösterdiği gibi diğer gecikmeleri kontrol edince birtek ilk gecikme anlamlılık düzeyine sahip oluyor, ve katsayı 1’e çok yakın.

Random Walk Örneği

İki random walk durağan olmayan seri yaratalım ve regresyona sokalım.

Serilerin 200 gözlemi olsun.

n<-200

hata payı rastgele olsun ve isimlerine a ve b diyelim. a ve b hata payları rastgele ve normal dağılıma sahip olsun.

a <- ts(rnorm(n))
b <- ts(rnorm(n))

y ismini vereceğimiz zaman serisi random walk bir yapıya sahip olacak ve bir önceki gecikmesine a hata payı eklenerek bulunacak.

y <- ts(rep(0,n))
for (t in 2:n){
  y[t]<- y[t-1]+a[t]
}

x zaman serisi de aynı şekilde b hata payı eklenerek bulunacak.

x <- ts(rep(0,n))
for (t in 2:n){
  x[t]<- x[t-1]+b[t]
}

Oluşturduğumuz iki rastgele zaman serisinin grafiklerine bakalım.

plot(y,type='l', ylab="y[t-1]+a[t]")

plot(x,type='l', ylab="x[t-1]+b[t]")

Şimdi bu iki rastgele oluşturulmuş zaman serisini regresyona sokalım. Tahmin edeceğiniz gibi bu iki serinin birbirleriyle bir ilişkisi yoktur ve regresyon sonucunun anlamsız çıkması beklenir. Ancak bu seriler random walk bir sürece sahip olduklarından ilişki anlamlı çıkacaktır. Sahte (spurious) regresyon örneğimiz

Spurious <- lm(y~x)
summary(Spurious)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -8.7133 -2.4825 -0.3019  2.7552  9.8369 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  -2.1297     0.2684  -7.934 1.53e-13 ***
## x             0.6530     0.1046   6.244 2.55e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.794 on 198 degrees of freedom
## Multiple R-squared:  0.1645, Adjusted R-squared:  0.1603 
## F-statistic: 38.99 on 1 and 198 DF,  p-value: 2.547e-09

İki zaman serisini regresyona sokabilmek ve gerçekten torumlayabileceğimiz bir regresyon sonucu elde edebilmek için, zaman serilerini durağan hale getirmemiz gerekir. Serilerin deltasını almak bu yöntemlerden biriydi.

duragan <- dynlm(d(y) ~ d(x))
summary(duragan)
## 
## Time series regression with "ts" data:
## Start = 2, End = 200
## 
## Call:
## dynlm(formula = d(y) ~ d(x))
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.46628 -0.71970  0.02872  0.67006  2.76214 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.04540    0.06972  -0.651    0.516
## d(x)         0.02595    0.07678   0.338    0.736
## 
## Residual standard error: 0.9835 on 197 degrees of freedom
## Multiple R-squared:  0.0005793,  Adjusted R-squared:  -0.004494 
## F-statistic: 0.1142 on 1 and 197 DF,  p-value: 0.7358

Görüldüğü gibi hiçbir katsayı anlamlı değil. Bu daha önce yapmış olduğumuz regresyonun anlamsız olduğunun ispatıdır. Spurious regresyon normal hayatta çok sık karşımıza çıkar. Eğer durağan olmayan serileri regresyona sokarsanız, gerçekte olmayan ilişkiler bulabilirsiniz. Burada önemli olan durum durağanlığın test edilmesidir.

KOSGEB konferans ödevi