Baslangic
R Studio ve ilk kodlar
Elektrik Talep Analizi - (Histogram)
Elektrik Talep Analizi - (Filtreleme)
Elektrik Talep Analizi - (Verinin Bilesenleri)
Elektrik Talep Analizi - (Programlamaya Giris)
Dogrusal Regresyon ile Elektrik Talebi
Ussel Duzgunlestirme ve STL ile Elektrik Talebi
Elektrik Talebinde Farkli Periyodlar (ARIMA ve TBATS)
2015-2024 - Aylik Dogalgaz Talebi
NOAA'dan gunluk sicaklik verilerine erisim
TCMB(Merkez Bankasi) verilerine erisim
EIA (ABD Eneji Bilgi Dairesi) verilerine erisim
Dunya Bankasi verileri, otomatik modelleme, ggplot2 ve tema
Merkez Bankasi ile EIA verileri birarada: Akaryakit fiyatlari
Enflasyon ve Akaryakit Iliskisini inceleme
merkezbankasi-correlasyon-analizi

Yakıt fiyatlarının enflasyona etkisi

Geçtiğimiz derslerde

görmüştük. Bu sefer biraz daha farklı bir işe girişeceğiz. Bunun için iki tane dosyayı bilgisayarınıza indirip oradan devam etmenizi tavsiye ederim. Bu dosyalardan biri ders 14 sonundaki veri dosyası, diğeri de aşağıda TCMB'den indirilecek aylık enflasyon veri seti

Çalışmada sırası ile

  • Ders 14'teki TL cinsinden akaryakıt fiyatları ve uluslararası petrol/akaryakıt fiyatlarını yükleyeceğiz
  • İlintisine/korelasyonuna bakacağız
  • Günlük verileri aylık verilere çevirmeyi göreceğiz
  • Aylık verilerin ilintisine bakacağız
  • TCMB'den aylık enflasyon verilerini ekleyerek, 1,2 ve 6 ay sonraki enflasyon verilerini ekleyeceğiz
  • Otomatik model seçimi ve grafikleme
  • Son olarak da aylık verilerin değişiminin ilişkisine bakacağız

Anlamadığınız birşey olursa mail adresim barissanli2@gmail.com

Verileri yükleme

Öncelikle bu bölümde işiminizin düşebileceği kütüphanelerden "xts"'i hemen yükleyelim. Eğer yüklenmiyorsa, kurmanız gerekir onun için

  • install.packages("xts")
In [1]:
library(xts)
Loading required package: zoo

Attaching package: 'zoo'

The following objects are masked from 'package:base':

    as.Date, as.Date.numeric

Ben bu kodlamayı defalarca çalıştırdığım için kullandığım verilerin hepsini sıfırlıyorum. Belki göremediğim ve sütun veya satır kalmasın, daha önceki işlemlerden kalan rakamlar tamamen silinsin diye.

In [217]:
toplam<-NULL
tot_ay<-NULL
oran_tot_ay<-NULL
enf<-NULL

Şimdi zaman serisi olarak bir önceki dersten gelen veri dosyamızı okuyalım. Dosyayı indirmek için bu linki kullanabilirsiniz :20171123-ders14sonu.rds

Normalde readRDS olarak okumak yeterliyken, zaman serisi verilerini doğru çekmediğini gördüğümden, readRDS'de bir de as.xts komutu ile (xts - zaman serisi) olarak oku talimatını veriyorum

In [218]:
toplam<-as.xts(readRDS("20171123-ders14sonu.rds"))

Bakalım verimiz aynen duruyor mu? Ben tail ile sonuna baktım, ama isteyen head ile verinin hangi noktadan başladığına da bakabilir

In [220]:
tail(toplam)
             WTI Brent LADizel Brent2Dizel    kur ABDBrentDizelTL    OTV
2017-11-13 56.77 62.94   2.022    2.241759 3.8644        2.288537 1.7945
2017-11-14 55.67 60.91   1.983    2.169652 3.8659        2.215785 1.7945
2017-11-15 55.28 61.25   1.964    2.176103 3.8664        2.222661 1.7945
2017-11-16 55.14 61.18   1.935    2.146959 3.8836        2.202648 1.7945
2017-11-17 56.21 61.34   1.941    2.118145 3.8684        2.164582 1.7945
2017-11-20 56.21 61.34   1.941    2.118145 3.8792        2.170625 1.7945
                Marj       KDV   Toplam  brentTL
2017-11-13 0.5621905 0.8361409 5.481368 243.2253
2017-11-14 0.5622761 0.8230610 5.395622 235.4720
2017-11-15 0.5623618 0.8243141 5.403837 236.8170
2017-11-16 0.5624474 0.8207271 5.380322 237.5986
2017-11-17 0.5625331 0.8138906 5.335505 237.2877
2017-11-20 0.5627900 0.8150247 5.342939 237.9501

İlintilere/Korelasyonlara göz atma

Veri setimizde yer alan her bir sütunun birbiri ile ilişkisine bakmak için

  • cor komutuna

tüm veri tablomuzu giriyoruz. Korelasyon tablosu 0-1 arasında, değerler verecek. Burada hangi sütun hangisi ile ne kadar ilişkili onu göreceğiz. Mesela aşağıdaki tabloda, akaryakıttaki KDV'nin Toplam yakıt bedeli ile korelasyonu 1 çıkmaktadır. Çünkü KDV tüm diğer bedellerin %18'i, dolayısıyla Toplam bedel de tüm diğer bedellerin %118'dir

In [158]:
cor(toplam)
WTIBrentLADizelBrent2DizelkurABDBrentDizelTLOTVMarjKDVToplambrentTL
WTI 1.0000000 0.96655335 0.96108302 0.88489189-0.4758159 0.4095883 -0.13378943-0.156312980.1538060 0.1538060 0.5248892
Brent 0.9665534 1.00000000 0.97988609 0.96710792-0.3898939 0.5591619 -0.02245455-0.045011360.2953459 0.2953459 0.6404560
LADizel 0.9610830 0.97988609 1.00000000 0.96826217-0.4087623 0.5388104 -0.06600724-0.099553420.2595842 0.2595842 0.5987140
Brent2Dizel 0.8848919 0.96710792 0.96826217 1.00000000-0.3104459 0.6531964 0.04261975 0.012133030.3806117 0.3806117 0.6794730
kur-0.4758159 -0.38989394-0.40876232-0.31044589 1.0000000 0.4924499 0.86652507 0.886775060.7317099 0.7317099 0.4269294
ABDBrentDizelTL 0.4095883 0.55916189 0.53881036 0.65319642 0.4924499 1.0000000 0.72797013 0.696043450.9331432 0.9331432 0.9729763
OTV-0.1337894 -0.02245455-0.06600724 0.04261975 0.8665251 0.7279701 1.00000000 0.962556340.9243415 0.9243415 0.7003214
Marj-0.1563130 -0.04501136-0.09955342 0.01213303 0.8867751 0.6960435 0.96255634 1.000000000.8976566 0.8976566 0.6697226
KDV 0.1538060 0.29534592 0.25958419 0.38061171 0.7317099 0.9331432 0.92434151 0.897656611.0000000 1.0000000 0.9038003
Toplam 0.1538060 0.29534592 0.25958419 0.38061171 0.7317099 0.9331432 0.92434151 0.897656611.0000000 1.0000000 0.9038003
brentTL 0.5248892 0.64045598 0.59871399 0.67947298 0.4269294 0.9729763 0.70032138 0.669722630.9038003 0.9038003 1.0000000

Günlük veriyi aylık veriye çevirmek

R'da günlük bir veriyi, zaten zaman serisi olarak belirledi isek, apply_monthly komutu ile aylık veriye çevirebiliriz. Ben aşağıda örnek olsun diye toplam verilerin herbirinin sütun sütun aylık veriye çevrilmesini gösterdim. apply_montly komutuna mean ekleyerek ortalamaları buluyoruz.

In [221]:
# Bu satırı çalıştırmasak da olur
toplam_ay<-apply.monthly(toplam$Toplam,mean)
brenttl_ay<-apply.monthly(toplam$brentTL,mean)
kur_ay<-apply.monthly(toplam$kur,mean)

Her bir sütunu ayrı ayrı aylık veriye çevireceğimize, hepsini tek elden, aşağıdaki şekilde aylık değerlere çevirerek, tot_ay değişkenine aktarabiliriz.

In [222]:
tot_ay<-apply.monthly(toplam,mean)

Şimdi aylık verilere baktığımızda verilerin ortalamasının ay sonu itibari ile verildiğini göreceğiz.

In [223]:
head(tot_ay)
                WTI    Brent  LADizel Brent2Dizel      kur ABDBrentDizelTL
2005-01-31 47.01529 44.42000 1.305059    1.232706 1.350876       0.4395560
2005-02-28 48.14895 45.44263 1.502263    1.417946 1.310689       0.4906775
2005-03-31 54.18682 53.10455 1.713318    1.679943 1.302986       0.5788139
2005-04-29 52.97905 51.88381 1.790048    1.753350 1.353514       0.6268816
2005-05-31 49.97550 48.69750 1.599500    1.559375 1.364845       0.5622496
2005-06-30 56.35227 54.35455 1.722409    1.661134 1.354682       0.5944219
             OTV      Marj       KDV   Toplam  brentTL
2005-01-31 0.927 0.1610680 0.2749723 1.802596 59.99470
2005-02-28 0.927 0.1634709 0.2846067 1.865755 59.53733
2005-03-31 0.927 0.1660458 0.3009347 1.972794 69.18657
2005-04-29 0.927 0.1687154 0.3100675 2.032664 70.22244
2005-05-31 0.927 0.1712281 0.2988860 1.959364 66.46262
2005-06-30 0.927 0.1739329 0.3051639 2.000519 73.62618

Şimdide de aylık ortalamalı verilerin birbiri ile korelasyonuna bakalım, komutumuz tekrar cor

In [224]:
cor(tot_ay)
WTIBrentLADizelBrent2DizelkurABDBrentDizelTLOTVMarjKDVToplambrentTL
WTI 1.0000000 0.96838460 0.96399350 0.89112477-0.4727313 0.4105422 -0.12726057-0.149934030.1576027 0.1576027 0.5235142
Brent 0.9683846 1.00000000 0.98280745 0.96966738-0.3849722 0.5573512 -0.01542177-0.037804190.2975524 0.2975524 0.6381576
LADizel 0.9639935 0.98280745 1.00000000 0.97027138-0.4027807 0.5377437 -0.05740604-0.090510680.2631729 0.2631729 0.6003810
Brent2Dizel 0.8911248 0.96966738 0.97027138 1.00000000-0.3040714 0.6500180 0.05083423 0.021020640.3825313 0.3825313 0.6807201
kur-0.4727313 -0.38497218-0.40278073-0.30407136 1.0000000 0.5025619 0.86835215 0.887216280.7358573 0.7358573 0.4353500
ABDBrentDizelTL 0.4105422 0.55735116 0.53774368 0.65001796 0.5025619 1.0000000 0.73716671 0.705198810.9355330 0.9355330 0.9753797
OTV-0.1272606 -0.01542177-0.05740604 0.05083423 0.8683522 0.7371667 1.00000000 0.963980150.9269497 0.9269497 0.7091317
Marj-0.1499340 -0.03780419-0.09051068 0.02102064 0.8872163 0.7051988 0.96398015 1.000000000.9006598 0.9006598 0.6779632
KDV 0.1576027 0.29755238 0.26317292 0.38253126 0.7358573 0.9355330 0.92694969 0.900659811.0000000 1.0000000 0.9073252
Toplam 0.1576027 0.29755238 0.26317292 0.38253126 0.7358573 0.9355330 0.92694969 0.900659811.0000000 1.0000000 0.9073252
brentTL 0.5235142 0.63815765 0.60038101 0.68072009 0.4353500 0.9753797 0.70913169 0.677963250.9073252 0.9073252 1.0000000

Aylık Verileri Merkez Bankası Enflasyon verisi ile birleştirmek

Elimizde aylık akaryakıt verileri tablosu var. Şimdi TCMB(Merkez Bankasından) aylık enflasyon verilerini indirmek için yeniden tcmb_evds fonksiyonunu ve kullanmak için gerekli kütüphaneleri tanıtıyorum. Zekice birşey yapıp herşeyi tek satırda bitirebilirsiniz. Ben veri analizinde daha temkinli olmaktan yanayım, büyük veri setleri ile çalışırken bir dikkatsizlik uzun süre görülmeden tüm bir analizi etkileyebilir.

In [225]:
library(RCurl)
library(plyr)
tcmb_evds<-function(veriseti,baslangic,son, anahtar) {
    adres="https://evds2.tcmb.gov.tr/service/evds/"
    seri=paste("series=",veriseti, sep="")
    tarihler=paste("&startDate=",baslangic,"&endDate=",son, sep="")
    tamamlayici=paste("&type=csv&key=",anahtar, sep="")
    veriadresi<-paste(adres,seri,tarihler,tamamlayici, sep="")
    xmlveri <- getURL(veriadresi, .opts = list(ssl.verifypeer = FALSE))
    return(xmlveri)
}

