Як обчислити автокореляцію в python


Автокореляція вимірює ступінь подібності між часовим рядом і його версією з відставанням протягом наступних інтервалів часу.

Її також іноді називають «послідовною кореляцією» або «кореляцією з відставанням», оскільки вона вимірює зв’язок між поточними значеннями змінної та її історичними значеннями.

Коли автокореляція в часовому ряді висока, стає легко передбачити майбутні значення, просто посилаючись на минулі значення.

Як обчислити автокореляцію в Python

Припустімо, що ми маємо наступний часовий ряд у Python, який показує значення певної змінної для 15 різних періодів:

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

Ми можемо обчислити автокореляцію для кожного лага в часовому ряді за допомогою функції acf() із бібліотеки 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])

Спосіб інтерпретації результату такий:

  • Автокореляція на відставанні 0 дорівнює 1 .
  • Автокореляція на лаг 1 становить 0,8317 .
  • Автокореляція на відставанні 2 становить 0,6563 .
  • Автокореляція на лагі 3 становить 0,4910 .

І так далі.

Ми також можемо вказати кількість лагів для використання за допомогою аргументу nlags :

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

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

Як побудувати функцію автокореляції в Python

Ми можемо побудувати графік функції автокореляції для часового ряду в Python за допомогою функції tsaplots.plot_acf() із бібліотеки statsmodels:

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

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

Функція автокореляції в Python

На осі абсцис відображається кількість затримок, а на осі у – автокореляція при цій кількості затримок. За замовчуванням графік починається з відставання = 0, а автокореляція завжди дорівнюватиме 1 при відставанні = 0.

Ми також можемо збільшити перші затримки, вибравши використання меншої кількості затримок з аргументом lags :

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

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

Побудова функції автокореляції в Python

Ви також можете змінити заголовок і колір кіл, які використовуються в діаграмі, за допомогою аргументів заголовка і кольору :

 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 із власним заголовком

Ви можете знайти більше посібників з Python на цій сторінці .

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *