R'de kayan korelasyon nasıl hesaplanır


Yuvarlanan korelasyonlar, kayan bir pencere üzerinde iki zaman serisi arasındaki korelasyonlardır. Bu tür bir korelasyonun faydalarından biri, iki zaman serisi arasındaki korelasyonu zaman içinde görselleştirebilmenizdir.

Bu eğitimde R’de yuvarlanan korelasyonların nasıl hesaplanacağı açıklanmaktadır.

R’de yuvarlanan korelasyonlar nasıl hesaplanır

15 aylık bir süre boyunca iki farklı ürün ( x ve y ) için satılan toplam ürün sayısını görüntüleyen aşağıdaki veri çerçevesine sahip olduğumuzu varsayalım:

 #create data
data <- data.frame(month=1:15,
                   x=c(13, 15, 16, 15, 17, 20, 22, 24, 25, 26, 23, 24, 23, 22, 20),
                   y=c(22, 24, 23, 27, 26, 26, 27, 30, 33, 32, 27, 25, 28, 26, 28))

#view first six rows
head(data)

  month xy
1 1 13 22
2 2 15 24
3 3 16 23
4 4 15 27
5 5 17 26
6 6 20 26

R’de yuvarlanan korelasyonu hesaplamak için zoo paketindeki rollapply() fonksiyonunu kullanabiliriz.

Bu işlev aşağıdaki sözdizimini kullanır:

rollapply(veri, genişlik, EĞLENCE, by.column=TRUE)

Altın:

  • veri: Veri çerçevesinin adı
  • genişlik: Kayan korelasyon için pencerenin genişliğini belirten tamsayı
  • EĞLENCE: Uygulanacak işlev.
  • by.column: İşlevin her sütuna ayrı ayrı uygulanıp uygulanmayacağını belirtir. Bu varsayılan olarak DOĞRU’dur, ancak yuvarlanan korelasyonu hesaplamak için bunun YANLIŞ olduğunu belirtmemiz gerekir.

X ürünü ile y ürünü arasındaki 3 aylık satış korelasyonunu hesaplamak için bu işlevi nasıl kullanacağınız aşağıda açıklanmıştır:

 #calculate 3-month rolling correlation between sales for x and y
rollapply(data, width=3, function (x) cor(x[,2],x[,3]), by.column= FALSE )

 [1] 0.6546537 -0.6933752 -0.2401922 -0.8029551 0.8029551 0.9607689
 [7] 0.9819805 0.6546537 0.8824975 0.8170572 -0.9449112 -0.3273268
[13] -0.1889822

Bu işlev, iki ürünün önceki 3 aydaki satışları arasındaki korelasyonu döndürür. Örneğin:

  • 1-3 aylardaki satışların korelasyonu 0,6546537 idi.
  • 2-4 aylardaki satış korelasyonu -0,6933752 idi.
  • 3-5 aylardaki satış korelasyonu -0,2401922 idi.

Ve benzeri.

Farklı bir zaman dilimi için yuvarlanma korelasyonunu hesaplamak için bu formülü kolayca ayarlayabiliriz. Örneğin, aşağıdaki kod iki ürün arasındaki 6 aylık satış korelasyonunun nasıl hesaplanacağını gösterir:

 #calculate 6-month rolling correlation between sales for x and y
rollapply(data, width=6, function (x) cor(x[,2],x[,3]), by.column= FALSE )

 [1] 0.5587415 0.4858553 0.6931033 0.7564756 0.8959291 0.9067715 0.7155418
 [8] 0.7173740 0.7684468 0.4541476

Bu işlev, önceki 6 aydaki iki ürün satışı arasındaki korelasyonu döndürür. Örneğin:

  • 1-6 aylardaki satışların korelasyonu 0,5587415 idi.
  • 2-7 aylardaki satış korelasyonu 0,4858553 idi.
  • 3-8 aylardaki satış korelasyonu 0,6931033 idi.

Ve benzeri.

Yorumlar

rollapply() işlevini kullanırken aşağıdaki noktaları aklınızda bulundurun:

  • Korelasyonun hesaplanabilmesi için genişliğin (yani açılır pencerenin) 3’e eşit veya 3’ten büyük olması gerekir.
  • Yukarıdaki formüllerde cor(x[,2],x[3]) kullandık çünkü aralarındaki korelasyonu hesaplamak istediğimiz iki sütun 2 ve 3 konumundaydı. İlgilendiğiniz sütunlar farklı konumlarda bulunuyorsa bu sayıları ayarlayın.

İlgili: Excel’de Yuvarlanma Korelasyonu Nasıl Hesaplanır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir