TL;DR
- 정상성은 시간을 옮겨도 시계열의 통계적 성질이 그대로 유지된다는 뜻이다. 값 자체가 일정하다는 뜻은 아니다.
- 약정상성(weak stationarity)에서는 평균과 분산이 일정하고, 두 시점 사이의 관계(자기공분산)는 관측 시점과 상관없이 두 시점의 간격에만 따라 정해진다.
- 평균이 일정해도 분산이 시간에 따라 커지는 랜덤워크는 비정상이다.
- 비정상의 원인에 따라 차분·추세 제거·계절 조정을 고른다. 로그 변환이나 표준화만으로 정상성이 확보되지는 않는다.
정상성
시간을 옮겨도 같은 성질
어떤 공장의 하루 생산량이 평균 100개 주변에서 움직인다고 하자. 어제 110개였다면 오늘은 108개쯤, 그다음은 103개쯤으로 평균 쪽으로 돌아오는 경향이 있다. 이 공장의 기록에서 1월 한 달을 떼어 보든 7월 한 달을 떼어 보든, 평균은 100 근처이고 흔들리는 폭도 비슷하며 어제와 오늘이 닮은 정도도 같다.
이처럼 어느 구간을 떼어 봐도 통계적 성질이 같은 시계열을 정상(stationary) 시계열이라고 한다. 값이 매일 같을 필요는 없다. 값은 계속 오르내리지만, 그 오르내림을 만드는 규칙이 시간에 따라 바뀌지 않는다.
정상성이 따지는 것은 값이 움직이는 방식이 시간에 따라 바뀌는지다.
약정상성
실제 분석에서 주로 쓰는 기준은 약정상성(weak stationarity)이다. 세 가지 조건을 본다.
첫째, 평균이 시점과 상관없이 로 같다. 둘째, 분산이 유한하고 일정하다. 셋째, 두 시점 사이의 [[[공분산]]]이 관측 시점 와 상관없이 두 시점의 간격 에만 따라 정해진다.
세 번째 조건은 오해하기 쉽다. 1월 1일과 2일 사이의 관계와 3월 10일과 11일 사이의 관계는 같아야 한다. 둘 다 하루 간격이기 때문이다. 반면 하루 간격의 관계와 일주일 간격의 관계는 달라도 된다. 언제 관측했는지는 상관없고, 두 시점이 얼마나 떨어져 있는지만 관계를 정한다.
자기공분산이 0일 필요도 없다. 위 공장처럼 어제 값이 오늘 값과 닮는 자기상관이 있어도 정상일 수 있다. 정상성은 관측값들이 서로 독립이라는 뜻이 아니다.
더 엄격한 기준은 강정상성(strict stationarity)이다. 임의의 여러 시점을 골라 모두 같은 만큼 옮겨도, 그 시점들의 값이 함께 나타나는 확률 구조(결합분포)가 변하지 않아야 한다. 평균·분산·자기공분산뿐 아니라 분포 전체가 같아야 하므로, 분산이 유한하다면 약정상성보다 강한 조건이다. 실무에서는 확인하기 어려워 약정상성을 주로 쓴다.
평균이 일정해도 비정상인 경우
추세가 없는 그래프면 정상이라고 생각하기 쉽다. 시작값이 100인 드리프트 없는 랜덤워크로 확인해 보자. 매 시점 평균 0, 분산 인 독립 충격이 쌓인다.
평균은 언제나 100이다. 그러나 분산은 시간이 지날수록 커진다. 10일째보다 100일째에 값이 훨씬 넓게 흩어져 있을 수 있다. 분산이 일정하다는 조건이 깨졌으므로 비정상이다.
평균이 일정하거나 뚜렷한 상승 추세가 없다는 사실만으로 정상이라고 판단하지 않는다. 충격이 사라지지 않고 쌓이는 이런 성질을 단위근이라고 부른다.
정상이어도 예측할 수 있다
반대 방향의 오해도 있다. 정상이면 미래를 예측할 수 없다고 생각하기 쉽다. 앞의 공장 생산량을 식으로 쓰면 다음과 같다.
새 충격 는 과거와 독립이고 평균이 0이다. 이 과정의 전체 평균은 100이다. 그런데 오늘 값이 110이면 내일 값의 평균 예측은 이다. 정상성이 말하는 일정한 평균(100)과, 오늘 정보를 반영한 평균 예측값(108)은 서로 다른 숫자다. 정상 시계열도 자기상관이 있으면 예측에 쓸 정보가 있다.
비정상이 되는 경우
원계열이 비정상이 되는 대표적인 경우는 다음과 같다.
- 추세: 평균 수준이 시간에 따라 꾸준히 오르거나 내린다.
- 계절성: 요일이나 계절에 따라 평균이 다르다. 평일 평균 방문자가 100명, 주말 평균이 200명인 서비스는 매주 같은 패턴이 반복돼도 금요일에서 토요일로 넘어가면 평균이 달라지므로 원계열은 정상이 아니다.
- 구조변화: 특정 시점 이후 평균이나 분산 구조 자체가 바뀐다(Regime Shift와 Structural Break).
- 단위근: 충격이 쌓여 분산이 계속 커진다.
변동성이 커진 구간이 보인다고 곧바로 비정상으로 판단하지는 않는다. "최근 큰 충격이 있었으니 당분간 크게 움직일 것 같다"는 현재 정보를 반영한 조건부 변동성의 이야기다. 이런 과정도 장기적인 분산은 일정할 수 있다.1 "이 시점부터 데이터를 만드는 분산 구조 자체가 바뀌었다"는 구조변화의 이야기다. 두 경우를 구분하고, 짧은 구간의 표본 평균이나 표본 분산이 달라졌다는 사실만으로 비정상을 확정하지 않는다.
비정상을 다루는 방법
방법마다 해결하는 문제가 다르다. 비정상의 원인에 맞춰 고른다.
| 방법 | 주된 역할 | 주의할 점 |
|---|---|---|
| 차분 | 단위근 때문에 쌓이는 변동을 없앤다 | 모든 비정상성이 한 번의 차분으로 해결되지는 않는다 |
| 추세 제거 | 정해진 추세선을 뺀다 | 랜덤워크의 쌓인 충격은 직선을 빼도 남는다 |
| 계절 조정·계절 차분 | 계절에 따른 평균 차이를 다룬다 | 계절성의 구조에 맞춰 방법을 고른다 |
| 로그 변환 | 수준이 커질수록 변동폭도 커지는 현상을 완화한다 | 로그를 취해도 추세나 단위근은 그대로 남는다 |
평균을 빼고 표준편차로 나누는 표준화(스케일링)는 정상성과 관계가 없다. 고정된 상수 로 를 만들면 이므로, 원래 평균이 시간에 따라 변하면 변환한 뒤에도 평균이 시간에 따라 변한다. 단위를 바꿨을 뿐 추세는 그대로다.
모델링에서의 의미
모든 예측 모형이 원자료의 정상성을 요구하지는 않는다. 추세와 계절성을 모형 안에서 설명하고 남는 변동에만 정상성을 가정할 수도 있고, 차분한 자료를 모형에 넣을 수도 있다. 그래서 모형을 고를 때는 원자료, 차분한 자료, 모형의 오차 가운데 어디에 정상성을 가정하는지를 확인한다. 트리나 신경망도 과거 값과 계절 정보를 입력으로 쓸 수 있지만, 학습 기간에 없던 구조변화까지 자동으로 처리하지는 못한다.
- 모델이 과거 평균만 학습하고 최근 수준 변화를 따라가지 못하면 수준 이동이나 추세 변화를 의심한다.
- 표준화에 쓰는 평균·표준편차를 전체 기간에서 계산하면 미래 정보가 학습에 들어간다. 각 검증 구간의 학습 자료에서만 계산하고, 그 값을 검증 자료에 적용한다.
- rolling 또는 expanding 검증으로 시간이 지나며 성능이 무너지는지 확인한다. 이 검증은 미래 예측 성능을 평가하는 방법이고, 정상성을 증명하지는 않는다.
Connections
- 시계열 데이터 — 정상성은 시계열의 기본 통계 가정이다.
- 자기상관 — 약정상성에서 자기공분산은 시차에만 의존한다. 자기상관이 있어도 정상일 수 있다.
- Regime Shift와 Structural Break — 정상성이 깨지는 대표적 원인.
- [[랜덤워크(Random Walk)]] — 평균은 일정하지만 분산이 커져 비정상인 대표 사례. 차분하면 정상인 충격 계열이 남는다.
- [[단위근(Unit Root)]] — 충격이 쌓여 정상성이 깨지는 성질.
- 시계열 검증에서 예측 기준일을 이동시키는 방법 — 시간에 따른 성능 안정성을 확인한다.
Related MOCs
출처
-
Bollerslev, T. (1986). Generalized autoregressive conditional heteroskedasticity. Journal of Econometrics, 31(3), 307–327. ↩︎
Discussion
Comments
댓글은 승인 후 공개됩니다.