Merkez bankası enflasyon endeksi kodu olan:

  • TP.FG.J0
  • TCMB EVDS'ye kayıt olunca, profil kısmından aldığımız anahtar ile birlikte veriyi alıyoruz UYARI: Bu kısmı Azure Notebooks'da çalıştırırken sorunlar yaşadım. Ama diğerlerinde herhangi sorun görmedim.
In [226]:
anahtar<-"XXXXXXXXXXX"
csvkur<-tcmb_evds("TP.FG.J0","01-01-2005", "25-11-2017",anahtar)

Şimdi bize json şeklinde gelen veriyi enf değişkenine atalım

In [ ]:
enf<-read.csv(text=csvkur,header=TRUE,sep=",")

Eğer veriyi çekemediyseniz, burada hazırı var. 20171125-enflasyon.rds

Aylık enflasyonu verisini yükleyemediyseniz, doğrudan üst satırdaki dosyayı dizine indirin ve enf değişkenine okutun

In [228]:
enf<-readRDS("20171125-enflasyon.rds")

Aylık veriyi sisteme eklemek

Elimizde tot_ay değişkeninde daha önce hesapladığımız değişkenler vardı. Şimdi orada bir satır açarak:

  • tot_ay\$enf<-0 ile bu sütunun içine enf değişkeninin içindeki değişkenleri ekleyeceğiz.

Dikkat edilirse 155 satırlık değişken havuzunda sadece 154 satıra değişken atıyorum. Çünkü enf değişkeni PROGRAMIN YAZILDIĞI TARİHTE KASIM ENFLASYON VERİSİNİ İÇERMİYORDU Eksik olan veri de son veri, yani kasım verisi.

Bunu head(enf) veya tail(enf) ile kontrol edebilirsiniz.

In [229]:
tot_ay$enf<-0
tot_ay$enf[1:154]<-t(enf[1:154,2])

Şimdi toplam matrisimizde kaç veri var(length), kaç sütun var(ncol) ve kaç satır var (nrow) onu görelim

In [232]:
length(tot_ay); ncol(tot_ay) ; nrow(tot_ay)
1860
12
155

Aylık toplamsal verimize bir kez daha bakalım

In [169]:
head(tot_ay)
                WTI    Brent  LADizel Brent2Dizel      kur ABDBrentDizelTL
2005-01-31 47.01529 44.42000 1.305059    1.232706 1.350876       0.4395560
2005-02-28 48.14895 45.44263 1.502263    1.417946 1.310689       0.4906775
2005-03-31 54.18682 53.10455 1.713318    1.679943 1.302986       0.5788139
2005-04-29 52.97905 51.88381 1.790048    1.753350 1.353514       0.6268816
2005-05-31 49.97550 48.69750 1.599500    1.559375 1.364845       0.5622496
2005-06-30 56.35227 54.35455 1.722409    1.661134 1.354682       0.5944219
             OTV      Marj       KDV   Toplam  brentTL    enf
2005-01-31 0.927 0.1610680 0.2749723 1.802596 59.99470 114.49
2005-02-28 0.927 0.1634709 0.2846067 1.865755 59.53733 114.51
2005-03-31 0.927 0.1660458 0.3009347 1.972794 69.18657 114.81
2005-04-29 0.927 0.1687154 0.3100675 2.032664 70.22244 115.63
2005-05-31 0.927 0.1712281 0.2988860 1.959364 66.46262 116.69
2005-06-30 0.927 0.1739329 0.3051639 2.000519 73.62618 116.81

Aylık verilerin ilişkisi ve Sonraki ay enflasyon verisinin eklenmesi

Tüm veriler yerli yerinde ise, şimdi aylık verilerin ilişkisine bakabiliriz

