brunch

You can make anything
by writing

C.S.Lewis

by JoonieJay Nov 22. 2022

Time Series Vol. I - 선형 회귀

날씨, 매출, 주식 등 다양한 분야에서의 데이터 사이언스 활용법

Backstory

파란만장한 유학생활 끝에 드디어 미국에서 취업을 하게 되었다.

어느 한 미국 통신사의 Data Analyst로 근무하며 나는 하루에 수천, 수만 개의 데이터를 해독하고 분석한다.

나의 주 업무는 우리 부서의 AARRR (Acquisition, Activation, Retention, Referral, Revenue) 프레임워크를 관찰하며 최적화시키는 것이다.

AARRR Pirate Metrics

Acquisition이란 고객 확보를 뜻하며 우리가 판매하고자 하는 제품을 TAM-SOM-SAM 원칙에 따라 적절한 고객층에 타겟팅하는 것이다.


올해 우리 부서는 과감한 마케팅 투자로 인해 세일즈 증가를 확인할 수 있었지만, 갑작스러운 스케일링으로 인해 착오가 발생했다.


물론 어느 정도 예상된 일이었지만, Acquisition에서 Activation으로 넘어가는 과정에서 Sales Leakage가 발생했다. 직역하자면 판매 누출, 즉 판매는 성사되었지만 제품이 고객에게 전달하는 과정에서 Activation 문제가 발생하여 결국 고객을 확보하지 못하는 상황이 발생했다.



여기서 나의 임무는 크게 두 가지로 나누어진다:

1. 현재 추세 (Trend)에 따른 매출 예측

2. Sales Leakage 원인 분석


이번 글에서는 첫 번째 임무를 수행할 때 사용한 데이터 사이언스 기법을 소개한다. 과거 데이터를 기반으로 구축된 Time Series 그리고 머신 러닝에서 자주 응용되는 Forecasting (미래 예측)에 대해 한 번 알아보자.


Time Series Forecasting

Time Series (시계열)이란, 시간의 흐름에 따라 기록된 데이터를 의미한다. 매일 일기예보에서 알려주는 날씨, 폭락하고 있는 주식 (ㅠㅠ), 올 전반기 영업 매출 등, 시간 순서대로 나열된 보편적 자료는 Time Series로 간주된다.

구글 주가 (2017년), 북미 도시별 습도 지수 (2012년)


우리는 이러한 자료를 기반으로, 과거를 분석하고 다수의 변수를 고려하여 미래를 예측하는 것을 Time Series Forecasting이라고 부른다.


Linear Regression (선형 회귀)

가장 기초적이면서 우리가 쉽게 예측할 수 있는 방법 중 하나는 Linear Regression (선형 회귀)이다.

선형 회귀를 통해, 우리는 수집된 데이터를 기반으로 변수 (Variable)들의 관계 분석 및 예측 모델을 구축할 수 있으며, 이를 통계학/수학적으로 설명하자면, 회귀 계수/파라미터 (Regression Coefficient/Parameter)와 한 개 이상의 변수의 선형 상관관계를 모델링하는 회귀분석으로 정의할 수 있다.

일반적인 선형 회귀 공식 (Linear Regression Formula)


흔히 선형 (Linear)이라는 단어를 보고 선형 회귀를 일차식과 동일한 선 그래프만으로 착각을 하지만, 이것은 선형 회귀의 잘못된 개념이다. 선형 회귀에서 의미하는 선형 (Linear)이란, 앞서 말한 회귀 계수/파라미터와 변수의 선형 관계 또는 선형 결합 (Linear Combination)을 뜻한다. 만일 독립 변수가 변환되더라도, 계수/파라미터 관점에서는 선형 관계가 그대로 유지된다. 따라서, 다항식의 차수는 선형 회귀에 전혀 개의치 않으며, 계수와의 선형 결합만 존재한다면, 선형 회귀는 충분히 선 그래프 외에 곡선으로도 표현될 수 있다.

