다음과 같이 정의된 γt,s 를 자기공분산함수라고 한다.
γt,s:=cov(Yt,Ys)=E(Yt−μt)E(Ys−μs)
다음과 같이 정의된 ρt,s 를 자기상관함수라고 한다.
ρt,s:=cor(Yt,Ys)=γt,tγs,sγt,s
다음과 같이 정의된 ρk 를 시차 k 의 자기상관함수라고 한다.
ρk:=cor(Yt,Yt−k)=γt,tγt−k,t−kγt,t−k
다음과 같이 정의된 rk 를 시차 k 의 표본자기상관함수라고 한다.
rk:=∑t=1n(Yt−Y)2∑t=k+1n(Yt−Y)(Yt−k−Y)
설명
자기상관함수란 시계열 데이터의 자기상관성을 파악하기 위한 함수로, 같은 변수라도 어떤 시차를 가지고 스스로와 비슷한지에 관심을 둔다. 서로 다른 변수의 상관관계에 관심을 가지는 회귀분석의 아이디어와는 달리, 그 스스로가 시차 k 를 두고 Yt 와 Yt−k 로 나뉘어 두 변수와 같이 취급된다.
수식적 설명
수식적으로는 Yt 가 MA(q) 에서 나왔다고 생각해봤을 때 Yt=et−k=1∑qθket−k 이므로 Yt 를 여러 정규분포의 합으로 볼 수 있고, ρk 가 곧 θk 이므로 MA(q) 모형을 찾는데에 유용하다.
sACF rk 는 ACF ρk 의 추정치고, Yt 가 MA(q) 모형에서 나왔다면 k>q 일 때 정규분포Nρk,n1[1+2j=1∑qρj2]2 를 따른다. 수식으로 나타내보면
rk∼Nρk,n1[1+2j=1∑qρj2]2
인데, 이를 이용해 가설검정을 한다.
귀무가설 하에서는 모든 k 에 대해 ρk=θk=0 이므로 q=0 과 rk∼N(0,N1) 을 가정하고 표준오차는 n1 가 된다. 따라서 유의수준α 에 대해서 가설검정을 하고 싶다면 ∣θk∣ 가 신뢰구간상한 nz1−α/2 을 넘기는지 확인하면 된다. 넘어가면 유의한 시차의 후보가 되고, 넘어가지 못하면 자기상관관계가 없는 것으로 본다.
실습
ma1.2.s 데이터는 MA(1) 모델에서 나온 TSA 패키지의 샘플 데이터다. 실제 아리마 모형으로 분석할 때 역시 추정치의 절대값이 표준오차의 두 배가 넘는지를 기준으로 유의한 계수인지 파악한다.
한편 TSA 패키지의 acf() 함수를 사용하면 위와 같이 여러 k 에 대해 코릴로그램correlogram을 그려준다. 굳이 머릿속으로 계산할 것 없이, 선을 넘어가면 유의한 것으로 보고 넘어가지 않으면 유의하지 않은 것으로 보아도 좋다. 기본적으로 유의수준 5% 에서 계산된다.
여기서 주의해야할 것으로 k=6 에서 살짝 삐져나온 것 역시 통계적으로 유의한 것은 맞지만, 실제로 자기상관관계가 있는것으로 보지는 않는다는 것이다. 시계열 분석에서 이 정도 삐져나오는 경우는 아주 빈번하며, 정신건강을 위해서는 융통성을 발휘하여 그냥 받아들이는 것을 추천한다.
자기상관함수를 이용한 가설검정을 제대로 이해했는지 확인해보는 방법으로써 위와 같이 실제로 선을 직접 그어보는 것을 추천한다. R 에서는 고작 코드 한 줄이지만, 한 번이라도 직접 실행시켜봄으로써 rk 가 정규분포를 따르며, 그 표준오차가 복잡한 수식 없이 se(rk)=n1 으로 구해진다는 것을 받아들일 수 있다.