In [233]:
cor(tot_ay)
WTIBrentLADizelBrent2DizelkurABDBrentDizelTLOTVMarjKDVToplambrentTLenf
WTI 1.0000000 0.96838460 0.96399350 0.89112477-0.4727313 0.4105422 -0.12726057-0.149934030.1576027 0.1576027 0.5235142 -0.19619795
Brent 0.9683846 1.00000000 0.98280745 0.96966738-0.3849722 0.5573512 -0.01542177-0.037804190.2975524 0.2975524 0.6381576 -0.10298040
LADizel 0.9639935 0.98280745 1.00000000 0.97027138-0.4027807 0.5377437 -0.05740604-0.090510680.2631729 0.2631729 0.6003810 -0.14854374
Brent2Dizel 0.8911248 0.96966738 0.97027138 1.00000000-0.3040714 0.6500180 0.05083423 0.021020640.3825313 0.3825313 0.6807201 -0.05315418
kur-0.4727313 -0.38497218-0.40278073-0.30407136 1.0000000 0.5025619 0.86835215 0.887216280.7358573 0.7358573 0.4353500 0.82173823
ABDBrentDizelTL 0.4105422 0.55735116 0.53774368 0.65001796 0.5025619 1.0000000 0.73716671 0.705198810.9355330 0.9355330 0.9753797 0.57020368
OTV-0.1272606 -0.01542177-0.05740604 0.05083423 0.8683522 0.7371667 1.00000000 0.963980150.9269497 0.9269497 0.7091317 0.88363612
Marj-0.1499340 -0.03780419-0.09051068 0.02102064 0.8872163 0.7051988 0.96398015 1.000000000.9006598 0.9006598 0.6779632 0.90800879
KDV 0.1576027 0.29755238 0.26317292 0.38253126 0.7358573 0.9355330 0.92694969 0.900659811.0000000 1.0000000 0.9073252 0.78212657
Toplam 0.1576027 0.29755238 0.26317292 0.38253126 0.7358573 0.9355330 0.92694969 0.900659811.0000000 1.0000000 0.9073252 0.78212657
brentTL 0.5235142 0.63815765 0.60038101 0.68072009 0.4353500 0.9753797 0.70913169 0.677963250.9073252 0.9073252 1.0000000 0.55089856
enf-0.1961980 -0.10298040-0.14854374-0.05315418 0.8217382 0.5702037 0.88363612 0.908008790.7821266 0.7821266 0.5508986 1.00000000

Normalde bugün ki kur, petrol fiyatı vs'nin enflasyona etkisi sonraki dönemlerde etkisini gösteriyor olabilir. Bu sebeple, enflasyonu 1,2 ve 6 ay önce çekerek analizlere tekrar bakmamız gerekiyor. Bu ileri geri mantığı benim aklımı hep karıştırıyor. O yüzden yapmak istediğim bu ay ki fiyatlar ile gelecek ay ki enflasyonun aynı satıra gelmesi

Normalde enflasyonu sabit tutup, 1,2 ve 6 dönem(ay) önceki fiyat verileri ile ilişkiye bakmak gerekirdi. Ama bunların yerine ben sadece enflasyonu kaydırmayı tercih ettim

Bunun için de lag komutunu kullanıyoruz. Aylık toplam veri tablosuna (tot_ay)'a

  • enf_1 (Bir ay sonraki enflasyon)
  • enf_2 (İki ay sonraki enflasyon)
  • enf_6 (Altı ay sonraki enflasyon) verilerini ekliyoruz.
In [244]:
tot_ay$enf_1<-lag(tot_ay$enf,-1)
tot_ay$enf_2<-lag(tot_ay$enf,-2)
tot_ay$enf_6<-lag(tot_ay$enf,-6)

Bu kısım sadece otomatik model sonucu için

Şimdi "leaps" kütüphanesinden otomatik model kurduracağız. Bu kısım sadece spor olsun diye yaptığım bir kısım. Kısa kısa hızlı geçeceğim

In [239]:
library(leaps)

Şimdi bir dönem sonraki enflasyonu en iyi tanımlayan modeli aratalım

