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