Python'da çapraz korelasyon nasıl hesaplanır?
Çapraz korelasyon , bir zaman serisi ile başka bir zaman serisinin gecikmeli versiyonu arasındaki benzerlik derecesini ölçmenin bir yoludur.
Bu tür bir korelasyonun hesaplanması faydalıdır çünkü bize bir zaman serisindeki değerlerin başka bir zaman serisindeki gelecekteki değerleri tahmin edip etmediğini söyleyebilir. Başka bir deyişle, bir zaman serisinin başka bir zaman serisi için öncü gösterge olup olmadığını bize söyleyebilir.
Bu tür bir korelasyon aşağıdakiler de dahil olmak üzere birçok farklı alanda kullanılır:
İşletmeler: Pazarlama harcamaları genellikle gelecekteki işletme gelirinin öncü göstergesi olarak kabul edilir. Örneğin, bir şirket bir çeyrekte pazarlamaya alışılmadık derecede yüksek miktarda para harcıyorsa, o zaman toplam gelirin üç çeyrek sonra yüksek olması gerekir.
Ekonomi: Tüketici Güven Endeksi (CCI), bir ülkenin gayri safi yurt içi hasılasının (GSYİH) öncü göstergesi olarak kabul edilir. Örneğin, belirli bir ayda CCI yüksekse GSYH’nin x ay sonra daha yüksek olması muhtemeldir.
Aşağıdaki örnek Python’da iki zaman serisi arasındaki çapraz korelasyonun nasıl hesaplanacağını gösterir.
Örnek: Python’da Çapraz Korelasyon Nasıl Hesaplanır?
Diyelim ki Python’da, belirli bir şirket için toplam pazarlama harcamasını (bin olarak) ve ardı ardına 12 ay boyunca toplam geliri (bin olarak) gösteren aşağıdaki zaman serimiz var:
import numpy as np #define data marketing = n.p. array ([3, 4, 5, 5, 7, 9, 13, 15, 12, 10, 8, 8]) income = np. array ([21, 19, 22, 24, 25, 29, 30, 34, 37, 40, 35, 30])
İki zaman serisi arasındaki her gecikme için çapraz korelasyonu statsmodels paketindeki ccf() fonksiyonunu kullanarak aşağıdaki şekilde hesaplayabiliriz:
import statsmodels. api as sm
#calculate cross correlation
sm. tsa . stattools . ccf (marketing, revenue, adjusted= False )
array([ 0.77109358, 0.46238654, 0.19352232, -0.06066296, -0.28159595,
-0.44531104, -0.49159463, -0.35783655, -0.15697476, -0.03430078,
0.01587722, 0.0070399 ])
Bu çıktıyı nasıl yorumlayacağınız aşağıda açıklanmıştır:
- 0 gecikmesindeki çapraz korelasyon 0,771’dir .
- Gecikme 1’deki çapraz korelasyon 0,462’dir .
- Gecikme 2’deki çapraz korelasyon 0,194’tür .
- Gecikme 3’teki çapraz korelasyon -0,061’dir .
Ve benzeri.
Gecikme sayısı arttıkça iki zaman serisi arasındaki korelasyonun giderek daha az pozitif hale geldiğine dikkat edin. Bu bize, belirli bir aydaki pazarlama harcamasının bir veya iki ay sonraki geliri oldukça tahmin ettiğini, ancak iki aydan sonraki geliri tahmin etmediğini söylüyor.
Bu sezgisel olarak mantıklıdır: Belirli bir aydaki yüksek pazarlama harcamalarının önümüzdeki iki ay boyunca gelirde bir artış olacağını öngörmesini bekleriz, ancak bundan birkaç ay sonra gelirde bir artış olması şart değildir.
Ek kaynaklar
Python’da Otokorelasyon Nasıl Hesaplanır?
Python’da kısmi korelasyon nasıl hesaplanır
Python’da nokta-çift serili korelasyon nasıl hesaplanır