Başlangıç
R Studio ve ilk kodlar
Elektrik Talep Analizi - (Histogram)
Elektrik Talep Analizi - (Filtreleme)
Elektrik Talep Analizi - (Verinin Bileşenleri)
Elektrik Talep Analizi - (Programlamaya Giriş)
Dogrusal Regresyon ile Elektrik Talebi
Üssel Düzgünleştirme ve STL ile Elektrik Talebi
Elektrik Talebinde Farklı Periyodlar (ARIMA ve TBATS)
2015-2024 - Aylık Doğalgaz Talebi
R ile Doğal gaz talep tahmini

R ile Enerji Analizi – Bölüm 9- Türkiye Aylık Doğal gaz Talep Modeli ve 2025’e Projeksiyonun Yapılması

Barış Sanlı

Özet: Bu bölümde, 8nci bölümde gördüğümüz TBATS yöntemi ile Türkiye aylık doğalgaz talep tahmin modeli oluşturmaya çalışacağız. İlk kısımda tüm ülkelerin aylık petrol ve doğal gaz istatistiklerine ulaşabileceğiniz JODIDB.org websitesini de kullanmayı göstermeye çalışacağım. Bu web sitesinden istediğiniz veriyi seçip, CSV olarak indirdikten sonra dersimizin 8. Bölümünde olduğu gibi önce bileşenlerine ayırıp sonra da 2015-2025 tahminini alacağız. Bu tahmin %95 ve %80 kesinlikli aralıklar ile çıkarılacaktır. Sonra aylık verilerden yıllık toplamlara geçerek onu da grafiklemeye çalışacağız.

 

Bu Bölümdeki Fonksiyonlar

setwd(“çalışma dizini”)

dir()

read.csv

ts(veri, start=başladığı tarih, frequency= periyodu)

msts(veri$ortalama_tuketim, seasonal.periods = c(periyod1, periyod2))

tbats(zaman serisi)

plot(veri, main=”Grafik Başlığı”)

x11()

palette(palet_ismi(renksayısı))

forecast(model, h=projeksiyon süresi)

cbind()

rbind()

aggregate(veri, frekans,FUN=”fonksiyon”)

 

 

Veri Dosyaları:

Türkiye 2010-2015 aylık doğalgaz tüketimi (JodiDB.org’dan)

http://www.barissanli.com/calismalar/dersler/r/dogalgaz-jodi.csv

Projeksiyon sonuçları:

http://www.barissanli.com/calismalar/dersler/r/sonuc-dg.csv

 

 

9.0. Doğalgaz Talep Tahmini

Daha önce elektrikte gördüğümüz gibi, Türkiye doğal gaz talebinde de önemli bir mevsimsellik/sezonsallık vardır. Örneğin kışın en üst tüketimler 240 milyon m3’leri görürken, yazın tüketimler 110 milyon m3’ler civarında olsa da bunun yaklaşık 14-15’i de depoya konulan gaz oluyor. Yani nihai tüketime giden gaz 90 milyon m3 olmaktadır. Bu yaz kış farkı şehirlerin gelişmişlik düzeylerine göre değişmektedir. Örneğin o şehirde sanayi yoğun ise yaz-kış tüketimi birbirine yakın, şehir ne kadar az sanayiye sahipse yaz-kış dengesizliği yüksek olmaktadır.

