Cara menghitung autokorelasi dengan python


Autokorelasi mengukur tingkat kemiripan antara deret waktu dan versi yang tertinggal selama interval waktu yang berurutan.

Kadang-kadang juga disebut “korelasi serial” atau “korelasi tertinggal” karena mengukur hubungan antara nilai variabel saat ini dan nilai historisnya.

Ketika autokorelasi dalam deret waktu tinggi, prediksi nilai masa depan menjadi mudah hanya dengan mengacu pada nilai masa lalu.

Cara Menghitung Autokorelasi dengan Python

Misalkan kita memiliki deret waktu berikut dengan Python yang menunjukkan nilai variabel tertentu selama 15 periode berbeda:

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

Kita dapat menghitung autokorelasi untuk setiap lag dalam deret waktu menggunakan fungsi acf() dari perpustakaan statsmodels:

 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])

Cara menafsirkan hasilnya adalah sebagai berikut:

  • Autokorelasi pada lag 0 adalah 1 .
  • Autokorelasi pada lag 1 sebesar 0.8317 .
  • Autokorelasi pada lag 2 sebesar 0.6563 .
  • Autokorelasi pada lag 3 sebesar 0.4910 .

Dan seterusnya.

Kita juga dapat menentukan jumlah lag yang akan digunakan dengan argumen nlags :

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

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

Cara memplot fungsi autokorelasi dengan Python

Kita dapat memplot fungsi autokorelasi untuk deret waktu dengan Python menggunakan fungsi tsaplots.plot_acf() dari pustaka statsmodels:

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

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

Fungsi autokorelasi dengan Python

Sumbu x menampilkan jumlah lag dan sumbu y menampilkan autokorelasi pada jumlah lag tersebut. Secara default, plot dimulai pada lag = 0 dan autokorelasi akan selalu 1 pada lag = 0.

Kita juga dapat memperbesar lag pertama dengan memilih untuk menggunakan lebih sedikit lag dengan argumen lags :

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

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

Merencanakan Fungsi Autokorelasi dengan Python

Anda juga dapat mengubah judul dan warna lingkaran yang digunakan dalam plot dengan argumen judul dan warna :

 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() 

Fungsi autokorelasi dengan Python dengan judul khusus

Anda dapat menemukan lebih banyak tutorial Python di halaman ini .

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *