오늘은 시계열 분석에서 자주 등장하는 개념인 stationarity(정상성)에 대해서 알아보고자 한다.
시계열이 정상적이라는것은 무엇을 말하는 걸까?
결론부터 얘기하자면, 시간이 지남에 따라 시계열의 규칙(결합확률분포)이 바뀌지 않는것을 말한다.
이게 무슨말인가 하면, 시간이 지남에 따라 평균과 분산이 변하지 않으며, 임의의 한 point를 기점으로 주변에 있는 point들과의 확률 분포관계가 변치 않음을 의미한다.
이를 수식으로 표현하자면 아래와 같다.

Stationary의 대표적 예시로는 AR 모델이 있다.
AR(p) 모델은 아래와 같이 표현된다.
$$Y_t\ =\ b_0\ +\ b_{1\ }Y_{t-1}+...b_pY_{t-p}\ +\ \epsilon _t$$
예를 들어 어떤 시계열이 아래와 같은 AR(2)모형을 따른다고 하자.
$$Y_t\ =0.7 Y_{t-1} -0.1 Y_{t-2} +\ \epsilon _t$$
이 시계열은 한 시점 전의 자기 자신의 값에 0.7배, 두 시점 전의 자기 자신의 값에 -0.1배에 랜덤한 오차가 더해져서 결정이 된다. 이러한 규칙은 어떤 시점을 기준으로 하든 동일하게 적용되며, 이런 고정된 규칙에 기인하여 stationary 조건이 만족하게 된다. (참고로 이 시계열의 평균과 분산이 일정하며 위의 Eq.1 와 같이 결합확률분포 또한 일정한 이유는 Characteristic Equation을 통해 증명가능하지만 본 포스팅에서는 생략하도록 하겠다.)
전통적인 시계열 분석에서 Stationarity가 중요한 이유는 그래야 무언가 좀 할 게 있기 때문이다.
우리는 과거로부터 미래를 예측하고자 하는데, 과거 시계열로 부터 얻어진 어떤 패턴이나 규칙이 있다고 가정하며,
그것이 미래에도 유지된다는 가정이 있어야 전통적인 시계열 분석의 의미가 있기 때문이다.
여기서 전통적인 시계열 분석이란 ARIMA 계열의 모델링을 말하는데, ARIMA에 대한 포스팅은 다음에 하도록 하고 weak stationarity에 대해서 이어서 이야기해보고자 한다. 참고로 ARIMA 모델은 전통적인 시계열 모형들 중에 state of art 급에 속하는 모델로 볼 수 있는데 현업에서 써봤을때 문제 상황에 따라서 LSTM과 같은 딥러닝 모델을 이길때가 종종 있어서 알아두면 좋다.
위의 Eq.1 은 사실 강한 의미에서의 정상성 (strong stationary)를 말한다.
하지만 현실적으로 데이터가 Eq.1 을 만족하는지 확인하는것은 매우 어렵다.
예를 들면 Eq.1처럼 두 결합밀도함수가 같은지 확인하기 위해서는 두 확률벡터의 1차 모멘트부터 무한대차 모멘트까지가 모두다 같은지를 확인해야한다. 이는 사실 현실적으로 불가능하다고 볼 수 있다.
그래서 이에 대한 타협으로, 실제 시계열 분석을 할 때에는 두 확률 벡터의 2차 모멘트 까지만 검사한다.
여기서 1차 모멘트란 평균 또는 기댓값을 말하며, 2차 모멘트는 분산과 공분산을 말한다.
즉, Eq.1의 두 확률 벡터의 기댓값과 분산 및 공분산이 같으면 weakly stationary 하다고 한다.
weakly stationary의 수학적 관계식은 아래와 같다.

여기서 mx(t) 는 t번째 시점에서의 평균을, Kxx(t1,t2)는 t1과 t2시점 사이의 공분산(자기 자신의 두 시점을 보는 것이므로, 이를 auto covariance라고도 부름)을 가리킨다.
이 관계식(Eq.3)에 따르면 임의의 tau에 대해서 t번째 시점의 평균과 t+tau 시점의 평균은 동일하며
t1시점과 t2 시점 사이의 공분산은 0번째 시점과 t1-t2 시점 사이의 공분산과 같다고 한다.
즉, 두 시점 간의 공분산은 그 시점들이 특정 위치에 있는가에 따라 바뀌는 것이 아니라, 두 시점 간의 거리에만 의존한다는 것을 의미한다. 마지막으로 발산하지 않는 시계열을 보장하기 위해서 Xt 제곱의 기댓값이 무한대보다 작음을 제약한다.
실제로 시계열 데이터를 보고 weakly stationary인지 확인하는 방법으로는 보통 세가지 방법이 있다.
(1) 시계열 플롯을 보고 분산과 평균이 시간에 따라 바뀌지 않고 어느정도 가지런히 있는지 체크
(2) 구간을 임의로 쪼개어 각 구간별 평균과 auto covariance가 동일한지 체크
(3) ADF test , KPSS test와 같은 전통적인 시계열 통계적 test를 시행.
(ADF test는 p-value가 0.05보다 작아야 stationary, KPSS test는 p-value가 0.05보다 커야 stationary하다고 판단함. 두 test는 서로 상호 보완적인 관계가 있으므로 둘다 해보기를 추천)
하지만 현실에 관측되는 많은 시계열들은 정상적이지 않다. 즉 non-stationary하다. 이럴 경우에는 통계학자 box 와 jenkins가 제시했던 것 처럼 차분(differencing)을 진행해야한다. 즉, 아래와 같이 말이다. (아래의 경우에는 1차 차분)
$$Z_t\ =\ Y_t\ -\ Y_{t-1}$$
이제 그렇게 stationarity가 어느정도 확인이 되면 다음 단계인 box-jenkins 방식의 모델링이 가능해진다.
즉, ARMA 모형 fitting이 가능해지는데 이에 대한 포스팅도 추후에 올려보도록 하겠다.
'데이터 사이언스 > Statistics' 카테고리의 다른 글
| [통계학] 시계열 데이터에서 나타나는 가성 회귀(spurious regression) 문제 (0) | 2023.06.04 |
|---|---|
| [통계학] 시계열 분석에서 AR, MA 모형이란? (0) | 2023.02.15 |
| [통계] 통계학 관련 자격증 (0) | 2022.09.16 |
| [통계학] 다중공선성은 정말로 예측력과 상관없을까? (0) | 2022.09.05 |
| 베이지안 시계열 모형 prophet (in Python) (1) | 2022.08.11 |