R İLE ENERJİ PİYASASI VERİ ANALİZİ EL KİTABI
1 Giriş
1.1 Amaç
Bu dökümanın temel amacı, R
yazılım dilinin yüklenmesi ve kurulmasından başlayarak çeşitli veri manipülasyonlarının nasıl gerçekleştirilebileceğini ve bu verilerin nasıl kolaylıkla ve oldukça şık bir biçimde görselleştirilebileceğini enerji piyasası verileriyle ve yine enerji piyasasına uyumlu örneklerle uygulamaya dökmektir. Bu dökümanın, enerji sektöründe ve benzeri diğer sektörlerde rol alan bireyler için oldukça yararlı olduğuna inanıyor, şimdiden kolaylıklar diliyoruz.
1.2 Kurulum
1.2.1 R ve RStudio’nun İndirilmesi
Öncelikle ücretsiz bir istatistiksel programlama dili olan R’ın yüklenmesi gerekiyor. R’ı indirmek için https://cran.rstudio.com/ sitesine ilerleyiniz ve işletim sisteminize uygun olan versiyonuna tıklayarak indirmeyi başlatınız.
Daha sonra güçlü bir kullanıcı arayüzü olan RStudio’nun indirilmesi gerekiyor. Onun için de https://rstudio.com/products/rstudio/download/ linkini kullanabilirsiniz. İndirme tamamlandıktan sonra direktifler takip edilerek RStudio kurulumu da tamamlanmış olacaktır.
Eğer bütün bu indirmeleri yapmak istemezseniz ise, yine bir RStudio ürünü olan tamamen ücretsiz ve herhangi bir indirmeye ihtiyaç duymayan çevrimiçi platform RStudio Cloud uygulamasını ziyaret edebilirsiniz. Bu işlemlerin nasıl yapılacağının anlatıldığı RStudio Cloud’da Çalışma bölümüne göz atabilirsiniz.
1.2.2 Kurulumun Test Edilmesi
Kurulumlar tamamlandıktan sonra sisteminizin çalıştığından emin olmak adına RStudio’yu açın ve Konsol veya “Console” yazan yere tıklayarak basit bir kod yazın. Örneğin x = 3 + 4
yazın ve ENTER
’a tıklayın. Burada x
objesine bir toplama işleminin sonucu atanmış oldu. Bu objenin Environment
(Ortam
) penceresi altında 7
değeriyle belirdiğine dikkat ediniz.
Herhangi bir hata almadığınızdan emin olduğunuzda bir sonraki bölüme geçebilirsiniz.
1.2.3 İlk R Script Dosyasının Oluşturulması
Yazılan kodları ileride inceleyebilmek, üzerinde değişiklikler yapabilmek için R Script olarak adlandırılan belgeler üzerinde çalışmanız daha mantıklı olacaktır. Dikkat edeceğiniz üzere yukarıda konsola yazdığınız x <- 3 + 4
komutu üzerinde bir değişiklik yapamayacaksınız. Yeni bir R Script belgesi yaratmak için ise RStudio’nun üstünde göreceğiniz panelden “File”, “New File” ve “R Script” sırasıyla seçin. İlk R belgenizin açıldığını göreceksiniz.
R Script’lerde her bir satır kodu ayrı ayrı çalıştırmanız gerekiyor. Bunun için de üzerinde olduğunuz satırı çalıştırmak için Windows kullanıcısı iseniz CTRL+ENTER
, MacOS kullanıyorsanız CMD+ENTER
kombinasyonlarını kullanmalısınız.
1.2.4 R’da Paketler Hakkında
R paketleri fonksiyonlar, hazır kodlar veya veri setleri içerebilen farklı amaçlar göz önünde bulundurularak oluşturulmuş paketlerdir. R programlama dilini ilk indirdiğinizde birçok paket beraberinde indirilmiş şekildedir ve eğer kullanmak istediğiniz paket bu paketler arasında değilse onu da indirmek ve yüklemek oldukça basittir.
1.2.5 Gerekli Paketlerin İndirilip Yüklenmesi
Bu bölümde kitabın ilerleyen aşamalarında kullanılacak paketlerin indirilmesi ve yüklenmesi tamamlanacaktır.
- Veri manipülasyonu için
dplyr
, - Veri görselleştirmesi için
ggplot2
, - Tarih - zaman verilerinin manipülasyonları için ise
lubridate
, - Daha ileri seviye veri manipülasyonları için
tidyr
,
paketleri kullanılacaktır. Paketleri indirmek için aşağıdaki kodu ilk R Script belgenizde çalıştırabilirsiniz. (İndirme ile alakalı kodları bir kere çalıştırmanız yetecektir.)
R’da her bir satırı ayrı ayrı çalıştırmanız gerektiğine dikkat ediniz. (Üzerinde olduğunuz satırı çalıştırmak için Windows kullanıcısı iseniz CTRL+ENTER
, MacOS kullanıyorsanız CMD+ENTER
kombinasyonlarını kullanmalısınız.) İndirmeler internet bağlantınızın durumuna göre 1-5 dakika arası sürebilir.
install.packages("dplyr")
install.packages("ggplot2")
install.packages("lubridate")
install.packages("tidyr")
İndirilen paketlerin yüklenmesi için ise kullanılması gereken kod aşağıda bulunabilir. (Bu kodları ise programı her açtığınızda tekrar uygulamanız gerekmektedir.)
Yüklemeler de tamamlandığında bu kitapta kullanılan veri setinin nasıl indirileceğini anlatan kısma geçmeye hazırsınız.
1.3 Dökümanda Kullanılan Veri Seti
1.3.1 Veri Setine İlk Bakış
Nasıl indirileceği ve üzerinde ne gibi işlemler uygulanabileceği daha sonraki bölümlerde anlatılacak olan veri setinin öncelikle ne gibi veriler içerdiğine ve bunların özellikle piyasaya hakim olmayanlar için kısa bir özetine ihtiyaç vardır.
Bu dökümanda EPİAŞ Raporlama Sayfası’nda paylaşılan Piyasa Takas Fiyatı (PTF) - Sistem Marjinal Fiyatı (SMF) verisi kullanılmıştır. Ham veride bu iki veriye ek olarak Pozitif Dengesizlik Fiyatı ve Negatif Dengesizlik Fiyatı verileri de yer almaktadır. Bu ifadelerin ne olduğundan kısaca bahsetmek gerekirse,
Piyasa Takas Fiyatı (PTF): Gün öncesi piyasasında (GÖP) verilmiş olan teklifler sonucu arz ve talebin kesiştiği noktada meydana gelen fiyat olarak adlandırılabilir.
- Sistem Marjinal Fiyatı (SMF): Sistemin enerji açığı ya da fazlası gösterdiği durumlarda Dengeleme Güç Piyasası’nda YAL ve YAT talimatlarına göre net talimat hacmine tekabül eden teklif fiyatı olarak adlandırılabilir.
Pozitif Dengesizlik Fiyatı (PDF): Sistemde enerji fazlası olduğunda enerjinin normalden daha ucuza çıkarılmasını sağlayan fiyat değeri olarak düşünülebilir. Gelecekte buna benzer dengesizliklerin oluşmasına engel olma amaçlı bir nevi ceza olarak düşünülebilecek Pozitif Dengesizlik Fiyatı aşağıdaki gibi hesaplanır.
\[ PDF (TL/MWH) = 0.97*min(PTF,SMF) \]
- Negatif Dengesizlik Fiyatı (NDF): Sistemde enerji açığı olduğunda enerjinin normalden daha pahalıya alınmasını sağlayan fiyat değeri olarak düşünülebilir. Gelecekte buna benzer dengesizliklerin oluşmasına engel olma amaçlı bir nevi ceza olarak düşünülebilecek Negatif Dengesizlik Fiyatı aşağıdaki gibi hesaplanır.
\[ NDF (TL/MWH) = 1.03*maks(PTF,SMF) \]
Daha detaylı bilgi için EPİAŞ sitesini ziyaret edebilirsiniz.
1.3.2 Veri Setinin İndirilmesi
Bu dökümanda kullanılan veri seti EPİAŞ’ın Raporlama Sayfasından elde edilen 01.01.2019 - 31.12.2019 tarihli Piyasa Takas Fiyatı (PTF) - Sistem Marjinal Fiyatı (SMF) verisidir.
Veri setinin ham haline EPİAŞ’ın Raporlama Sayfası ’ndan ya da buraya tıklayarak ulaşabilirsiniz.
Bu veri setini direkt olarak RStudio içerisinden indirmek de ayrıca mümkün. Bu işlemi ise aşağıdaki kutuda yer alan adımlari izleyerek gerçekleştirebilirsiniz.
- Excel dosyasını okumayı sağlayacak
readxl
paketinin indirilmesi.
readxl
paketinin yüklenmesi.
- Ham verinin okunması ve
ptfsmf
objesine atanması.
download.file("https://github.com/acikenerji/verianalizi101/blob/master/ptf-smf.xls?raw=true",destfile="ptf-smf.xls")
ptfsmf <- read_excel("ptf-smf.xls")
Burada
ptfsmf
objesi R’ın pek çok obje tipinden biri olan “Data Frame” tipindedir. Data Frame’ler şekilsel anlamda matrislere benzese de birden çok veri tipini depolayabilmeleri açısından oldukça yararlıdır. Örneğinptfsmf
objesinin “Tarih” sütunu bir tarih tipi olanPOSIXct
tipinde, geri kalan sütunlar isenumeric
tipindedir. Bu tiplere hakim olmanız bu döküman için gerekli değildir. Temel olarak bilinmesi gereken nokta,ptfsmf
objesinin elde ettiğimiz tabloyu depolayan obje olduğudur.
Bu veri setinin ham halinin örneklerde rahatlıkla kullanılabilmesi adına bazı format ve isim değişlikleri yapılmıştır ve bu yazının kapsamını aştığından bu dönüşümlerin nasıl yapıldığı anlatılmayacaktır. İlgilenenler için ise bu kodlar Veri Seti Düzenlemeleri kısmında bulunabilir.
Veri setinin örneklere uygun şekilde hazırlanmış haline ise aşağıdaki kodu R’da çalıştırarak ulaşabilirsiniz.
Bu aşamada veri seti okunduktan sonra geri kalan bütün hazırlıklar her bölümde ayrı ayrı detaylı bir şekilde anlatılacaktır.
Örneklerle ilgilenmeye başlamadan önce çalışma dizininizin bilgisayarınızın hangi bölgesi olduğunu öğrenmek için
getwd()
komutunu konsola yazarak çalıştırabilirsiniz. Bir başka önemli nokta ise indirilen bir belge, R Script belgesi içerisinde kullanılacaksa bu belgeningetwd()
komutunun vereceği sonuçla aynı çalışma dizininde olması gerekmektedir.