4 Aralık 2016 Pazar

R STUDIO VE ÖRNEK
Nedir R?
“R” dili ilk olarak Yeni Zelanda’daki Aucland Üniversitesi İstatistik Bölümü’nden Ross Ihaka ve Robert Gentleman tarafından yazılmıştır. Daha sonra dünyanın çeşitli yerlerindeki araştırmacılar R’ yi geliştirmek için bir araya gelmiş ve 1997’de bu gruba “R Core Team” adı verilmiştir. R programa dili bu grupta yer alan araştırmacıların katkısı ile günümüzde kullanılan biçimini almıştır. “R” GPL (GNU Kamu Lisansı)altında yayınlanan ve istatistiki hesaplama ve grafik için kullanılan; çok cesitli Unix platformunda, Windows ve MacOS gibi tüm ana platformlarda çalıştırılabilen özgür program ortamıdır.
Neden R?
R ücretsizdir: Açık kaynak kodlu bir proje olarak, R’yi ücret ödemeden kullanabilir,  erişebilir, inceleyebilir ve istediğiniz gibi düzenleyebilirsiniz.
R bir programlama dilidir. R içerisinde analizler fonksiyon ve komutlar yardımıyla yapılır ve diğer programlama dillerine göre öğrenmesi kolay bir dildir. Ayrıca R programı, C ve Java gibi birçok programlama dili ile uyumlu çalışabilmektedir.
R’nin temel tasarım amaçlarından biri grafiklerdir. R, içerisinde grafikler oluşturan etkin araçlara sahiptir. Ayrıca isterseniz kendi grafiklerinizi kendiniz oluşturabilirsiniz.
R, esnek bir istatistiksel analiz aracıdır. Tüm standart veri analiz araçları R’nin içerisinde mevcuttur: Farklı formatlardaki verilerinizi R’ye aktarabilir, veri üzerinde istediğiniz değişiklikleri yapabilir ve uygun istatistiksel yöntemleri (regresyon, ANOVA, GLM, vs.) kullanabilirsiniz.
R, güçlü ve dinamik bir topluluğa sahiptir. R ile ilgili herhangi bir sorunla karşılaştığınızda uluslararası düzeyde R’ye katkıda bulunan binlerce kullanıcıya danışabilirsiniz. İnternet üzerinden R ile ilgili bilgi ve dokümanlara kolaylıkla erişebilirsiniz.
R, sınırsız olanaklara sahiptir: R’ye katkıda bulunan kişiler tarafından oluşturulmuş hazır kodları kullanabilir ya da kendi kodlarınızı kendiniz oluşturabilirsiniz. Bu sayede, hem kendinize hem de dünya genelinde R programını kullanan milyonlarca kullanıcıya katkıda bulunabilirsiniz.

Kısaca R;
–R istatistiksel yazılım geliştirme ortamı veri manipülasyonu, hesaplama ve grafik gösterim için tasarlanmıştır.
–R yaygın olarak kullanılan SPSS, SAS gibi istatistik paket programlardan farklıdır. R bir istatistik paket program değil istatistiksel yazılım geliştirme ortamıdır.
–Analiz sonuçlarını ve tüm fonksiyonları kolayca modifikasyon yapar ve model oluşturur.
–Çok esnek ve son derece özelleştirilebilir. Veri analizi için mükemmel grafik araçlarına sahiptir.
1.R Programlama Dili ve R Studio
R kullanmak için bir araç: R Studio
R programlama dili için öncelikli olarak bir kullanıcı ara birimi/derleyici program indirmemi gerekiyor.
Google’da “Download R Studio” yazınca zaten ilgili linkler hemen geliyor.

 İşletim sistemimize göre, Windows, Mac veya Linux versiyonlarını indirebiliriz.

İndirdikten sonra R Studio’yu dilediğiniz bir dizine kurun.
İlk kodlar
Normalde programlama öğretilirken saatlerce tipler, nesneler, objeler gibi insanın başlangıç hevesini yerle bir eden teorik konular anlatılır. Bu tip girişler yerine baştan elleri kirletmenin daha doğru olacağını düşünüyorum. R Studio’yu açalım.



Mavi Cam bir top’un içindeki R ikonuna tıklayarak R Studio açılır.                



R açılış ekranı aslında Matlab, Sypder (Python) kullananlara oldukça kolay/anlaşılır gelecektir.




En yukarıda yazdığımız kodlar, onun sağ tarafında değişkenler, en altta konsol, sağ tarafta da yardım/dizin/şekiller bulunmaktadır.








2.ÖRNEK
R’daki veri filtreleme ve veriyi parçalara ayırma komutlarına bir giriş yapılıyor. Ardından renklendirme diğer grafikleme komutları ile veri analizi konusu detaylandırılıyor.
KOMUTLAR
str()
subset()
hist()
as.data.frame(table(<veri>))
library(car)
plot()
density()
scatterplotMatrix
palette()
legend()

1.Veri Dosyası/CSV Dosyaları

Örneğimizde Türkiye’nin 2007-2011 yılları arasındaki talep verisinin görselleştirilmesi üzerinden bazı analizler yapılmaya çalışılacaktır.
Bu veri seti Enerji İşleri Genel Müdürlüğü Uzman Yrd. Engin İlseven tarafından hazırlanmıştır.
Veri Setinin Excel’deki görünümü şu şekildedir.











Veri seti Excel formatı yerine CSV dediğimiz, virgülle veya noktalı virgülle veya tabla ayrılmış bir metin dosyası şeklindedir. Dosyayı indirdikten sonra notepad veya herhangi bir metin editörü ile de gözlemlenebilir.
Veri setimiz görüldüğü üzere “;” ile ayrılmış sayı dizinlerinden oluşmaktadır. Türkiye’de “.” Ve “,”’ün kullanımları zaman zaman karıştırıldığı için, Türkçe kaydederken genelde “;” ile ayrım yapılmaktadır.


CSV dosyaları Excel dosyalarının aksine taşınabilir, birçok program tarafından okunabilir metin tabanlı veri dosyalarıdır.

2.Veriyi yüklemek

veri=read.csv("http://www.barissanli.com/calismalar/dersler/r/elektrik-talep.csv", header=TRUE,sep=";",dec=".")

Artık veri dosyamız  R Studio’dan erişilebilir.

3.Veriyi Filtrelemek

Öncelikle en basit olanından başlayalım, dosyamızın bir çok sütundan oluştuğunu gördük. Bu sütunlar tarihsel veriler, sıcaklık verileri ve tüketim verilerinden oluşmaktaydı.
Bir kez daha verileri görmek için
str(veri)
Yazmak yeterli olacaktır.
Verilerimizi standart R komutları ile 3 alt başlıkta filtreleyebiliriz:
Veri[veri[,”<sütun_ismi>”] > sayı,] : Burada büyüktür (>) işareti yerine <,== (eşittir), işaretleri de kullanılabilir.
Ör:
veri[veri[,"yil"]==2007,]       # sadece 2007 yılını seçtik
veri[veri[,"yil"]<=2009,]   # 2009 yılından küçük yılları seçtik
veri[veri[,"haftagunu"]>=6,]  # sadece haftasonunu seç Pazartesi=1..Pazar=7


veri[veri$sütun_ismi> sayı,] : yukarıdaki notasyonun biraz farklı yazılan şeklidir.
Ör:
veri[veri$ay==3,]      # her yıl için sadece mart ayı
veri[veri$haftano>32 | veri$haftano<12,]  # Haftanosu 12’den az ve 32’den çok

 
subset(veri, sütun_ismi>sayı)  : subset komutu kullanınca, artık $ işareti kullanmaya gerek kalmıyor.
Ör:
subset(veri,ay==12)
subset(veri,ortalama_tuketim>30000)

Ben bu noktadan sonra daha çok “$”’lı notasyonu kullanacağım, yazması zor ama akılda kalması en kolay olan yöntem bu. İkinci sırada da subset komutunu kullanacağım.
Burada dikkat etmemiz gereken bir şey var. Verimiz veri[satır,sütun] şeklinde olmasına rağmen biz koşulu satır tarafına, yani virgülün soluna yazıyoruz. Yukarıda göstermememize rağmen, sütun sayısı girerek de , filtrelemelerde belirli sütunları seçebiliriz.
Ör:
veri[veri$ay==3,]     # Mart ayı için tüm sütunları listele
veri[veri$ay==3, "gunluk_tuketim"]     # her yıl mart ayı için günlük tüketim verileri
veri[veri$ay==3, 11]       # günlük tüketim’in sütun numarasını girerek istedik.

4.Filtrelenmiş Veri İle Bazı İşlemler / Histogram

Filtreleme tek başına pek bir anlam taşımıyor olabilir, bunun için önce bir soruya filtreleme ile cevap arayalım.
Soru: Puant talebin 32000 MW’ın üzerinde olduğu aylar, haftanın günleri ve haftalar hangi haftalar, istatistiksel dağılımı ne?
Cevap:
Önce 32000 MW  üzerindeki veri setimizi bir değişkene yükleyelim.

Şimdi  Puant tüketimin 32000MW üzerinde olan ayların, hafta günlerinin ve hafta nolarının histogramlarına bakalım.
Önce yüksek puantların aylara göre dağılımına bakalım.



Görüldüğü üzere yüksek puantlar, daha çok 8. Ay/Ağustosta  toplanmış gözükmekte, sonra ise Temmuz ve Aralık ayları neredeyse birbirine çok yakın.
Bir de haftanın günlerine bakalım…











5.Histogramı Geliştirmek

Bu noktada benim önerim daima;
plot(density….)
komutunu ver formatını kullanmanız, çünkü histogramda data seti küçük ise, veri aralıkları kayabiliyor. Bu sebeple veri aralıklarını dışardan sizin girmeniz en sağlıklı sonucu verir. Hafta günleri 1’den başlıyor ve 7’de bitiyor. O yüzden aralığı 0’dan 8’e belirliyoruz.

















Bu şekilde gerçek ve DOĞRU grafiğe erişmiş olduk. Aynı şeyi bir de plot(density formatı ile yapalım.






6.Parametrelerin Birbiri İle İlişkisini Görmek

Verilerin birbiri ile ilişkisini görmek için bir çok yöntem var ama ben en kolayı ile başlamayı tercih ediyorum. Kullanacağımız komut “car” kütüphanesinin içinde, önce o kütüphaneyi çağırıyoruz. Sonra da scatterplotMatrix komutunu kullanmak gerekecek.

DİKKAT: sakın komutu bu şekilde çağırmayın, tüm verileri birbirine göre çizmeye çalışması 10 dakika sürebilir.








scatterplotMatrix, tüm verileri birbirine göre grafikler, fakat bu çok zaman alabilir. Onun yerine beğendiğimiz üç-dört tanesini almamız daha mantıklı olacaktır.
Bu istediğimiz sütunları da bir vektör olarak veri setimizin sütun hanesine gireriz.

İstediğimiz sütunları c(“sütun1”,”sütun2”,”sütun3”) şeklinde veri[,vektör] şeklinde ekleyerek, aynı anda bir çok grafiğe sahip olabiliriz.












Görüldüğü üzere hafta no ile ortalama tüketim arasında ilginç bir ilişki vardır.
Bu grafiğimize yakından bakalım.
Geçen sefer öğrendiğimiz yöntemlerle biraz güzelleştirelim.Daha önceki plot komutlarına göre noktalarımızı da biraz küçültelim. Bunun için “cex=0.5” komutunu da ekliyoruz.

Bundan sonra ise artık analizimizi biraz renklendirelim.

7.Talebin Aylara Göre Değişimini Görmek/ Plot ve Veriye Göre Renkler



Veri filtrelemeyi kısaca gördüğümüz gibi, şimdi de biraz daha yararlı şeyler yapalım. Bunun için plot fonksiyonunu kullanacağız.
Plot fonksiyonunun parametrelerinden biri de renklerin parametresi olan “col” parametresidir.
Eğer istersen col parametresini, bir başka veri parametresine eşitleyebiliriz. Deneyelim
Soru: Talebimizin  sıcaklıkla değişimini aylara göre renklendirirsek nasıl bir grafik çıkar
Bunun için x eksenimiz ortalama_sicaklik, y eksenimiz, ortalama_tuketim ve renk değerlerimiz de ay verisi olacak:
Önce 2007 yılı için yapalım.


Grafiğimizi biraz geliştirelim, dolu yuvarlak ve 0.5 ağırlık (pch ve cex) komutları
8.Renk Paletini Değiştirmek/Talebin Yıllara Göre Değişimini Görmek
Şimdi tüm talebin sıcaklıkla değişiminin yıllara göre nasıl hareket ettiğini görmeye çalışalım.
Önce paletimizi rainbow’a ayarlayalım.
palette(rainbow(12))
Gökkuşağı paletine ayarladıktan sonra, x eksenine ortalama_sicaklik, y eksenine de ortalama tüketimi verelim.
“col=” yeni renk komutumuza da yılları vereceğiz, fakat yıllarımız 2007’den başladığından, yıldan 2006 çıkararak, 2007 yılına karşılık gelecek renk kodunu “1”’e çeviriyoruz.

Evet, grafiğimiz biraz daha güzel oldu hem de yıllara göre ortalama sıcaklığa tepki veren tüketimin zamanla yukarı doğru hareket ettiğini görmüş olduk.
Geriye tek bir şey kalıyor: Hangi renk hangi yıl?

9.Legend Eklemek (Gösterge)


Legend eklemek için kullanacağımız komut “legend”


Burada hazırlayacağımız grafik için,
-          Bir sefere mahsus paletimizi 12 renklik rainbow(gökkuşağı) paletine set ediyoruz
-          Grafiğimizi yıllara göre renklendirerek çiziyoruz
-          Legend için de vektör olarak 2007,2008,2009,2010,2011 i tanımlayarak, karşılık gelen renkleri de palette(rainbow(12)) ile belirtiyoruz.
Sonuç şu şekilde oluyor.




Bir de bunun daha küçük noktalısını çizelim.

Diğer paletler için
palette(heat.colors(12))
veya
palette(terrain.colors(12))

ile denemeler yapabilirsiniz.

KAYNAKÇA:
http://www.barissanli.com/calismalar/dersler/r/rders3.php
https://www.youtube.com/watch?v=eD07NznguA4
https://www.youtube.com/watch?v=niHYSeSEpvQ&t=216s
https://www.linkedin.com/pulse/nedir-r-program%C4%B1-ve-neden-murat-ak%C5%9Fit