R Programlamada Zaman Serisi Tanımlama


Merhaba R severler,

Bu dersimizde zaman serilerinin R programlama üzerinde işleyişini ve ilgili komutları inceleyeceğiz. Fakat öncesinde her zaman yaptığımız gibi zaman serileri üzerinde biraz durmamız gerekecek.

Zaman Serisi

Analizi zaman içerisinde düzenli olarak gözlemlenen, gözlemler sırasında istatistiksel yöntemler kullanılan ve gelecek zaman dilimleri için tahminlerin güvenilir bir şekilde yapılmasını sağlayan istatistiksel tekniktir.

Sürekli olarak kaydedilebilen (voltaj, ses, elektrik sinyalleri…vb.) veriler için kullanılan yöntem sürekli zaman serileri iken; belirli aralıklarla elde edilen (faiz oranı, satış hacmi…vb.)seriler kesikli zaman serisinin konusudur.

Zaman Serisinin R Programlamada Uygulanması

Zaman serileri R programı içerisinde ts() komutu ile kurgulanmaktadır.  Bu komut dört adet argümandan oluşmaktadır. Bunlar;

·         Data : zaman serisi için kullanılacak vektör yada matrisi temsil etmektedir.

·         Start: zaman serisinde ilk gözlemlenen değer için başlangıç değerini temsil eder.

·         End :     zaman serisinde son gözlemlenen değer için bitiş değerini temsil eder.

·         Frequency : uygulanacak zaman serisinin hangi aralıklarla analizinin yapılacağını temsil eder.

Kullanımı aşağıdaki gibidir;

Atanacak_değer =  ts (data, start, end, frequency)

Örnek;

Ocak 2012 yılından itibaren bir sene içerisinde alınan yağış miktarını inceleyelim. Öncelikle elde ettiğimiz gözlemleri bir vektör içerisinde tanımlayalım

rainfall <- c(799,1174.8,865.1,1334.6,635.4,918.5,685.5,998.6,784.2,985,882.8,1071)

tanımlama işleminden sonra elimizdeki veriyi bir zaman serisine çevirelim;

rainfall.timeseries <- ts(rainfall,start = c(2012,1),frequency = 12)

yukarıda görüldüğü gibi rainfall.timeseries isimli değişkenin içerisine rainfall vektöründen veri çekerek, başlangıcı 2012 yılının birinci ayından itibaren bütün bir seneyi kapsayacak bir şekilde tanımlamamız yapılmıştır. Bize dönecek olan sonuç aşağıdaki gibidir.

rainfall.timeseries

Jan    Feb    Mar    Apr    May    Jun    Jul    Aug    Sep    Oct    Nov    Dec

2012  799.0 1174.8  865.1 1334.6  635.4  918.5  685.5  998.6  784.2  985.0  882.8 1071.0

Grafikte bu seriyi görmek istersek aşağıdaki komutu uygulamamız yeterli olacaktır.

plot(rainfall.timeseries)

Farklı Zaman Aralıkları

Zaman aralıklarını frequency argümanı üzerinden tanımladığımızı daha önceden söylemiştik. Fakat bu argüman içerisine 12 değil de 4 yazdığımız zaman ilk dört ayı alacak şeklinde düşünmemiz yanlış olur. Aşağıdaki tabloda bu argümana verilecek değerler ile ilgili bilgiler verilmiştir.

·         Frequency = 12 yılın her ayına göre zaman serisi oluşturur.

·         Frequency = 4 yılın her çeyrek zamanına göre zaman serisi oluşturur.

·         Frequency = 6 bir saatin her on dakikasına göre zaman serisi oluşturur.

·         Frequency = 24 * 6 günün her on dakikasına göre zaman serisi oluşturur.

Çoklu zaman serisi oluşturma

Öncelikle iki adet vektör oluşturalım

rainfall1 <- c(799,1174.8,865.1,1334.6,635.4,918.5,685.5,998.6,784.2,985,882.8,1071)

rainfall2 <- c(655,1306.9,1323.4,1172.2,562.2,824,822.4,1265.5,799.6,1105.6,1106.7,1337.8)

oluşturulan vektörleri bir matris içerisinde tanımlayalım;

combined.rainfall <-  matrix(c(rainfall1,rainfall2),nrow = 12)

meydana gelen matrisi bir zaman serisine dönüştürelim;

rainfall.timeseries <- ts(combined.rainfall,start = c(2012,1),frequency = 12)

bize aşağıdaki gibi bir sonuç verecektir.

Series 1  Series 2

Jan 2012    799.0    655.0

Feb 2012   1174.8   1306.9

Mar 2012    865.1   1323.4

Apr 2012   1334.6   1172.2

May 2012    635.4    562.2

Jun 2012    918.5    824.0

Jul 2012    685.5    822.4

Aug 2012    998.6   1265.5

Sep 2012    784.2    799.6

Oct 2012    985.0   1105.6

Nov 2012    882.8   1106.7

Dec 2012   1071.0   1337.8

Aynı zamanda bunu bir grafik üzerinde göstermek istersek yine plot komutu ile bu işlemi gerçekleştirebiliriz.

Konu ile ilgili soru ve önerileriniz için facebook sayfamızı ziyaret edebilirsiniz.

Yazar Kimdir?

Sıtkı Cansu, 19 Ekim 1985 yilinda Konya-Beyşehir'de dogmustur.İlk, orta ve liseyi Beyşehir'de bitirmis olup Konya-Ereğli Selçuk MYO Bilgisayar programcılığı ve Mugla Sıtkı Koçman Üniversitesi İstatistik bölümünden mezun olmustur. Çesitli yerlerde web tasarımcı ve veri tabani yöneticisi olarak çalışan yazar, son üç senedir ingilizce öğretmenliği yapmaktadir. Şu anda yüksek lisansını tamamlamak üzere Mugla Üniversitesinde öğrenim görmektedir.