Elektrikte tüketimin sıcaklıkla değişimi paraboliktir, doğalgaz da ise daha doğrusal ilişkiler görmekteyiz. Bu da doğalgazın nihai tüketiminden gelmektedir. İstanbul özelinde bakarsak, kış aylarındaki yoğun tüketim aşağıdaki grafikte verilmektedir (Kaynak : Uğur Usta, ICCI, http://enerjipostasi.com/haber_resim/files/dosyalar/icci/O4_Ugur_Usta.pdf)

 

Grafik 1 – İstanbul doğal gaz tüketiminin alt tüketim gruplarına ve aylara göre dağılımı (Uğur Usta)

İGDAŞ’tan Uğur Usta’nın sunumundaki bir diğer grafik var ki, bu grafik bir çok doğalgaz talep tahmini içinde sıklıkla başvurduğumuz bir ilişkiyi empirik olarak göstermektedir. Konut ve ısıtma tüketiminin sıcaklığa göre değişiminin BBS (Bağımsız Birim Sayısı – EPDK birimi – ilk 200 m2 bir birim kabul edilmektedir) başına gösterimi grafiği aşağıdadır.

 

Grafik 2 – İstanbul için BBS başına gaz tüketimi (Uğur Usta)

 Bu grafik İstanbul’da hava sıcaklığı 16 C’nin altına düştükçe doğrusal olarak doğalgaz talebinin arttığını göstermektedir.

Fakat bu daha çok konut tüketimini vermektedir. Bir de dikkat edilmesi gereken nokta sıcaklığın yazın nem ile, kışın rüzgar ile düzeltilmesi gerektiğidir. Yaz için hava sıcaklığı arttıkça konut tüketimi azalmasına rağmen, sanayi ve elektrik santrallerinin doğalgaz tüketimi artmaktadır. Aslında yazın doğal gaz talebi iki sebepten artar. Birincisi artan elektrik tüketiminin doğalgaz santrallerinden karşılanmasından dolayı, ikincisi de doğalgaz depolarına gaz atılmasından dolayıdır.

Bu kadar teknik bilgiden sonra bir de olayın matematiksel boyutuna bakalım.

9.1. Veri Kaynağı

JODI (https://www.jodidata.org), tüm ülkelerin petrol, petrol ürünleri ve doğal gaz ile ilgili istatistiklerini bir araya getiren bir websitesidir. JODI’nin en güzel özelliklerinden biri ise aylık verilerin bulunması ve bir çok model için yeterli veriyi içermesidir.

Öncelikli olarak

http://www.jodidb.org

websitesine  giriyoruz. Sitede sol taraftaki JODI-Gas dizinine tıkladığımızda “JODI Gas World” veri seti kümesi açılacaktır.

JODI Gas World’e girdiğimiz zaman bir anda önümüzde oldukça karmaşık bir veri ekranı görülecektir. Bu ekrandan istediğimiz, Türkiye için milyon m3 olarak üretim/tüketim vs verileridir.

Yukarıdaki verilere baktığımızda, sol tarafta(turuncu kısım) Arjantin için “Balance” altında, üretim,ithalat, LNG vs gibi satırlarda, ay ve yıl sütunlarında değişik birimlerde (milyon m3, TJ ve 1000 ton LNG) veri hücreleri bulunduğunu görebiliriz. Burada istediğimiz verileri seçmek için ise “Set Dimension order” olan “tablo üzerinde dört yönü gösteren ok” simgesi seçilir. (Aşağıdaki resimde kırmızı daire içinde)

“Set Dimension Order”’a tıklayarak, verimizi önce şekle sokalım, öncelikli olarak sütunların tarih olması, satırlarında veri dizisi yani “Balance” olmasını istiyoruz, satır ve sütunlarda yer almayacak seçeneklerde ülke(“Country”) ve  birimler(“Product). Okları kullanarak seçeneği aşağıdaki hale getirebilirsiniz.

“Apply”’a basınca ekranımız aşağıdaki şekle gelecektir. Fakat ülkeyi Türkiye yapmamız gerekiyor.

 

Bunun için aşağıda görüldüğü şekilde ya “Country”’e tıklayarak, yada aynı çerçevedeki sağ-sol oklarına basarak Türkiye’yi bulmaya çalışabiliriz. Benim önerim “Country” yani ülkeye tıklayın.

Burada ülkeye bastığımız anda karşımıza aşağı soldaki ekran açılacak. Önce aşağıdaki kırmızı daire içinde X’e tıklayarak tüm seçenekleri kaldıralım. Sonra da alfabetik sıradaki ülkelerden “Turkey”’i seçelim.

Türkiye’yi seçtikten sonra(altta solda) sadece en yukarıdaki “Show Table”’a tıklayabiliriz(altta sağda).

 

Karşımıza Türkiye’nin verilerinin olduğu, milyon m3 üzerinden aylara göre alt kırılımlı doğalgaz verileri ekrana gelecektir. Bu veriyi aşağıdaki şekilde “açık dizin-Download” simgesine tıklayarak indirebilirsiniz.

“Download”’a tıklayınca önümüze birkaç indirme seçeneği geliyor. Benim önerim Excel indirin, dosyayı düzenleyip sonra csv olarak saklayın. Ama direkt indirip CSV kullanacağım derseniz de CSV olarak indirme seçeneği mevcut. Türkçe excel kullanıyorsanız en altta yer alan “Semicolon-delimited ASCII”’yi seçin çünkü Türkçe’de ondalık sayılarda “.” Veya “,” kullanımı konusundaki farklılık dosya okumalarında soruna yol açabiliyor.

Ben kendi indirdiğim dosyayı bu linke yerleştirdim.

http://www.barissanli.com/calismalar/dersler/r/dogalgaz-jodi.csv

 

Şimdi dosya üzerinde işlemlere başlayalım.

9.2. İlk Analizler

Herşeyden önce csv dosyasının olduğu dizinde olduğumuzdan emin olalım. Bence csv dosyalarını harddiskte doğalgaz diye bir dizin açıp oraya yerleştirin. Programınızda

 

setwd("C:/dogalgaz-projeksiyon/")

# dir komutu dizindeki dosyaları ekrana yazar

dir()

komutları ile csv dosyasının dizinine gidip.” dir() “ komutu ile bulunduğunuz dizindeki dosyaları kontrol edin. “dogalgaz-jodi.csv” dosyasını görmeye çalışın. Dosyayı gördükten sonra dosyayı veri değişkenine yükleyelim.

dg=read.csv(“dogalgaz-jodi.csv”,sep=”;”)

 

Dosyayı dizinde gördükten sonra

str(dg)

ile dosyadaki yapıya bakalım. Çünkü mesela ondalık ayıracı “.” Veya “,” dosyamızda farklı kullanılmış ise, veri yapısında “int”’leri göremeyiz. Yukarıdaki doğru şekil… Verilerimiz tamsayı olduğundan okunan veriler de “int” yani tamsayı olarak gösterilmiş olması önemlidir.

Verimiz bir “data.frame” ve burada 15 sütun veri var (en üstte “62 obs of 15 variables”). 15 sütunda 62 veri satırı var. Sütunlardan biri “Gross. Inland.Deliveries..Observed.”. Bu kavramı iç tüketim olarak düşünelim. Çünkü anlamı : “Brüt iç piyasaya arz edilen” – kısaca “tüketim” denilecek bundan sonra- doğalgaz verisi olarak düşünebiliriz. Verileri görmek işin

head(dg)

yazarız. Şimdi de 13. Sırada olan tüketim verisini çizdirip, “Tüketim Gelişimi” başlığı atalım.

plot(dg[,13],type="l",main="Tüketim Gelişimi")

 

Yukarıdaki grafiği çizdirdik ama veride zaman serisi yani tarih verileri gözükmüyor. Oysa verilerimiz 2010-2015 arası verileri içermekteydi.

9.3. Zaman Serisi

Yukarıdaki grafikte herşey doğru olmasına rağmen, x ekseninden tarihler yer almamaktadır. Bunun için önce zaman serilerini kullanmak için “forecast” kütüphanesi yüklüyoruz.  (“forecast” yüklemeden de “ts” komutu ile yapabiliriz, ilerde göreceğiz) . Eğer daha önceki derslere bakmadıysanız komut satırından install.packages(“forecast”) ile “forecast” paketini yükleyebilirsiniz.

library(forecast)

Forecast kütüphanesini işaret edince otomatik olarak zoo kütüphanesini de ekliyor. O da yoksa gene

install.packages(“zoo”)

ile yükleyebilirsiniz.

Verimizi seçerken 2010 Ocak’tan başlayarak(2009 Ocak-2009 Aralık arasında Jodidb’de veri yoktu, hücre değerleri 0 idi) , 12 aylık verileri seçmiştik. Ama R’da tarih ve zaman işleri bazen arapsaçı olabildiği için sütundan tarih okumadık. Fakat bunu da okumak mümkündü.

Bunun yerine

t_dg=msts(dg[,13],start=2010,seasonal.periods=c(6,12*354.37/365,12))

plot(t_dg,main="Zaman Eklenmiş Tüketim Gelişimi")

şeklindeki komutu kullanabiliriz.

Burada önce  t_dg diye bir değişken tanımlıyoruz. Yani doğal gaz (dg)’nin t(time series) hali. Bu t_dg değişkeni ise, daha önceki tüketim verimiz olan dg[,13] yani 13.sütundaki tüm verilerin başlangıcı 2010 olmak üzere zaman serisi şekline dizilmiş halidir. Aynı şekilde

ts.frequency = 12

parametresini ekleyerek de, verinin frekansının 12 olduğunu bildirebiliriz. O zaman komutumuz aşağıdaki gibi olur.

 t_dg=msts(dg[,13],start=2010,seasonal.periods=c(6,12*354.37/365,12),ts.frequency = 12)

msts komutunda dikkat çeken en önemli noktalardan biri ise daha önce elektrikte yaptığımız gibi, veride tahmin ettiğimiz “mevsimsel periyodları” eklemek olacak. Bu da seasonal.periods parametresine “c(“ ile vektör şeklinde üç periyodu ekleyerek elde ediyoruz.

-          İlk periyot 6, çünkü doğalgaz talebinde elektrik üretimi santralleri 6şar aylık periyotlara sebep vermektedir. Bu tam 6 olmayabilir, internette optimum dönemsel periyodları bulmak için kodlar mevcut. Elektrik santralleri örneğin Şubat ve Ağustos’ta çok doğalgaz  tüketiyor, Nisan ve Ekim de az tüketiyor olabilir.

-          İkinci periyot 12*354.37/365.12 yani 11.64 gibi bir şey ki, bu da Hyndmann’ın Türkiye elektrik talebindeki hicri takvim (şeker-kurban bayramları) etkilerini analiz etmek için kullanılan periyod.

-          Üçüncü ve son periyod ise 12 yani yıllık döngüdür. Zaten grafiğe baktığınızda yıllık bir döngünün olduğu çok açıktır.

Şimdi geriye kalan tek şey, grafiğimizi çizdirmek:

plot(t_dg,main="Zaman Eklenmiş Tüketim Gelişimi")

 

9.4. Veriyi Mevsimsel Bileşenlerine Ayırma

Verimizi msts komutu ile alt sezonları ile tanımladık. Ardından daha önce elektrikte olduğu gibi “tbats” komutunu kullanarak parçalarına ve modele ayıracağız.

?tbats

Komutu yazdığımızda zaten eğer “forecast” paketini yükledi iseniz, bir yardım ekranı gözükecektir. R Studio’da ise ekranın sağ alttaki kısmına tbats’i açar. Tbats’da modelleme için veri serimizi mutlaka msts ile tanımlamalıyız.

TBATS aslında bir çok modelleme sistemini bir arada kullanan ve genelde model parametrelerini test ederek otomatik seçen bir algoritmadır. En başarılısı mı? Tabii ki hayır, sayılar sadece başka sayılar ile ilişki kurarlar, altında yatan fiziksel nedenleri bilemezler, o yüzden daima iyi uzmanların sayıların işlenmesinden gelen sonuçları yorumlamasını isteyin.

Dolayısıyla hiçbir parametre girmeden (zaten msts’te bir grup sezon parametresi girmiştik) komutu doğrudan çalıştırıyoruz. Komutun çalışması biraz zaman alıyor (15sn-1.5 dk). Sabırla bekleyin, sonra ekrana imleç gelince de sonucu ekrana çizdirin. Ekrana çizdirirken, grafiğimizin başlığını da “Sezonsal yapıtaşlarına ayrıştırılmış TBATS modeli” olarak belirlemek için “main” parametresini kullanalım.

 

model_dg<-tbats(t_dg)

plot(model_dg,main="Sezonsal yapıtaşlarına ayrılmış TBATS Modeli")

Yukarıdan aşağı baktığımızda, sezonsal bileşenlerine ayrılmış ana tüketim verimizi görebiliriz. Bu verilerin analizi kısaca

-          Level: verimizde bir yükseliş trendi var. Yani Türkiye’nin doğalgaz tüketimi artışını sürdürüyor.

-          Season1, 6 aylık veriydi, kış ve yaz aylarındaki elektrik üretimindeki doğalgaz’dan kaynaklanan bileşendi

-          Season 2, hicri takvimden kaynaklanan bileşendi, burada bazı dik tepeler ve plato tepeler var, bunları da ancak sıcaklık ile ayırabilirsiniz.

-          Season 3 ise bildiğimiz senelik döngü ki gördüğünüz gibi kışın en üst tüketimi yapıyor

9.5 Doğal Gaz Projeksiyonu Yapmak

Teknik olarak doğalgaz talep tahmin modelleri yapmak, biraz daha fazla veri ve bakış ister, mesela alt kırılımlar ne, nelerden etkileniyor, ekonomik büyüme ne, sıcaklık ne, rüzgar, nem vs… Fakat modelinizde ne kadar çok parametre olursa o parametreleri de ileri taşımak zorunda kalacağınızdan onları da tahmin etmeniz gerekir. Mesela her parametre de %5 hata yapsanız, ilk yıl için hata marjınız 1.05*1.05’ten %10’lara ulaşır. Eğer 10 parametreniz olsa ve her birinde %5 hatanız olsa sadece ilk yıl için %60’ın üzerinde hata yapma ihtimaliniz olabilir. O yüzden basit ve anlaşılabilir bir modeliniz olsun, bu modeli T cetveli gibi kullanarak daha karmaşık modellere şablon hazırlayın.

O yüzden basit tutalım, forecast kütüphanesinin çok basit bir komutu var: “forecast”.

Kısaca

forecast(model_verisi, h=ileri_gidilecek_periyod_sayısı*periyoddaki_verisayısı)

aslında tüm hesaplamaları yapıyor. Sonuçları sayısal geleceğinden ekrana çizdirmek daha faydalı olacaktır.

plot(forecast(model_dg,h=120),main="2015-2025 Aylık Doğalgaz Projeksiyonu")

 

Yukarıda görüldüğü gibi, sadece bir komut ve ileri gidilecek ay sayısını girerek tüm bir projeksiyonu oluşturduk. Burada

-          model_dg: tbats komutundan elde ettiğimiz otomatik bir model dosyası (yani sistem en iyi modeli seçti)

-          “h=120” kısmı ise 120 ay ileriye gidilmesini belirtti.

-          main=  ile de başlığı oluşturduk.

Dikkat edilirse geleceğe doğru giden kısım 3 renkli

-          mavi renk: ortalama

-          gri renk: %80 kesinlikli kısım

-          açık gri renk ise %95 kesinlikli sınırı göstermektedir.

Mavi renk ortada olmak üzere alt ve üst kısımlarda gri ve açık gri kısımlar, üst%80’lik veya üst %95’lik kısım ve alt %80’lik veya alt %95’lik kısımı göstermektedir.

9.6 Tüm Projeksiyon Sonuçlarını Görmek

Evet, bir projeksiyon yaptık ve tüm sonuçları ekrana çizdirdik. Peki ya sayısal verileri almak istersek ne yapmamız gerek.

Öncelikle projeksiyonu ekrana yazdırmak yerine bir değişkene almamız gerekiyor.

veriler=forecast(model_dg,h=120)

komutu bu iş için yeterli olacaktır. Şimdi tüm model kestirim sonuçlarımız bir değişkene atanmış durumdadır. “veriler” değişkeni oldukça veri yoğun bir değişkendir. Bunu yapısından da görebiliriz.

str(veriler)

Veriler’de modelin tüm parametreleri ve sonuçlar, hatalar vs bir çok veri bulunmaktadır. Önce modelimizin hangi aralıklarda hesap yaptığına bakalım. Bunun için:

veriler$level

Komutu bize %80 ve %95 alt ve üst sınırlarda hesap yaptığını göstermektedir.

Yani sadece projeksiyon yapmayıp, aynı zamanda alt ve üst kesinlik aralıkları ile kestirim sonuçları bulunmaktadır.

Bu %80 ve %95 sınırlar “veriler” parametresi içinde:

upper ve lower dizilerinde bulunmaktadır. Her iki dizi de iki sütundan oluşmaktadır. Bir de ortalama olduğunu düşünürsek, toplamda elimizde 5 senaryo  olacaktır. Tüm bunları dosyaya yazdırabiliriz.

9.7 Tüm senaryoları bir araya getirmek

%80 ve %95 hesapları maalesef zaman serisinin orijinal elemanlarına sahip değildir. Bu yüzden işimiz biraz Lego vari bir işe dönmektedir. Verilerimizin bulunduğu dizi değişkenleri aşağıda verilmiştir.

 

%95 üst sınır

%80 üst sınır

ortalama

%80 alt sınır

%95 üst sınır

Veri noktası

veriler$upper[,2]

veriler$upper[,1]

veriler$mean

veriler$lower[,1]

veriler$lower[,2]

 

Bu verilerdeki değişkenleri şu şekilde dizmeye çalışacağız. En başta söylediğimiz gibi dg[,13] bizim tüketim tarihsel verileriydi. 2010’dan 2015 2.aya uzanıyordu.

sütunlar

%95 üst sınır

%80 üst sınır

ortalama

%80 alt sınır

%95 üst sınır

2010

2015

dg[,13]

dg[,13]

dg[,13]

dg[,13]

dg[,13]

2015-2024

veriler$upper[,2]

veriler$upper[,1]

veriler$mean

veriler$lower[,1]

veriler$lower[,2]

 

Bu yüzden

- rbind: yani satırları alt alta yapıştırma

- cbind : sütunları yan yana yapıştırma

Komutunu kullanacağız,

Önce üst-alt sınır ve ortalamayı yan yana sütun sütun bir araya getireceğiz.

a1=cbind(veriler$upper[,2],veriler$upper[,1],veriler$mean,veriler$lower[,1],veriler$lower[,2])

bir “a1” verimiz oldu. Şimdi 5 tane de tarihsel tüketimi yan yana yapıştıralım.

a2=cbind(dg[,13],dg[,13],dg[,13],dg[,13],dg[,13])

şimdi iki veriyi alt alta yapıştıralım. Önce a2 sonra altına a1 gelecek şekilde veri tablomuzu oluşturalım.

a=rbind(a2,a1)

 

Verimize bakarsak “head(a)” komutu ile aşağıdaki tabloyu buluruz.

 

Ardından da yeni oluşan veri tablomuzu (2010 Ocak’tan 2024’e kadar olan verimizi) zaman serileri ile zaman damgalarını oluşturalım. Sonra da “sonuc-dg.csv” dosyasına yazalım. Burada unutabilirsiniz diye tekrar library(zoo) komutunu ekledim. Çünkü zaman serisi ile yazmak için en zahmetsiz komut zoo kütüphanesindeki “write.zoo” komutudur.

Burada dikkat edilmesi gereken “a” adıyla tanımladığımız veri tablosunun üzerinde

a<-ts(a,start=c(2010,1),frequency=12)

 

ile 2010 Ocak ayından başlayan ve 12’şer aylık frekanslı veriyi tanımlıyoruz. Elde ettiğimiz zaman serisi haline getirilmiş bir a tablosudur.

a<-ts(a,start=c(2010,1),frequency=12)

library(zoo)

write.zoo(a,"sonuc-dg.csv",sep=";")

“sonuc-dg.csv” dosyasını açarsak da aşağıdaki şekilde sonuçları görürüz.

 

9.7 Aylık Öngörüleri Yıllığa Çevirmek

Aslında R’da herşey kolay gibi gözükmesine rağmen zaman serilerinde işler gerçekten çok karışabiliyor. Bu yüzden, bu kısmı internetteki kaynaklardan tekrar gözden geçirin. Çünkü veri serilerinin zamansal bağlantıları doğru okunamaz ise sonuçlar çok karışabilir.

Bu sebeple işlerimizi kolaylaştıracak “zoo” kütüphanesini kullanıyoruz.. library(zoo) ile kütüphaneyi seçiyoruz.

Önce verilerimizi yıllık toplamlar haline getirmeye çalışıyoruz. Bunun için “aggregate” komutunu kullanıyoruz. Bu komutta iki parametre önemli birincisi “nfrequency=1”, yani verimizde 12 ay da bir dönem atıyordu ya, dönemsel hale getir, ikincisi olan “FUN=sum” ise, her dönem sonunda “sum” yani toplam komutu ile dönemdeki tüm verilerin toplamını elde edelim.

 

Senaryolarımızın yıllık toplamları da görülmektedir. Bu en üst ve en alttaki çizgiler, doğal gaz tüketiminin %95 ihtimal ile bu iki aradan birinde olacağını söylemektedir.

Her grafiği birbirinden ayrı ekranlarda göstermek için ise

x11()

komutunu kullanabilirsiniz. Böylelikle çizdiğiniz tüm grafikler ayrı ekranlarda yer alır.

Sonuç

Bu bölümde sırası ile:

-          JodiDB.org sitesinden Türkiye gaz tüketimi ile ilgili verileri nasıl indireceğimizi,

-          Bu verileri nasıl zaman serisi haline getireceğimizi,

-          Doğal gaz verilerinde bulunan 3 dönemselliği (6 aylık, 11.64 aylık, 12 aylık) nasıl sisteme ekleyerek, verimizi alt bileşenlere ayıracağımızı,

-          Forecast komutu ile elde ettiğimiz otomatik modeli nasıl belirli bir dönem ileri götürebileceğimizi,

-          Forecast sonucundan $upper ve $lower alt dizileri ile %80 ve %95 kesinlikli alt sınırları alabileceğimizi,

-          rbind  ve cbind ile veri serilerini birbirine ekleyerek büyük veri tabloları oluşturabildiğimizi,

-          Veri setimizi düzene sokarak csv yani Excel’in okuyabileceği hale getirebileceğimizi,

-          Veri setimizdeki dönemsellikleri değiştirerek (aylık-> yıllık) ile aylık verilerden yıllık toplamlara nasıl gidebileceğimizi

gördük.

Doğal gaz talep tahminlerinde ise :

-          On günlük Dogalgaz ve Elektrik Modeli, http://www.barissanli.com/calismalar/2013/ODET-v01.pdf

Gibi yayınlarda daha farklı değişkenler ve daha analitik çalışmalar yapmak mümkündür. Bu çalışma da ise otomatik model seçiminin de aslında fena sonuçlar doğurmadığını gördük.

Veri sonuçlarımız ise bu adrestedir:

http://www.barissanli.com/calismalar/dersler/r/sonuc-dg.csv

 

 

 

Komutlar

#önce doğalgaz verilerinin olduğu dizine gidelim

#bu dizin siz de masaüstü de olabilir

setwd("C:/dogalgaz-projeksiyon/")

# dir komutu dizindeki dosyaları ekrana yazar

dir()

 

#doğru dizindeysek csv dosyasını yükleyelim

dg=read.csv("dogalgaz-jodi.csv",sep = ";")

 

#verinin yapısına bakalım, neden? Eğer verileri doğru okudu ise verileri numeric

#gösterecektir. Mutlaka plot ile ekrana çizin, verileri sayısal olarak okudunuz mu diye

str(dg)

 

# 13. Sütundaki verinin tüm satırlarının ( dg[satır, sütun]) çizdirip başlık atalım

plot(dg[,13],type="l",main="Tüketim Gelişimi")

 

library("forecast")

library(zoo)

 

 

plot(model_dg,main="Sezonsal yapıtaşlarına ayrılmış TBATS Modeli")

t_dg=msts(dg[,13],start=2010,seasonal.periods=c(12*354.37/365,12))

model_dg<-tbats(t_dg)

#x11()

plot(model_dg)

x11()

plot(forecast(model_dg,h=120),main="2015-2025 Aylık Doğalgaz Projeksiyonu")

veriler=forecast(model_dg,h=120)

a1=cbind(veriler$upper[,2],veriler$upper[,1],veriler$mean,veriler$lower[,1],veriler$lower[,2])

a2=cbind(dg[,13],dg[,13],dg[,13],dg[,13],dg[,13])

a=rbind(a2,a1)

a<-ts(a,start=c(2010,1),frequency=12)

write.zoo(a,"sonuc-dg.csv",sep=";")

verigraf=aggregate(a,nfrequency = 1,FUN=sum)

x11()

plot(verigraf,plot.type="s")

x11()

palette(rainbow(7))

plot(verigraf,plot.type="s",col=as.integer(time(verigraf)),main="Aylık verilerin Yıllık Toplamlar Cinsinden Gösterilmesi")