추세 분석은 시계열(time series) 데이터 속에 노이즈로 인해 부분적으로 또는 완전히 가려져 있을 수 있는 행동 패턴 모델을 추출해내는 기법들을 의미합니다.
추세 분석 방법은 실제로 다양한 분야에서 폭넓게 활용되고 있습니다. 대표적으로 전염병 발생(outbreak)의 조기 감지, 질병 발생 건수의 급증·급감 파악, 질병 추세 모니터링, 질병 관리 프로그램과 정책의 효과 평가, 보건의료 사업 및 정책의 성공 여부 측정 등에 사용됩니다.
추세를 탐지하는 다양한 기법
스무딩(Smoothing)
시계열 데이터에서 추세를 찾아내는 데에는 여러 가지 기법이 활용될 수 있습니다. 그중 스무딩(smoothing)은 시계열에 섞여 있는 비체계적인 변동, 즉 불규칙한 요소를 제거하기 위한 접근 방식입니다.
스무딩은 일반적으로 특정 시점을 중심으로 일정한 시간 범위(window)를 설정하고, 해당 구간 내 속성 값들의 이동평균(moving average)을 구하는 형태로 수행됩니다. 이후 그 시점의 실제 값 대신 이 국소 평균값(local average)을 사용하게 됩니다.
이때 산술 평균(mean)보다는 중앙값(median)을 사용하는 것이 일반적입니다. 중앙값은 극단값(outlier)에 덜 민감하기 때문입니다. 이런 방식으로 노이즈와 이상치를 효과적으로 걸러낼 수 있으며, 처리된 데이터는 선형, 로그, 지수 함수 등 알려진 함수에 더 쉽게 피팅(fitting)되므로 미래 값 예측에도 활용할 수 있습니다.
계절성 패턴 탐지
반면 시계열 데이터에서 계절성(seasonal pattern)을 탐지하는 일은 상대적으로 더 어렵습니다. 한 가지 방법은 일정한 간격으로 떨어져 있는 속성 값들 사이의 상관관계를 찾는 것입니다. 예를 들어 월별 매출 데이터라면 12개월 간격으로 떨어진 값들 사이에서 상관관계가 나타날 수 있습니다. 이처럼 서로 연관된 항목들 사이의 시간 차이를 '래그(lag)'라고 부릅니다.
자기상관 함수와 코릴로그램
자기상관함수(autocorrelation function)를 생성하면 서로 다른 래그 구간에서 데이터 값들 간의 상관관계를 체계적으로 파악할 수 있습니다. 또한 여러 래그 값에 대한 자기상관 값을 그래프로 시각화한 것을 코릴로그램(correlogram)이라고 하며, 이를 통해 계절성의 존재 여부를 직관적으로 확인할 수 있습니다.
공분산과 자기상관계수
공분산(covariance)은 두 변수가 함께 어떻게 변화하는지를 측정하는 척도입니다. 이는 두 시계열 간의 관계를 파악하거나, 하나의 시계열 내부에 나타나는 계절적 추세를 분석하는 기초가 됩니다. 자기상관계수(autocorrelation coefficient) rk는 시계열 값들이 일정한 거리, 즉 래그 k만큼 떨어져 있을 때의 상관관계를 측정합니다.
자기상관을 해석하는 원리는 간단합니다. 양수 값은 두 변수가 함께 증가한다는 것을, 음수 값은 한 변수가 증가할 때 다른 변수가 감소한다는 것을 의미합니다. 반면 0에 가까운 값이라면 두 변수 사이에 상관관계가 거의 없다는 뜻입니다.
상관계수 계산 공식
상관관계를 계산하는 대표적인 공식은 상관계수 r, 흔히 피어슨 상관계수(Pearson's r)라고 불리는 값입니다. 평균이 각각 X̄와 Ȳ이고 n개의 원소를 가진 두 시계열 X와 Y가 주어졌을 때, r의 공식은 다음과 같습니다.
$$r=\frac{\sum(x_i-\bar{X})(y_i-\bar{Y})}{\sqrt{\sum(x_i-\bar{X})^2}\sqrt{\sum(y_i-\bar{Y})^2}}$$
이 공식을 단일 시계열 X=(x1, x2, …, xn)에 적용해 래그 k에 대한 자기상관계수 rk를 구하는 것도 어렵지 않습니다. 첫 번째 시계열은 X′=(x1, x2, …, xn−k)로, 두 번째 시계열은 X″=(xk+1, xk+2, …, xn)로 정의한 뒤 위 공식에 대입하면 됩니다.