In [267]:
sonuc<-NULL
sonuc<-regsubsets(enf_1~WTI+Brent+LADizel+Brent2Dizel+kur+ABDBrentDizelTL+OTV+Marj+KDV+Toplam+brentTL,data=tot_ay, nbest=1)
Warning message in leaps.setup(x, y, wt = wt, nbest = nbest, nvmax = nvmax, force.in = force.in, :
"2  linear dependencies found"
Reordering variables and trying again:

regsubsets bilmeyenler için yardıma bu şekilde bakılabilir.

In [262]:
#Yardım konularına bakalım
?regsubsets

Şimdi sonuçlara ve içlerinde Adjusted R2 için en iyi modelin kaçıncısı olduğuna bakalım

In [268]:
sonuclar<-summary(sonuc)
which.max(sonuclar$adjr2)
7

Bir de en iyi modelin hangi değişkenlerle kurulabildiğine bakabiliriz. En yukarıdaki model en iyisi

In [269]:
options(repr.plot.width=4, repr.plot.height=4)
plot(sonuc)

Modelin katsayıları nelermiş bakalım:

In [270]:
coef(sonuc,7)
(Intercept)
-50.8630699449459
Brent
-4.5291555509335
Brent2Dizel
177.753927968128
kur
38.3302739836647
ABDBrentDizelTL
-449.821303672196
Marj
316.42004884835
brentTL
2.59832641456511
Toplam
43.2408062325607

Şimdi doğrusal olarak modeli kuralım

In [271]:
lmsonuc<-lm(enf_1~Brent+Brent2Dizel+kur+ABDBrentDizelTL+brentTL+ Toplam, data=tot_ay)
In [272]:
anova(lmsonuc)
DfSum SqMean SqF valuePr(>F)
Brent 1 4321.2693 4321.2693 7.586725 6.623170e-03
Brent2Dizel 1 17384.6668 17384.6668 30.521747 1.460944e-07
kur 1 380708.1156 380708.1156 668.398023 1.486709e-56
ABDBrentDizelTL 1 765.8764 765.8764 1.344627 2.480997e-01
brentTL 1 10466.5034 10466.5034 18.375732 3.265713e-05
Toplam 1 39485.5668 39485.5668 69.323646 5.325457e-14
Residuals147 83728.6932 569.5829 NA NA

Model sonucunu parametreleri ve anlamlılık değerlerine bakalım.

In [273]:
summary(lmsonuc)
Call:
lm(formula = enf_1 ~ Brent + Brent2Dizel + kur + ABDBrentDizelTL + 
    brentTL + Toplam, data = tot_ay)

Residuals:
     Min       1Q   Median       3Q      Max 
-242.311   -4.759    1.781    7.241   96.258 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)     -103.0839    24.3464  -4.234 4.03e-05 ***
Brent             -3.8408     1.1557  -3.323 0.001122 ** 
Brent2Dizel      169.7716    39.9698   4.247 3.82e-05 ***
kur               58.1612    12.8725   4.518 1.27e-05 ***
ABDBrentDizelTL -517.5169    85.2061  -6.074 1.02e-08 ***
brentTL            2.3231     0.6376   3.644 0.000372 ***
Toplam           107.0772    12.8604   8.326 5.33e-14 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 23.87 on 147 degrees of freedom
  (1 observation deleted due to missingness)
Multiple R-squared:  0.844,	Adjusted R-squared:  0.8377 
F-statistic: 132.6 on 6 and 147 DF,  p-value: < 2.2e-16

Şimdi modelin ürettiği sonuçları gerçek sonuçlar ile üst üste görelim

In [274]:
tot_ay$enffitted[2:155]<-lmsonuc$fitted.values
In [277]:
plot(tot_ay[,13])
lines(tot_ay[,16], col="red")

Oranların değişimini görmek

Şimdi de verilerin birbiri ile hareketini değil, verilerin aydan aya değişimlerinin birbiri ile ilişkisine bakalım.

Bu kısımda biraz karışık olabilir. lag komutu biraz farklı hareket ediyor. Bir sonraki dönemi istiyorsanız (-1) vermeniz gerekir. Aşağıdaki formülde bir ay sonraki değişkenleri o ayki değişkenlere oranlayarak 1 çıkarıyorum. Yani % değişim oranını buluyorum

In [280]:
oran_tot_ay<-lag(tot_ay,-1)/tot_ay - 1
#tail(lag(tot_ay,-1))

1 Kasım 2017'den önce veriler tam değil, enflasyon daha belli olmamıştı bu tarihte

In [281]:
oran_tot_ay<-oran_tot_ay[index(oran_tot_ay)<"2017-11-01",]

Yine ilinti oranları tablosunu görelim. Ama bu sefer 100 ile çarparak görelim.

  • use="complete.obs" ile olmayan verileri (NA) boşver diyoruz. Yoksa o satırda eksik veri varsa sonuç üretmiyor
