오답노트

[ML] 시계열 데이터 본문

Python/ML

[ML] 시계열 데이터

권멋져 2022. 8. 29. 19:59

시계열 데이터

시간의 흐름에 따른 패턴 분석

흐름을 어떻게 정리할지에 따라 모델링 방식이 달라진다.

 

전통적인 시계열 데이터 분석

target 데이터만으로 예측하는 것을 의미한다.

 

ML 기반 시계열 데이터 분석

전통적인 시계열 분석은 target 뿐만 아니라 feature 데이터도 사용하여

데이터의 특정 시점과 예측 대상 시점과의 관계로부터 패턴을 추출하여 예측

시점이므로 데이터는 1차원이다.

DL 기반 시계열 분석

데이터의 특정 구간과 예측 대상 시점과의 관계로 부터 패턴을 추출하여 예측한다.

구간이므로 데이터는 2차원이다.

 

사전확인 오류

특정 시점에서 알 수 없는 데이터를 분석 단위로 묶어서 분석 및 예측하는 오류

feature들의 시점과 Target의 시점은 달라야한다.

 

NaN 조치

이전 값 또는 이후 값으로 채우거나, 사이 값으로 채워 NaN이 없도록 해야한다.

 

CV - Forward Chaining

test 데이터를 분리한 train 데이터중에서 train과 validaion 그리고 이 둘에 속하지 않는 데이터 세개로 나눈다.

그리고 train 데이터를 조금씩 늘려가며 검증을 하고, train과 validaion 둘 다 속하지 않는 데이터는 점점 줄어들게 된다.

한 번 검증하는 것을 fold라고 한다.

 

모델 평가

잔차 분석

잔차를 분석하는 관점은 아래와 같다

  • 정규분포에 가까워야한다.
  • 정상성 데이터에 가까워야한다.
  • 자기상관성이 없어야한다.
  • 더 이상 패던이 발견되지 않아야한다.

위를 만족했을 때 잔차 분석이 잘 됐다고 할 수 있다.

자기상관 함수 (ACF : Auto Correlation Function)

y_t 와 y_(t-n) 간의 상관성이다.

시간 단위 n이 커질 수록 ACF는 0에 근접해간다. (현재에서 멀어질 수록 미래에는 영향이 덜가기 때문에)

 

편자기상관함수 (PACF : Partial Auto Correlation Function)

y_t 와 y_(t-n) 간의 순수한 상관성이다.

y_t 와 y_(t-n) 와 관계에 y_(t-n-1)이 영향을 준다고 가정했을 때, y_(t-n-1)의 영향을 제거한 것을 의미한다.

 

White Noise

시간의 흐름에 따라 아무런 패턴이 없는 의미 없는 값들의 연속을 의미한다.

더 이상 분석할 수 없는 데이터를 Whilte Noise라고 한다.

white noise 의 특징으로는 아래와 같다.

  • 정규분포
  • 평균은 0
  • 분산 일정
  • 값들과 상관성이 없다 (ACF = PACF = 0)

 

잔차 검정

  • 정규성 검정(Shapiro-wilk Test) : 정규분포이다. (p-value > 0.05)
  • 정상성 검정(ADF Test) : 정상(Stationary) 데이터이다. (p-value < 0.05) 

 

Decompsiotion

시계열 데이터 분해를 통해 추세(Trend) 패턴과 계절성(Seasonal) 패턴을 확인할 수 있다.

이 두 패턴을 제외하면 잔차가 남는데, 잔차가 white noise에 가깝다면 위 두 패턴이 원본 데이터를 잘 예측하고 있다는 의미이다.

 

추세 패턴과 계절성 패턴 또한 하나의 모델이 될 수 있다.

또한, 두 패턴을 새로운 feature로 사용할 수도 있다.

(단, train set으로 패턴을 찾고, validation에는 train의 패턴 값을 추가)