회귀 계수와 선형 결합이 유지된다면, 모두 선형 회귀로 간주된다.


Time Dependence vs. Serial Dependence

그렇다면 이러한 선형 회귀를 Time Series Forecasting에 어떻게 적용시킬 수 있을까?

Time Series Forecasting 선형 회귀 모델링에서 대표적으로 2가지의 독립 변수 (Independent Variable)가 존재한다: Time-step Feature & Lag Feature.

Time-step Feature (Time)와 Lag Features (Open_lag, High_lag, Low_lag, Close_lag)


Time-step Feature란, 말 그대로 시간을 순서대로 인덱스 하여 나타내는 변수를 명칭 하며, 우리가 선형 회귀에서 사용할 수 있는 가장 기초적인 독립 변수로 간주된다. 시간의 흐름에 따라 결과 값이 어떻게 변하는지를 한눈에 볼 수 있다. 특히, 데이터 Trend를 관찰할 때 주로 사용된다. 여기서 Trend란, 장기적으로 지속되는 변화 및 방향성을 의미한다.

구글 주가 (2018년 ~ 2022년) Trend


물론 Time-step Feature만의 한계도 존재한다. 단순한 성장 추세가 아닌, 반복되는 현상 또는 사이클 (Cycle) 분석이 필요한 세밀한 작업에서는 시간에 의존 (time dependent)하는 Time-step Feature보다 이전 값에 의존 (serial dependent)하는 Lag Feature가 더욱더 적합하다. 단어에서 의미하다시피 일종에 lag 혹은 delay 값이라고 생각하면 된다. 시간의 흐름을 기반으로 결과 값을 예측하는 것이 아니라, 이전 결과 값을 독립 변수로 간주하여 미래 값을 예측하는 것이 Lag Feature에 핵심이다.

한국 실업률 (1989년 ~ 2022년) Trend
한 달 전 Lag feature로 확인되는 한국 실업률 Serial Dependence


사이클 (Cycle)과 계절적 변동 (Seasonality)의 차이점

위의 예시에 표기된 한국 실업률 데이터 같은 경우, 시간 흐름에 따라 실업률이 오르락내리락 반복되는 현상을 확인할 수 있다. 이렇게 반복되는 현상을 우리는 사이클 (Cycle)이라고 정의할 수 있으며, 예시로 주기적으로 계절에 따라 변동되는 기후 변화 또는 항공표 수요도 하나의 Cycle로 간주된다. 그러나, 엄밀히 말하자면 계절적 변동 (Seasonality)과 Cycle은 동일한 개념이 아니다. Seasonality와 달리, Cycle은 시간의 흐름에 개의치 않으며 포괄적인 개념이다. 고정된 빈도 혹은 정해진 기간 없이, 이전 값에 의존하며 반복되는 모든 현상 (예. 실업률, 주식 시장, 포식과 피식)을 Cycle이라고 부른다.


시간 흐름에 따라 일정한 간격의 변화가 유지된다면 Time-step Feature만으로 충분히 예측이 가능하다; 하지만, 현실은 이렇지 않다. 갑작스러운 변동과 잡음 (Noise/Error)이 가득한 Time Series 데이터를 단순히 시간 기준으로 보았을 때 아무런 관계가 뚜렷하지 않을 수 있겠지만, Lag Feature를 통해 다른 시각으로 접근한다면 Time Series에 숨겨진 본질을 확인할 수 있을 것이다.

마우나 로아 화산의 이산화탄소 배출량 - Trend/Seasonality/Cycle/Error 부분적 모델링 (출처: Kaggle)
마우나 로아 화산의 이산화탄소 배출량 - 혼합 (Hybrid) 모델링 (출처: Kaggle)

절대적으로 유리한 Feature는 존재하지 않는다. 상황과 목적에 따라 Time-step Feature와 Lag Feature의 사용성을 극대화시켜, 두 가지 방법을 혼합시킨 하이브리드 (Hybrid) 모델링 방법이 흔하고 현실적이다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari