R STUDIO VE ÖRNEK
Nedir R?
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 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.
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.phphttps://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