Python에서 자기상관을 계산하는 방법


자기 상관은 연속적인 시간 간격에 걸쳐 시계열과 지연된 버전 간의 유사성 정도를 측정합니다.

변수의 현재 값과 과거 값 사이의 관계를 측정하기 때문에 “계열 상관” 또는 “지연 상관”이라고도 합니다.

시계열의 자기상관관계가 높으면 과거 값을 참고하는 것만으로도 미래 값을 예측하기 쉬워집니다.

Python에서 자기상관을 계산하는 방법

15개의 서로 다른 기간에 대한 특정 변수의 값을 보여주는 다음과 같은 Python 시계열이 있다고 가정합니다.

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

statsmodels 라이브러리의 acf() 함수를 사용하여 시계열의 각 지연에 대한 자기상관을 계산할 수 있습니다.

 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에서 자기상관 함수를 그리는 방법

statsmodels 라이브러리의 tsaplots.plot_acf() 함수를 사용하여 Python에서 시계열에 대한 자기상관 함수를 그릴 수 있습니다.

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

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

Python의 자기상관 함수

x축은 시차 수를 표시하고 y축은 해당 시차 수에 대한 자기상관을 표시합니다. 기본적으로 플롯은 시차 = 0에서 시작하고 자기 상관은 시차 = 0에서 항상 1 입니다.

lags 인수로 더 적은 수의 지연을 사용하도록 선택하여 첫 번째 지연을 확대할 수도 있습니다.

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

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

Python에서 자기상관 함수 플로팅하기

title 및 color 인수를 사용하여 플롯에 사용된 원의 제목 과 색상을 변경할 수도 있습니다.

 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 튜토리얼을 찾을 수 있습니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다