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()
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()
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()
Bu sayfada daha fazla Python dersi bulabilirsiniz.