In [282]:
100*cor(oran_tot_ay,use = "complete.obs")
WTIBrentLADizelBrent2DizelkurABDBrentDizelTLOTVMarjKDVToplambrentTLenfenf_1enf_2enf_6enffitted
WTI100.000000000 92.138247 85.975748 68.825266 -30.2031934 61.716688 0.004098207 9.843917279 57.897877 57.897877 85.873659 5.014207758 6.814730 2.436551 6.128758 1.9690074
Brent 92.138247498100.000000 91.440473 87.932706 -32.2912388 80.982520 3.582650583 11.144885507 76.874518 76.874518 93.511895 -1.836082036 6.347261 5.757123 5.154795 4.0903447
LADizel 85.975748239 91.440473 100.000000 93.356935 -30.5344527 87.049482 3.186507742 10.275183784 82.662332 82.662332 85.047188 3.562765152 9.065220 10.833497 6.970653 9.8064671
Brent2Dizel 68.825265882 87.932706 93.356935 100.000000 -28.6804806 94.686895 5.915594567 9.808465341 90.376719 90.376719 82.193225 -3.230482328 7.362176 12.813270 5.307451 10.8648087
kur-30.203193412-32.291239 -30.534453 -28.680481 100.0000000 3.250107 -0.212236942-10.633812019 3.136002 3.136002 2.847820 18.514993441 12.688897 -1.323206 6.091412 -6.6637145
ABDBrentDizelTL 61.716687894 80.982520 87.049482 94.686895 3.2501074 100.000000 6.281666359 5.878445636 95.393180 95.393180 86.947166 2.089196338 12.115845 13.730504 7.380994 9.3951800
OTV 0.004098207 3.582651 3.186508 5.915595 -0.2122369 6.281666 100.000000000 -6.345200283 32.019867 32.019867 3.856302 18.599037537 7.286211 1.828265 2.745889 8.6891018
Marj 9.843917279 11.144886 10.275184 9.808465 -10.6338120 5.878446 -6.345200283100.000000000 4.383848 4.383848 6.888204 0.003671486 1.836465 1.765663 10.123917 -0.3012289
KDV 57.897876708 76.874518 82.662332 90.376719 3.1360018 95.393180 32.019866604 4.383848477100.000000 100.000000 82.546730 7.071374022 14.394708 13.277462 8.058272 11.5560352
Toplam 57.897876708 76.874518 82.662332 90.376719 3.1360018 95.393180 32.019866604 4.383848477100.000000 100.000000 82.546730 7.071374022 14.394708 13.277462 8.058272 11.5560352
brentTL 85.873659052 93.511895 85.047188 82.193225 2.8478200 86.947166 3.856302454 6.888203726 82.546730 82.546730 100.000000 4.038274917 11.757902 6.235329 7.541365 2.2640993
enf 5.014207758 -1.836082 3.562765 -3.230482 18.5149934 2.089196 18.599037537 0.003671486 7.071374 7.071374 4.038275 100.000000000 16.711583 -16.825676 4.730480 9.8268151
enf_1 6.814730122 6.347261 9.065220 7.362176 12.6888968 12.115845 7.286211437 1.836464605 14.394708 14.394708 11.757902 16.711582544100.000000 17.200546 9.544435 -13.2535808
enf_2 2.436551261 5.757123 10.833497 12.813270 -1.3232059 13.730504 1.828265376 1.765662821 13.277462 13.277462 6.235329 -16.825675589 17.200546 100.000000 2.686741 -2.1896210
enf_6 6.128758400 5.154795 6.970653 5.307451 6.0914122 7.380994 2.745889051 10.123916802 8.058272 8.058272 7.541365 4.730480038 9.544435 2.686741 100.000000 6.4291398
enffitted 1.969007392 4.090345 9.806467 10.864809 -6.6637145 9.395180 8.689101840 -0.301228919 11.556035 11.556035 2.264099 9.826815109-13.253581 -2.189621 6.429140 100.0000000

Sonuç

Bu seferki analiz biraz daha karışık oldu. Günlük verileri aldık, aylığa çevirdik, enflasyon verisi ekledik. Sonra enflasyon verisinin 1,2 ve 6 ay sonraki verilerini de tabloya sütun olarak yerleştirdik. Otomatik model, korelasyon, herşeye bakmış olduk.

Bu analizin yazısını www.barissanli.com adresindeki 2017 yılı çalışmaları içinde bulabilirsiniz.

Aslında bu analizler çok daha basit analizler. Gelişmiş analiz yöntemlerini internette arayarak da bulabilirsiniz.

barissanli2@gmail.com