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()
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()
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()
Anda dapat menemukan lebih banyak tutorial Python di halaman ini .