ML

[ML] 시계열 데이터 - 특징, 정상성 / 비정상성, ACF, PACF, ADF

moonzoo 2024. 7. 5. 17:14

1. 시계열 데이터란?

시계열 데이터(Time Series Data)는 시간의 흐름에 따라 순서대로 수집된 데이터 집합을 말합니다. 이 데이터는 시간 축을 따라 변화하는 어떤 현상을 관찰한 결과로, 금융, 경제, 기상, 공학, 의료 등 다양한 분야에서 활용됩니다.

2. 시계열 데이터 특징

  • 시간 종속성(Time Dependence) :
  • 시계열 데이터는 관측값들이 시간에 따라 순서대로 나열된 데이터를 의미합니다. 즉, 데이터의 순서가 매우 중요하며, 시간 순서가 뒤바뀌면 데이터의 의미가 달라질 수 있습니다.
  • 자기 상관성(Autocorrelation):
  • 시계열 데이터는 과거의 값이 현재나 미래의 값에 영향을 미치는 경향이 있습니다. 이를 자기 상관성이라고 하며, 이는 시계열 분석의 중요한 요소입니다.
  • 계절성(Seasonality):
  • 시계열 데이터는 일정한 주기성을 가질 수 있습니다. 이를 예를 들어, 월별 판매량 데이터는 계절별로 일정한 패턴을 보일 수 있습니다.
  • 추세(Trend):
  • 시간이 지남에 따라 데이터가 증가하거나 감소하는 경향을 보일 수 있습니다. 이는 데이터의 장기적인 방향성을 나타냅니다.
  • 노이즈(Noise):
  • 노이즈는 특정 패턴이나 원인에 기인할 수 없는 데이터에 존재하는 임의의 변동을 의미합니다.

3. 시계열 데이터 분석의 목적

  • 설명(Explanation): 데이터의 과거 행동을 설명하고 이해하는 것입니다. 이는 데이터의 패턴과 특성을 분석하여 시계열의 구성 요소를 파악하는 과정입니다.
  • 예측(Forecasting): 미래의 값을 예측하는 것이 주된 목표입니다. 이는 추세, 계절성, 순환 등을 이용하여 미래의 변화를 예측하는 것입니다.
  • 모니터링(Monitoring): 시계열 데이터를 지속적으로 모니터링하여 이상치나 변동을 감지하는 것입니다. 이는 품질 관리, 금융 리스크 관리 등 다양한 분야에서 활용됩니다.

4. 시계열 데이터 분석 기법

  1. 이동평균(Moving Average): 데이터의 변동성을 줄이고 추세를 파악하기 위해 일정 기간의 평균을 계산하는 방법입니다.
  2. 자기회귀모형(AR, Autoregressive Model): 과거 데이터의 값이 현재 데이터에 영향을 미친다는 가정 하에, 과거 값들을 이용해 현재 값을 예측하는 방법입니다.
  3. 이동평균모형(MA, Moving Average Model): 과거의 오차 항들을 이용해 현재 값을 예측하는 방법입니다.
  4. ARIMA 모형(Autoregressive Integrated Moving Average): 자기회귀와 이동평균 모형을 결합한 방법으로, 데이터의 차분(differencing)을 통해 안정성을 확보하고 예측하는 방법입니다.
  5. SARIMA 모형(Seasonal ARIMA): ARIMA 모형에 계절성을 추가한 모델입니다. 계절성이 있는 시계열 데이터의 예측에 사용됩니다.
  6. 지수평활법(Exponential Smoothing): 최근의 데이터에 더 큰 가중치를 두어 예측하는 방법으로, 단순 지수평활법(Simple Exponential Smoothing), 이중 지수평활법(Double Exponential Smoothing), 삼중 지수평활법(Triple Exponential Smoothing) 등이 있습니다.

5. 정상성 VS 비정상성

시계열 데이터는

시간의 흐름에 따라 통계적인 특성이 변하지 않고 일정한 추세가 없는 정상성(Stationary)

시간에 따라 통계적 흐름이 변화하는 비정상성(Non-Stationary) 데이터로 나눌 수 있습니다.

 

정상성(Stationarity)

정상성은 시계열 데이터의 통계적 특성이 시간에 따라 일정하게 유지되는 것을 의미합니다. 이는 시간의 흐름에 따라 평균, 분산, 공분산이 변하지 않는 것을 말합니다. 정상성은 크게 두 가지로 구분할 수 있습니다.

  1. 약한 정상성(Weak Stationarity, 또는 Covariance Stationarity):
    • 평균이 일정합니다.
    • 분산이 일정합니다.
    • 특정 시차(lag)에 대한 공분산이 일정합니다.
  2. 강한 정상성(Strong Stationarity, 또는 Strict Stationarity):
    • 모든 시점에서 시계열의 확률 분포가 동일합니다.
    • 이는 데이터의 모든 모멘트(moment)가 일정함을 의미합니다.

정상성 데이터는 평균과 표준차가 일정하다는 조건이 선행되어야 분석이 가능하며, 대표적인 예시로 ARIMA 모델이 있습니다.

 

비정상성(Non-stationarity)

비정상성은 시계열 데이터의 통계적 특성이 시간에 따라 변하는 것을 의미합니다. 비정상성 시계열 데이터는 평균, 분산, 공분산 등이 시간에 따라 달라질 수 있습니다. 비정상성을 유발하는 요소는 다음과 같습니다.

  1. 추세(Trend): 시간의 흐름에 따라 데이터가 증가하거나 감소하는 경향을 보입니다.
  2. 계절성(Seasonality): 일정 주기마다 데이터가 반복되는 패턴을 보입니다.
  3. 구조적 변화(Structural Change): 특정 시점에서 데이터의 통계적 특성이 급격히 변화하는 경우입니다.

정상화(Stationarization)

비정상 시계열 데이터를 정상 시계열 데이터로 변환하는 과정이 정상화입니다.

비정상성 데이터의 경우에는 분석 시 예측 범위가 무한대이고, variance, autocorrelation 등의 다양한 파라미터를 고려해야 하기에 평균의 정상화가 필요합니다.

 

1. 차분(Differencing):

데이터에서 이전 시점의 값을 빼는 방법입니다. 1차 차분은 yt - yt_1, 2차 차분은 (yt - yt_1) -(yt_1 - yt_2)와 같이 계산합니다. 이는 추세를 제거하는 데 유용합니다.

 

2. 로그 변환(Log Transformation):

데이터의 분산을 안정화시키는 데 유용합니다. 특히, 데이터의 분산이 시간에 따라 증가하는 경우에 효과적입니다.

 

3. 이동 평균 제거(Moving Average Removal):

일정 기간 동안의 평균을 제거하여 데이터의 변동성을 줄이는 방법입니다.

 

6. ACF, PACF, ADF

1. 자기상관 함수(ACF, Autocorrelation Function)

자기상관 함수는 시계열 데이터에서 특정 시차(lag)에서의 자기상관을 계산한 것입니다. 이는 현재 시점의 데이터와 과거 시점의 데이터 간의 상관관계를 측정합니다. 즉, ACF(k)는 시차 k에서의 자기상관을 나타냅니다.

  • 사용 목적:
    • 데이터의 자기상관성을 파악하여 모델의 필요성을 결정합니다.
    • 시계열 데이터의 패턴을 분석하고 ARIMA 모델의 파라미터 선택에 도움을 줍니다.
  • 해석:
    • ACF 값이 급격히 감소하면 시계열이 비교적 낮은 시차에서만 자기상관을 가진다고 볼 수 있습니다.
    • ACF 값이 천천히 감소하거나 감소하지 않으면 데이터에 추세가 있음을 시사합니다.

시차가 커질수록 ACF는 0에 가까워집니다. 정상 시계열은 상대적으로 빠르게 0에 수렴하며, 비정상 시계열은 천천히 감소하고, 종종 큰양의 값을 가집니다.

차분을 진행하여 정상 시계열로 변환한 ACF 그래프를 보면 값 자체가 훨씬 0에 가까우며, 비교적 빠르게 0에 수렴하는 것을 확인하실 수 있습니다.

 

2. 부분 자기상관 함수(PACF, Partial Autocorrelation Function)

부분 자기상관 함수는 특정 시차에서의 순수한 자기상관을 측정합니다. 이는 해당 시차 이전의 모든 시차의 영향을 제거한 후의 상관관계를 나타냅니다. 즉, yt와 yt-k간의 순수한 상관관계로서 두 시점 사이에 포함된 모든 yt-1, yt-2 … yt-k+1의 영향은 제거됩니다.

  • 사용 목적:
    • AR(p) 모델에서 p 값을 결정하는 데 사용됩니다.
    • 각 시차에서의 순수한 자기상관을 파악할 수 있습니다.
  • 해석:
    • 특정 시차에서 PACF 값이 유의미하게 크면 해당 시차가 자기회귀 모형에 포함될 가능성이 높습니다.
    • PACF 값이 특정 시차 이후 급격히 감소하면 해당 시차까지의 자기회귀 모델이 적합할 수 있습니다.

 

ACF / PACF를 통해 ARIMA 모델 파라미터 설정

 

다음과 같은 ACF와 PACF로 예를 들겠습니다.

ACF 플롯 분석:

  • ACF 플롯은 전체적인 자기상관을 나타냅니다.
  • 시차(lag) 1에서 유의미한 음의 상관관계가 있으며, 이후 점차적으로 감소합니다.
  • 대부분의 시차에서 상관계수가 95% 신뢰구간(파란 점선) 안에 들어가 있습니다.

PACF 플롯 분석:

  • PACF 플롯은 순수한 자기상관을 나타냅니다.
  • 시차 1에서 유의미한 양의 상관관계가 있습니다.
  • 이후 시차에서는 대부분의 값이 95% 신뢰구간 안에 들어갑니다.

ARIMA 모델 계수 선정

 

ARIMA 모델은 (p, d, q)로 구성됩니다.

  • p: AR(자기회귀) 항의 차수
  • d: 차분 횟수 (데이터가 이미 정상성을 가진 경우 0)
  • q: MA(이동평균) 항의 차수
  1. 차분 횟수(d) 결정

ACF와 PACF 플롯을 통해 데이터가 안정적인 패턴을 보이고 있으므로, 데이터가 정상성을 가진 것으로 가정할 수 있습니다. 따라서 차분은 0으로 설정.

  1. AR(자기회귀) 차수(p) 결정
  • PACF 플롯에서 시차 1에서 유의미한 상관관계가 보입니다.
  • 시차 1 이후 급격히 감소하므로, AR(1) 모델이 적합할 수 있습니다.
  1. MA(이동평균) 차수(q) 결정
  • ACF 플롯에서 시차 1에서 유의미한 음의 상관관계가 보입니다.
  • 이후 상관계수는 95% 신뢰구간 안에 들어가므로, MA(1) 모델이 적합할 수 있습니다.

따라서, 적절한 ARIMA 모델은 AR(1)과 MA(1)을 결합한 ARIMA(1, 0, 1) 모델이 될 것입니다.

 

또한, PACF 플롯에서 시차 2까지 유의미한 상관관계가 보이기 때문에 AR 차수를 2로 설정하고, ACF 플롯에서 시차 1에서 유의미한 음의 상관관계를 기반으로 MA 차수를 1로 설정하는 것이 역시 적절합니다. 이에 ARIMA(2, 0, 1) 모델도 적절한 선택입니다.

 

이러한 모델링을 마친 후 , 잔차의 ACF 그래프를 그려, 정상성을 따르는지 확인해야 합니다. 만약, 따르지 않는다면 p,d,q의 파라미터를 재조정하여 다시 모델링 해야합니다.

 

3. ADF (Augmented Dickey-Fuller) Test

 

ADF 검정은 시계열 데이터의 정상성 여부를 판단하는 데 사용되는 통계적 검정입니다. 특히, 시계열 데이터가 단위근(Unit Root)을 가지는지 여부를 검정합니다. 단위근이 존재하면 데이터가 비정상성을 가지며, 단위근이 없으면 데이터가 정상성을 가진다고 판단할 수 있습니다.

 

ADF 검정의 회귀식

ADF 검정은 Dickey-Fuller 검정의 확장형으로, 추가적인 시차 항(term)을 포함하여 더 복잡한 시계열 데이터를 분석합니다. ADF 검정의 일반적인 형태는 다음과 같습니다.

 

가설 설정

  • 귀무가설(H0): 단위근이 존재한다 (즉, 시계열 데이터는 비정상성을 가진다).
  • 대립가설(H1): 단위근이 존재하지 않는다 (즉, 시계열 데이터는 정상성을 가진다).

7. 마치며...

이번에 FDS 프로젝트를 진행하면서, 시계열 데이터에 대한 정리가 필요할 것 같아 리서치를 진행했습니다.

 

그러나, 금융 도메인의 실제 데이터에선 계절성과 추세가 반영되는 경우가 많아 비정상성을 가진 시계열 데이터가 대부분이며 모든 일자가 아닌 영업일자의 데이터만 존재하는 경우도 있습니다.

 

이러한 상황에 적용할 수 있는 적절한 방법론을 리서치하며, 일부를 공유하고자 합니다.