정상성(Stationarity)
시계열 분석을 공부하다 보면 거의 반드시 마주치는 단어가 정상성(Stationarity) 이다.
많은 설명이 “평균과 분산이 일정한 상태”라고 짧게 끝나지만,
이 한 문장만으로는 왜 중요한지, 어디서 문제가 생기는지를 이해하기 어렵다.
정상성은 단순한 정의가 아니라 시계열 데이터를 다루는 관점 자체와 연결된 개념이다.
1. 왜 정상성이 필요한가?
시계열 모델은 기본적으로 다음 질문에 답하려고 한다.
“과거에 보였던 패턴이 미래에도 유지될까?”
이 질문에 “그렇다”고 가정할 수 있어야 과거 데이터를 기반으로 미래를 예측할 수 있다.
정상성이란 바로 이 가정을 수학적으로 표현한 개념이다.
2. 정상성의 핵심 직관
정상성을 한 문장으로 풀면 다음과 같다.
시간이 흘러도 이 데이터의 성격이 바뀌지 않는다.
여기서 말하는 “성격”이란 다음을 의미한다.
- 평균 수준
- 변동성의 크기
- 과거와 현재의 관계 구조
즉,언제 관측하든 비슷한 통계적 성질을 가지는 시계열이 정상 시계열이다.
3. 정상 시계열과 비정상 시계열의 차이
정상 시계열 (Stationary Time Series)
다음 특징을 가진다.
- 평균이 일정하다
- 분산이 일정하다
- 자기상관 구조가 시간에 따라 변하지 않는다
예를 들면 다음과 같다.
- 평균 0을 중심으로 위아래로 흔들리는 센서 노이즈
- 일정 범위 내에서 진동하는 신호
시간이 지나도 “이 데이터가 대체로 어느 수준에서, 얼마나 흔들리는지”가 변하지 않는다.
비정상 시계열 (Non-Stationary Time Series)
다음 중 하나라도 해당하면 비정상이다.
- 평균이 시간에 따라 변한다
- 분산이 커지거나 작아진다
- 추세나 계절성이 존재한다
대표적인 예시는 다음과 같다.
- 지속적으로 증가하는 주가
- 계절마다 패턴이 달라지는 매출 데이터
- 시간이 갈수록 변동 폭이 커지는 데이터
현실의 대부분의 시계열 데이터는 비정상이다.
4. 추세와 계절성은 왜 정상성을 깨는가?
추세(Trend)
추세가 있다는 것은
시간이 지날수록 데이터의 평균 수준이 변한다는 의미다.
이는 “평균이 일정하다”는 정상성 가정을 위반한다.
계절성(Seasonality)
계절성은 주기적으로 반복되지만,
시간 위치에 따라 평균 값이 달라진다는 점에서 정상성이 아니다.
- 여름 평균 ≠ 겨울 평균
- 특정 달의 패턴이 고정됨
주기적이라고 해서 정상은 아니다.
5. 정상성의 엄밀한 정의 (너무 수학적이지 않게)
통계적으로 정상성은 여러 단계가 있지만, 실무에서는 보통 약한 정상성(Weak Stationarity) 을 기준으로 한다.
약한 정상성이란 다음 조건을 만족하는 시계열이다.
- 평균이 시간에 의존하지 않는다
- 분산이 시간에 의존하지 않는다
- 공분산은 두 시점의 거리(시차)에만 의존한다
이 세 조건이 충족되면
“과거 패턴이 미래에도 유지될 가능성이 있다”고 판단한다.
6. 정상성이 깨지면 어떤 문제가 생길까?
1) 모델이 패턴을 학습하지 못한다
비정상 시계열에서는 과거의 관계가 미래에도 유지된다는 보장이 없다.
모델 입장에서는
- 초반 데이터에서 학습한 규칙이
- 후반 데이터에서는 깨진다
2) 예측이 의미를 잃는다
예측값이 통계적으로 안정적이지 않다.
- 어떤 시점에서는 잘 맞고
- 다른 시점에서는 완전히 틀린다
이는 모델 성능 평가를 불가능하게 만든다.
7. 정상성은 언제 중요한가?
모든 모델에서 정상성이 반드시 필요한 것은 아니다.
정상성이 중요한 경우
- AR, MA, ARIMA 같은 전통적 시계열 모델
- 통계적 해석이 중요한 경우
덜 중요한 경우
- LSTM, Transformer 같은 딥러닝 기반 모델
하지만 주의할 점이 있다.
딥러닝은 정상성이 필요 없다고 해서
비정상 데이터를 그대로 두는 것이 항상 좋은 것은 아니다.
정규화, 차분, 추세 제거는
딥러닝에서도 학습 안정성을 높여준다.
8. 정상성 판단 방법
1) 시각적 확인
가장 먼저 해야 할 일이다.
- 평균이 변하는가?
- 변동 폭이 커지거나 작아지는가?
- 추세가 보이는가?
눈으로 보이는 추세는 대부분 비정상이다.
2) 통계적 검정 (개념만 이해)
대표적인 방법이 ADF(Augmented Dickey-Fuller) 테스트다.
- ADF 테스트는 시계열에 단위근(unit root) 이 존재하는지를 검정하는 방법
- 단위근이란 “값이 한 번 흔들리면 원래 수준으로 돌아오지 않는 성질”을 의미
- 𝜀_𝑡 : 평균 0, 분산 일정한 잡음(white noise)
- 𝜙 : 이전 시점의 영향력
- ∣ϕ∣<1 → 시간이 지나면 충격이 사라짐, 평균으로 되돌아옴, 정상 시계열
- ϕ=1 → 충격이 누적됨, 과거 영향이 영구적으로 남음, 단위근 존재 (unit root), 비정상 시계열
- 단위근이 존재하면 시계열은 비정상(non-stationary)
- 단위근이 존재하면 바로 랜덤 워크가 됨
- 평균이 시간에 따라 변함
- 분산이 시간에 따라 계속 증가
- 한번 튄 값은 원래로 돌아오지 않음
→ 즉 정상성의 핵심 조건을 모두 위반
가설 설정
- 귀무가설 (H₀): 시계열에는 단위근이 존재한다 → 비정상 시계열이다
- 대립가설 (H₁): 단위근이 존재하지 않는다 → 정상 시계열이다
p-value
- ADF 테스트의 결과로 p-value가 제공된다.
- p-value가 작을수록 귀무가설을 기각할 근거가 강해진다
- 일반적으로 유의수준 α = 0.05를 사용한다
- p-value < 0.05 : 귀무가설 기각(단위근이 없다고 판단) → 정상 시계열일 가능성이 높다
- p-value ≥ 0.05 : 귀무가설 기각 실패 → 단위근 존재 가능성
9. 비정상 시계열을 정상으로 만드는 방법
### 1) 차분 (Differencing)
가장 대표적인 방법이다.
추세를 제거하는 효과가 있어, 평균 변화를 일정하게 만드는데 도움이 될 수 있다.
2) 로그 변환
- 분산이 커지는 문제를 완화
- 성장률 관점으로 변환
3) 계절 차분
- 계절 주기만큼 이전 값과 차이 계산
- 계절성 제거 목적
10. 정리
- 정상성은 “시간이 지나도 데이터 성격이 유지되는 상태”
- 대부분의 현실 시계열 데이터는 비정상
- 추세와 계절성은 정상성을 깨뜨린다
- 전통적 시계열 모델은 정상성을 가정한다
- 차분은 정상성을 만드는 핵심 도구다
11. 퀴즈

F다음의 시계열 중에서 어떤 것이 정상성을 나타낼까요? (a) 200 거래일 동안의 구글 주식 가격; (b) 200 거래일 동안의 구글 주식 가격의 일일 변동; (c) 미국의 연간 파업 수; (d) 미국에서 판매되는 새로운 단독 주택의 월별 판매액; (e) 미국에서 계란 12개의 연간 가격 (고정 달러); (f) 호주 빅토리아 주에서 매월 도살한 돼지의 전체 수; (g) 캐나다 북서부의 맥킨지 강 지역에서 연간 포획된 스라소니의 전체 수; (h) 호주 월별 맥주 생산량; (i) 호주 월별 전기 생산량.