AI/Time Series

시계열 데이터 EDA(Exploratory Data Analysis) 하기 (2)

방황하는 데이터불도저 2024. 2. 22. 00:52

이전 글에서는 보편적인 EDA 과정에 대해서 간략하게 소개하였습니다. 이번 글에서는 좀 더 구체적으로 시계열 분석 및 예측을 하기 위해서 EDA 과정 중에 어떤 데이터 처리가 필요한지 알아보겠습니다.

 

결측치 처리 (대치법: imputation)

 

이전 글에서는 결측치 데이터를 제거하는 방법에 대해서만 다루었습니다. 결측치 제거 이외에도 다양한 방법으로 결측치를 처리할 수 있는 대치법에 대해 설명하겠습니다.

 

  • 선형 보간법(interpolation) : 앞뒤의 데이터 값에 대해 선형식을 세워 중간의 누락데이터를 채워넣는 방법
  • 그 외의 보간법 : 전체 데이터에 대한 min(최소), max(최대), mean(평균), mode(중앙값) 등을 채워넣는 방법
  • forward fill(포워드 필) : 누락 직전의 값을 그대로 채워넣는 방법
  • backward fill(백워드 필) : 누락 직후의 값을 그대로 채워넣는 방법
  • 이동평균(Moving Average) : 누락 전의 window 데이터에 대한 평균을 채워넣는 방법

이동평균에 대해서는 더 자세히 설명해보겠습니다. 이동평균 계산한 것=running metrics라고도 말할 수 있습니다.

 

  • 주기, 윈도우(window) : Convolution의 sliding window와 같은 개념으로 사용된다.
  • window size를 하이퍼파라미터로 설정하고, window 내의 값들을 평균낸 값을 출력해준다.
  • 코드 예시 : Pandas의 Windowing operations

단순 이동 평균(Simple Moving Average; SMA)

 

  • 이중이동평균(Double Moving Average) : 단순이동평균을 두번 적용한 것.
  • 가중이동평균(Weighted Moving Average) : 단순이동평균에서 window내의 값마다 가중치를 주어 평균내주는 것.
  • 이중가중이동평균(Double Weighted Moving Average) : 가중이동평균을 두번 적용한 것.

 

칼만필터(Kalman Filter)를 사용하여 결측치를 채우는 방법도 있습니다.

 

  • 칼만필터의 목적 : 시간에 따라 변하는 물체의 상태(위치) 변화를 추정하는 것 (state-space model; 상태공간모델)
  • 보편적으로 물체의 궤적을 추정하는 GPS, 내비게이션과 같은 항법시스템에 자주 사용된다.
  • 구체적인 원리에 대해서는 유튜브 강의에 잘 설명되어있으니 한번 들어보시는 것을 추천드립니다.
HMM, 칼만필터에 대한 유튜브 강의

 

데이터 평활화 (Smoothing Method)

 

평활화의 목적으로는 아래와 같습니다.

 

    • 이상치 또는 측정 오류값 제거 → 데이터 시각화
    • 데이터의 특징을 생성해준다. → 평활된 특징으로 예측
    • 데이터의 잡음을 없애주어 값의 변화를 매끄럽게 하고, 이를 시각화하여 추세나 계절성을 알기 쉽게 한다. (=불규칙적이거나 유실된 데이터를 resampling 해준다.)

결측치 파트에서 설명했던 이동평균법을 Smoothing기법으로 보편적으로 사용할 수 있습니다. 그 외의 다양한 평활화방법은 아래와 같습니다. 

 

먼저, 지수 평활법 (Exponential Smoothing)은 이동평균의 약점을 보완해주고, 추세 및 계절 변동에 패턴이 없는 경우 사용하기에 좋습니다.

 

  • 단순 지수 평활법 : 지수함수에 따라 가중치를 부여하여 이동평균내주는 방법 (가중이동평균에서 가중치로 지수함수를 적용해준 것과 같다)
  • 이중 지수 평활법 : 단순 지수 평활법을 두번 적용해준 것
  • Holt-Winters Smoothing : 계절성 기법

 

그 외에는 아래와 같은 방법들이 있습니다.

 

  • 회귀모형 평활법(OLS Smoothing) : 결측치의 선형보간법과 원리가 비슷합니다.
  • 커널 평활기 (Kernel Smoothing) : wiki 설명 참고

 

타임 스탬프 빈도 조절하기

 

시계열 데이터의 타임 스탬프 단위가 초, 분, 시간, 일, 월, 년으로 다양할 수 있습니다. 이러한 타임 스탬프 단위를 조절하는 방법에 대해 설명하겠습니다.

 

  • 다운샘플링(downsampling) : 더 넓은 시간범위로 데이터 축소 (ex. 초단위의 데이터 → 시간 단위의 데이터) 또는 필요한 시간대만 데이터 추출 (ex. 매년 1월 데이터만 남기고 다른 시간대는 삭제)
  • 업샘플링(upsampling) : 다운샘플링의 반대. 보통 업샘플링을 통해 생성된 결측치 처리의 대치법을 통해 채워진다.

 

데이터 전처리

 

범주데이터 처리

 

  • one-hot encoding : 범주형 데이터를 범주마다 컬럼으로 만들어, True(1) / False(0) 값을 부여해주는 방식
  • label 수치화 : 범주형 데이터의 범주에 숫자를 부여하는 방식.

 

Scaler Method

 

  • Standardscaler : 정규분포(평균 0, 표준편차1)를 따르도록 하나의 column 내의 값들을 변환한다.
  • Robustscaler : 평균대신 중간값(meadian)과 일분위, 삼분위값(quartile)을 활용한 변환기법으로 이상치 영향을 최소화하는 방법.
  • MinMaxScaler : column 내의 최소값, 최대값이 각각 0과 1이 되도록 변환하는 방법
  • Normalizer : column이 아니라 row마다 유클리드거리(norm-2)가 1이 되도록 변환하는 방법

 

  • 주의할 사항

     - 데이터 정보 손실
     - 오버피팅
     - 스케일 변환에 따라 모델의 정확도에 영향을 받을 수 있다.

다음 시간에는 데이터에 대한 EDA가 아닌 실질적인 시계열 분석 방법에 대해 알아보겠습니다.

(정상성 검정, 차분, 요소분해 등의 내용을 다룰 예정입니다.)