Pandalarda yuvarlanma korelasyonu nasıl hesaplanır: örneklerle


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 Python’da bir panda DataFrame için yuvarlanan korelasyonların nasıl hesaplanacağı ve görselleştirileceği açıklanmaktadır.

Pandalarda 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:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd.DataFrame({'month': np. arange (1, 16),
                   'x': [13, 15, 16, 15, 17, 20, 22, 24, 25, 26, 23, 24, 23, 22, 20],
                   'y': [22, 24, 23, 27, 26, 26, 27, 30, 33, 32, 27, 25, 28, 26, 28]})

#view first six rows
df. head ()

  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

Pandalarda yuvarlanan korelasyonu hesaplamak için Rolling.corr() işlevini kullanabiliriz.

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

df[‘x’].rolling(genişlik).düzelt(df[‘y’])

Altın:

  • df: Veri çerçevesi adı
  • genişlik: Kayan korelasyon için pencerenin genişliğini belirten tamsayı
  • x, y: arasındaki kayan korelasyonu hesaplamak için iki sütun adı

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
df[' x ']. rolling (3). corr (df[' y '])

0 NaN
1 NaN
2 0.654654
3 -0.693375
4 -0.240192
5 -0.802955
6 0.802955
7 0.960769
8 0.981981
9 0.654654
10 0.882498
11 0.817057
12 -0.944911
13 -0.327327
14 -0.188982
dtype:float64

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,654654 idi.
  • 2-4 aylardaki satış korelasyonu -0,693375 idi.
  • 3-5 aylardaki satış korelasyonu -0,240192 idi.

Ve benzeri.

Farklı bir zaman dilimi için yuvarlanan korelasyonu 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
df[' x ']. rolling (6). corr (df[' y ']) 
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 0.558742
6 0.485855
7 0.693103
8 0.756476
9 0.895929
10 0.906772
11 0.715542
12 0.717374
13 0.768447
14 0.454148
dtype:float64

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,558742 idi.
  • 2-7 aylardaki satış korelasyonu 0,485855 idi.
  • 3-8 aylardaki satış korelasyonu 0,693103 idi.

Ve benzeri.

Yorumlar

Bu örneklerde kullanılan işlevlerle ilgili bazı notları burada bulabilirsiniz:

  • Korelasyonların hesaplanabilmesi için genişliğin (yani açılır pencerenin) 3’e eşit veya 3’ten büyük olması gerekir.
  • Rolling.corr() işlevine ilişkin tüm belgeleri burada bulabilirsiniz.

Ek kaynaklar

R’de kayan korelasyon nasıl hesaplanır
Excel’de Yuvarlanma Korelasyonu Nasıl Hesaplanır

Yorum ekle

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