Python'da otokorelasyon nasıl hesaplanır?


Otokorelasyon, bir zaman serisi ile kendisinin gecikmeli versiyonu arasındaki ardışık zaman aralıklarındaki benzerlik derecesini ölçer.

Bir değişkenin mevcut değerleri ile geçmiş değerleri arasındaki ilişkiyi ölçtüğü için bazen “seri korelasyon” veya “gecikmeli korelasyon” olarak da adlandırılır.

Bir zaman serisinde otokorelasyon yüksek olduğunda, sadece geçmiş değerlere başvurarak gelecekteki değerleri tahmin etmek kolaylaşır.

Python’da Otokorelasyon Nasıl Hesaplanır?

Python’da belirli bir değişkenin değerini 15 farklı dönem için gösteren aşağıdaki zaman serisine sahip olduğumuzu varsayalım:

 #define data
x = [22, 24, 25, 25, 28, 29, 34, 37, 40, 44, 51, 48, 47, 50, 51]

Statsmodels kütüphanesindeki acf() fonksiyonunu kullanarak zaman serisindeki her gecikme için otokorelasyonu hesaplayabiliriz:

 import statsmodels.api as sm

#calculate autocorrelations
sm.tsa.acf(x)

array([ 1. , 0.83174224, 0.65632458, 0.49105012, 0.27863962,
        0.03102625, -0.16527446, -0.30369928, -0.40095465, -0.45823389,
       -0.45047733])

Sonucun yorumlanma şekli şu şekildedir:

  • Gecikme 0’daki otokorelasyon 1’dir .
  • Gecikme 1’deki otokorelasyon 0,8317’dir .
  • Gecikme 2’deki otokorelasyon 0,6563’tür .
  • 3. gecikmedeki otokorelasyon 0.4910’dur .

Ve benzeri.

Ayrıca nlags argümanıyla kullanılacak gecikme sayısını da belirtebiliriz:

 sm.tsa.acf(x, nlags= 5 )

array([1.0, 0.83174224, 0.65632458, 0.49105012, 0.27863962, 0.03102625])

Python’da otokorelasyon fonksiyonu nasıl çizilir

Python’da statsmodels kütüphanesindeki tsaplots.plot_acf() fonksiyonunu kullanarak bir zaman serisi için otokorelasyon fonksiyonunun grafiğini çizebiliriz:

 from statsmodels.graphics import tsaplots
import matplotlib.pyplot as plt

#plot autocorrelation function
fig = tsaplots.plot_acf(x, lags=10)
plt.show() 

Python'da otokorelasyon işlevi

X ekseni gecikme sayısını, y ekseni ise bu gecikme sayısındaki otokorelasyonu görüntüler. Varsayılan olarak çizim gecikme = 0’da başlar ve otokorelasyon gecikme = 0’da her zaman 1 olacaktır.

Ayrıca gecikmeler argümanıyla daha az gecikme kullanmayı seçerek ilk gecikmelere yakınlaşabiliriz:

 from statsmodels.graphics import tsaplots
import matplotlib.pyplot as plt

#plot autocorrelation function
fig = tsaplots.plot_acf(x, lags= 5 )
plt.show() 

Python'da Otokorelasyon Fonksiyonunun Çizilmesi

Ayrıca çizimde kullanılan dairelerin başlığını ve rengini başlık ve renk bağımsız değişkenleriyle değiştirebilirsiniz:

 from statsmodels.graphics import tsaplots
import matplotlib.pyplot as plt

#plot autocorrelation function
fig = tsaplots.plot_acf(x, lags= 5, color='g', title='Autocorrelation function' )
plt.show() 

Python'da özel başlıkla otomatik korelasyon işlevi

Bu sayfada daha fazla Python dersi bulabilirsiniz.

Yorum ekle

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