본문 바로가기
데이터/데이터

[내 머리로 시계열분석] 시계열데이터의 정상성 획득 그리고 차분

by 단단_SINCE 2023 2025. 1. 5.

 

 

1. 시계열 데이터의 정상성/비정상성 예시 🧭

시계열 데이터를 분석하려면, 데이터가 "정상적"인지 "비정상적"인지 확인하는 것이 중요하다. 여기서 "정상성"은 데이터를 관찰했을 때 시간이 지나도 일정한 패턴을 유지하는지를 말한다.

 

비유를 들자면

  • 정상성 데이터: 매일 정해진 시간에 규칙적으로 밥을 먹는 친구! 🍚
    예: "오늘의 기온 변화가 평균 15°C에서 20°C 사이를 계속 왔다 갔다 한다면?"
  • 비정상성 데이터: 감정 기복이 심한 친구처럼 데이터가 어디로 튈지 모르는 느낌! 😵
    예: "주식 시장의 주가처럼 갑자기 막 뛰거나 떨어지는 경우."

그래프로 본다면?

  • 정상 데이터는 평균과 분산이 일정합니다. 🎯
  • 비정상 데이터는 평균과 분산이 시간에 따라 바뀌죠. 🎢

2. 비정상성 데이터를 정상으로 만드는 방법: 차분 🛠️

"비정상적 데이터"는 분석이 어렵기 때문에(예측이 어려움) 이를 "정상적 데이터"로 바꿔줘야 한다. 그중 가장 대표적인 방법이 바로 **차분(Differencing)**이다.

 

차분이란?

  • 쉽게 말해, 앞의 값과 뒤의 값의 차이를 구하는 것!
  • 비유하자면, 키가 계속 자라는 친구가 있다고 할때. 하루하루 얼마나 자랐는지 보면, 일정한 패턴(성장률)을 발견할 수 있을것이다. 📏

 

(위) 추세를 띄는 시계열데이터 (아래) 차분을 통해 일정하게 만든 데이터

 

 

차분 과정 예시:

  • 원 데이터: [10, 12, 15, 19, 24]
  • 1차 차분: [(12-10), (15-12), (19-15), (24-19)] = [2, 3, 4, 5]

결과?
이 데이터는 평균과 분산이 일정한 "정상성"을 띄게 된다. 


3. 차분한 데이터의 예시 📊

한 번 실전 예시를 보자

비정상 데이터 예시 (원 데이터):

  • 주가: [100, 105, 110, 120, 140]
  • 시간에 따라 값이 계속 커진다

차분한 데이터:

  • [(105-100), (110-105), (120-110), (140-120)] = [5, 5, 10, 20]
  • 이제 평균적으로 상승 폭을 볼 수 있게 되었다

이렇게 변환된 데이터는 시계열 모델(ARIMA 등)을 적용하기 훨씬 쉬워진다! 🎉


마무리하며 💬

현업에서 우리가 맞딱뜨리는 시계열데이터는 대개 비정상데이터다. 비정상이라는건, 이상하다는게 아니고 흐름이 일정하지 않다는 것. 이커머스의 매출데이터의 경우 프로모션에 따라 특정수치가 뛰고, 온라인광고를 집행하면 또 해당일자에 유입수가 눈에 띄게 증가할 수 밖에 없다. 이런 특수성을 배제한 것이 시계열데이터에서 말하는 '정상성' 을 획득한 데이터다. 정상성은 뒤에서 앞을 빼는 단순한 방식의 차분을 통해 획득할 수 있다.