logo

자기상관함수 📂통계적분석

자기상관함수

정의 1

{Yt}t=1n\left\{ Y_{t} \right\}_{t=1}^{n}확률과정이라고 하자.

  1. μt:=E(Yt)\mu_{t} := E ( Y_{t} )평균함수라고 한다.
  2. 다음과 같이 정의된 γt,s\gamma_{ t , s }자기공분산함수라고 한다. γt,s:=cov(Yt,Ys)=E(Ytμt)E(Ysμs) \gamma_{t , s} : = \text{cov} ( Y_{t} , Y_{s} ) = E ( Y_{t} - \mu_{t} ) E ( Y_{s} - \mu_{s} )
  3. 다음과 같이 정의된 ρt,s\rho_{ t , s }자기상관함수라고 한다. ρt,s:=cor(Yt,Ys)=γt,sγt,tγs,s \rho_{ t , s } := \text{cor} ( Y_{t} , Y_{s} ) = {{ \gamma_{t , s} } \over { \sqrt{ \gamma_{t , t} \gamma_{s , s} } }}
  4. 다음과 같이 정의된 ρk\rho_{ k }시차 kk 의 자기상관함수라고 한다. ρk:=cor(Yt,Ytk)=γt,tkγt,tγtk,tk \rho_{ k } := \text{cor} ( Y_{t} , Y_{t-k} ) = {{ \gamma_{t , t - k} } \over { \sqrt{ \gamma_{t , t} \gamma_{t-k , t-k} } }}
  5. 다음과 같이 정의된 rkr_{ k }시차 kk 의 표본자기상관함수라고 한다. rk:=t=k+1n(YtY)(YtkY)t=1n(YtY)2 r_{ k } := {{ \sum_{t = k+1}^{n} \left( Y_{t} - \overline{Y} \right) \left( Y_{t-k} - \overline{Y} \right) } \over { \sum_{t=1}^{n} \left( Y_{t} - \overline{Y} \right)^2 }}

설명

자기상관함수란 시계열 데이터의 자기상관성을 파악하기 위한 함수로, 같은 변수라도 어떤 시차를 가지고 스스로와 비슷한지에 관심을 둔다. 서로 다른 변수의 상관관계에 관심을 가지는 회귀분석의 아이디어와는 달리, 그 스스로가 시차 kk 를 두고 YtY_{t}YtkY_{t-k} 로 나뉘어 두 변수와 같이 취급된다.

수식적 설명

수식적으로는 YtY_{t}MA(q)MA(q) 에서 나왔다고 생각해봤을 때 Yt=etk=1qθketk\displaystyle Y_{t} = e_{t} - \sum_{k=1}^{q} \theta_{k} e_{t-k} 이므로 YtY_{t} 를 여러 정규분포의 합으로 볼 수 있고, ρk\rho_{k} 가 곧 θk\theta_{k} 이므로 MA(q)MA(q) 모형을 찾는데에 유용하다.

sACF rkr_{k} 는 ACF ρk\rho_{k} 의 추정치고, YtY_{t}MA(q)MA(q) 모형에서 나왔다면 k>qk > q 일 때 정규분포 N(ρk,1n[1+2j=1qρj2]2)\displaystyle N \left( \rho_{k} , {{1} \over {n}} \left[ 1 + 2 \sum_{j=1}^{q} \rho_{j}^{2} \right]^2 \right) 를 따른다. 수식으로 나타내보면 rkN(ρk,1n[1+2j=1qρj2]2) r_{k} \sim N \left( \rho_{k} , {{1} \over {n}} \left[ 1 + 2 \sum_{j=1}^{q} \rho_{j}^{2} \right]^2 \right) 인데, 이를 이용해 가설검정을 한다.

테스트

Yt=etk=1qθketk\displaystyle Y_{t} = e_{t} - \sum_{k=1}^{q} \theta_{k} e_{t-k} 이 주어져있고, k=1,,qk = 1 , \cdots , q 이라고 하자.

  • H0H_{0} : MA(0)    θk=0MA(0) \iff \theta_{k} = 0, 즉, YtY_{t}이동평균 모형을 따르지 않는다.
  • H1H_{1} : MA(k)    θk0MA(k) \iff \theta_{k} \ne 0, 즉, YtY_{t} 는 시차 kk 의 자기상관관계를 가진다.

해석

귀무가설 하에서는 모든 kk 에 대해 ρk=θk=0\rho_{k} = \theta_{k} = 0 이므로 q=0q = 0rkN(0,1N)\displaystyle r_{k} \sim N \left( 0 , {{1} \over {N }} \right) 을 가정하고 표준오차1n\displaystyle {{1} \over {\sqrt{n} }} 가 된다. 따라서 유의수준 α\alpha 에 대해서 가설검정을 하고 싶다면 θk| \theta_{k} | 가 신뢰구간상한 z1α/2n\displaystyle {{ z_{1 - \alpha/2} } \over { \sqrt{n} }} 을 넘기는지 확인하면 된다. 넘어가면 유의한 시차의 후보가 되고, 넘어가지 못하면 자기상관관계가 없는 것으로 본다.

실습

20190723\_125305.png

ma1.2.s 데이터는 MA(1)MA(1) 모델에서 나온 TSA 패키지의 샘플 데이터다. 실제 아리마 모형으로 분석할 때 역시 추정치의 절대값이 표준오차의 두 배가 넘는지를 기준으로 유의한 계수인지 파악한다.

1.png

한편 TSA 패키지의 acf() 함수를 사용하면 위와 같이 여러 kk 에 대해 코릴로그램correlogram을 그려준다. 굳이 머릿속으로 계산할 것 없이, 선을 넘어가면 유의한 것으로 보고 넘어가지 않으면 유의하지 않은 것으로 보아도 좋다. 기본적으로 유의수준 5%5 \% 에서 계산된다.

여기서 주의해야할 것으로 k=6k=6 에서 살짝 삐져나온 것 역시 통계적으로 유의한 것은 맞지만, 실제로 자기상관관계가 있는것으로 보지는 않는다는 것이다. 시계열 분석에서 이 정도 삐져나오는 경우는 아주 빈번하며, 정신건강을 위해서는 융통성을 발휘하여 그냥 받아들이는 것을 추천한다.

2.png

자기상관함수를 이용한 가설검정을 제대로 이해했는지 확인해보는 방법으로써 위와 같이 실제로 선을 직접 그어보는 것을 추천한다. R 에서는 고작 코드 한 줄이지만, 한 번이라도 직접 실행시켜봄으로써 rkr_{k} 가 정규분포를 따르며, 그 표준오차가 복잡한 수식 없이 se(rk)=1n\displaystyle \text{se} ( r_{k} ) = {{1} \over {\sqrt{n}}} 으로 구해진다는 것을 받아들일 수 있다.

코드

library(TSA)
data(ma1.2.s); win.graph(6,4); acf(ma1.2.s)
arima(ma1.2.s, order=c(0,0,1))
abline(h=1.96*1/sqrt(length(ma1.2.s)),col='red')

같이보기


  1. Cryer. (2008). Time Series Analysis: With Applications in R(2nd Edition): p11, 109. ↩︎