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


상호상관은 시계열과 다른 시계열의 지연 버전 간의 유사성 정도를 측정하는 방법입니다.

이러한 유형의 상관 관계는 한 시계열의 값이 다른 시계열의 미래 값을 예측하는지 여부를 알려줄 수 있으므로 계산에 유용합니다. 즉, 하나의 시계열이 다른 시계열의 선행 지표인지 여부를 알려줄 수 있습니다.

이러한 유형의 상관 관계는 다음을 포함하여 다양한 분야에서 사용됩니다.

기업: 마케팅 지출은 종종 미래 비즈니스 수익의 주요 지표로 간주됩니다. 예를 들어, 회사가 한 분기에 마케팅에 비정상적으로 많은 돈을 지출했다면 총 수익은 x 분기 이후에 높아야 합니다.

경제: 소비자 신뢰 지수(CCI)는 국가의 국내총생산(GDP)을 나타내는 주요 지표로 간주됩니다. 예를 들어, 특정 달에 CCI가 높다면, GDP는 x 개월 후에 더 높아질 가능성이 높습니다.

다음 예에서는 Python에서 두 시계열 간의 상호 상관을 계산하는 방법을 보여줍니다.

예: Python에서 상호 상관을 계산하는 방법

특정 회사의 총 마케팅 지출(천 단위)과 12개월 연속 총 수익(천 단위)을 보여주는 Python의 다음 시계열이 있다고 가정해 보겠습니다.

 import numpy as np

#define data 
marketing = n.p. array ([3, 4, 5, 5, 7, 9, 13, 15, 12, 10, 8, 8])
income = np. array ([21, 19, 22, 24, 25, 29, 30, 34, 37, 40, 35, 30])

다음과 같이 statsmodels 패키지ccf() 함수를 사용하여 두 시계열 간의 각 지연에 대한 상호 상관을 계산할 수 있습니다.

 import statsmodels. api as sm

#calculate cross correlation
sm. tsa . stattools . ccf (marketing, revenue, adjusted= False )

array([ 0.77109358, 0.46238654, 0.19352232, -0.06066296, -0.28159595,
       -0.44531104, -0.49159463, -0.35783655, -0.15697476, -0.03430078,
        0.01587722, 0.0070399 ])

이 출력을 해석하는 방법은 다음과 같습니다.

  • 시차 0에서의 상호 상관은 0.771 입니다.
  • 시차 1에서의 상호 상관은 0.462 입니다.
  • 시차 2에서의 상호 상관은 0.194 입니다.
  • 시차 3에서의 상호 상관은 -0.061 입니다.

등등.

두 시계열 간의 상관관계는 시차 수가 증가함에 따라 점점 더 덜 긍정적이 됩니다. 이는 특정 달의 마케팅 지출이 1~2개월 후의 수익을 상당히 예측하지만 2개월 이후의 수익은 예측하지 못한다는 것을 말해줍니다.

이는 직관적으로 이해됩니다. 특정 달의 높은 마케팅 지출이 향후 2개월 동안 수익 증가를 예측할 것으로 예상하지만, 지금부터 몇 달 후에 반드시 수익 증가가 필요한 것은 아닙니다.

추가 리소스

Python에서 자기상관을 계산하는 방법
Python에서 부분 상관 관계를 계산하는 방법
Python에서 점-이중 상관 관계를 계산하는 방법

의견을 추가하다

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