상세 컨텐츠

본문 제목

시계열 분석 스터디 5주차(김연규): Prophet 논문 리뷰

본문

 

작성자: 17기 김연규
해당 포스팅은 Sean J Tay, Benjamin Letham의 'Forecasting at Scale' 논문 기반으로 작성되었습니다.

 

https://peerj.com/preprints/3190.pdf

 

 

 


 

1.  Introduction

시계열 분석은 생산관리나 수요 예측 등 산업 현장에서 자주 쓰인다.

그러나 다른 분석 및 예측과 달리 공통적인 한계를 보인다.

  1. 기존 프로그래밍 패키지에서 제공하는 완전자동화 예측 시스템은 튜닝하기가 어렵다.
  2. 비즈니스 관련 전문지식을 가진 전문가는 많은 반면에, 시계열 분석 전문가는 적다.

따라서 Facebook(현 Meta)은 scale이 가능한 시계열 분석 모델을 만들고자 했다.

여기서 scale은 하드웨어 관점의 컴퓨팅 파워가 아닌, 모델의 확장성을 의미하는 개념이다.

시계열 분석에 대한 지식 없이도 도메인 관련 지식을 유연하게 적용할 수 있는 도구를 만드는데

목적이 있음을 알 수 있다.

 

2.  Features of Business Time Series

  • 비즈니스 예측 문제는 분야별로 아주 다양하지만, 공통적으로 존재하는 특성이 있다.
  • 이를 Facebook의 연도별 이용자 수 데이터를 통해 설명했다.

  • 일반적인 시계열에서 볼 수 있는 추세, 계절성, 주기(연간/주간)를 볼 수 있다.
  • 더불어 평일/공휴일의 차이가 명확하며, 신제품 출시 전후의 차이, 이상치가 존재한다.
  • 이러한 데이터를 기존의 자동화 패키지를 활용하여 분석한 결과는 아래와 같다.

  • auto.arima의 경우 계절성을 잘 포착하지 못하며,
  • ets(지수평활법)와 snaive(seasonal)는 미래 예측 결과가 동일하다는 한계가 있다.
  • 물론 위의 사례는 시계열 분석(전처리, 파라미터 조정 등)에 능숙하지 않다는 가정 하에
  • 도출되었기 때문에 더 부정확한 결과가 도출되었다.

 

3. The Prophet Forecasting Model

모델의 요소

  • Prophet은 아래의 직관적인 파라미터들로 구성된다.

  • 분해시계열 모델의 형식을 따르며, 순서대로 추세 / 계절성 / 공휴일 여부이다.
  • 구체적으로 추세는 반복적이지 않은 변화, 계절성은 반복적인 변화를 의미하며
  • 공휴일은 때때로의 불규칙적 영향을 나타낸다.
  • 이는 GAM(Generalized Additive Model)과 비슷한데,
  • 분해시계열의 특징과 마찬가지로 새로운 사실을 추가하기 용이하다.

 

장점

  • 통계적으로 추론할 수 있다는 이점은 일부 사라졌지만, 실용적인 이점을 챙겼다.
  1. 계절성과 추세에 대해 다양한 시도를 쉽게 할 수 있다.
  2. 차분이 필요하지 않고, 결측치에 대한 처리도 중요하지 않다.
  3. 적합 속도가 매우 빠르며, 선형 회귀분석과 비슷한 형태로 쉽게 이해할 수 있다.

 

3.1  The Trend Model

3.1.1  Nonlinear, Saturating Growth

  • Facebook 이용자의 성장 추세는 자연 속 인구 성장과 매우 유사하다.
  • 따라서 인구 성장 예측에 자주 쓰이는 로지스틱 함수로 표현할 수 있다.

  • C: 수용 능력, k: 성장률
  • 단, Facebook 사용자의 수용 능력(한계치)은 인터넷 사용자 수로 상수가 아니며,
  • 성장률 역시 이벤트를 반영한 함수여야 한다.
  • 이를 반영한 piecewise logistic growth model은 아래와 같다.

  • 모델 개발의 목적에서도 말했듯이 추세항에서도 중요한 것은
  • 두 함수를 어떻게 설정해야 하는지 즉, 도메인 지식이 중요하다고 말하고 있다.

 

3.1.2  Linear Trend with Changepoints

  • 위와 달리 상한이 없는 경우, 로지스틱 함수의 지수 부분을 선형함수로 사용한다.

 

3.1.3  Automatic Changepoint Selection  /  3.1.4  Trend Forecast Uncertainty

  • 미래를 예측하는 경우, 추세가 변하는 changepoint가 어디 있는지 알 수 없다.
  • 따라서 그 주기가 Laplace 분포를 따른다고 가정하여 결정한다.

 

3.2  Seasonality

  • 계절성은 대표적인 주기 함수인 푸리에 급수 기반으로 모델링한다.

  • 이때 P는 표현하고자 하는 주기로, 주간이면 P=7, 연간이면 P=365.25이다.
  • 계절성에서 가장 중요한 것은 급수의 항의 개수 N을 설정하는 것이다.
  • N이 클수록 더 빠르게 변화를 포착해 오버피팅의 위험이 크다.
  • 논문에서는 주간일 경우 N=3, 연간일 경우 N=10으로 설정하는 것이
  • 가장 좋은 성능을 보였다고 했는데, 그 원리가 설명되어 있지 않아 아쉬웠다.
  • 스터디를 통해 더 긴 주기일수록 포착해야 하는 변화가 많아,
  • N이 큰 값을 가져야 충분히 변화를 탐지할 수 있다고 결론을 내렸다.

 

3.3  Holidays and Events

  • 휴일의 경우 국가별로, 기업별로, 이벤트별로 모두 제각각이므로
  • 하나의 모델을 만드는 것은 불가능하다.
  • 따라서 분석하고자 하는 데이터에 해당하는 휴일이 저장되어 있는지 확인하고,
  • prophet에 관련 사항을 적용한다.

 

3.4  Model Fitting

  • Prophet의 최대 장점은 간편하지만 우수한 성능을 보인다는 것으로,
  • 분석 과정이 짧고 코드도 상대적으로 간결하다.
  • 주기성과 휴일에 관한 정보, changepoint에 대한 정보가 행렬에 저장되어 있다면
  • 아래의 간단한 코드를 통해 적합 결과를 불러올 수 있다.

  • 위의 간단한 코드를 통해 구현한 결과는 아래와 같다.

  • 이는 앞에서 ARIMA, 지수평활법 등을 적용한 것과 동일한 데이터에 대한 분석 결과이다.
  • 2014년 분석 결과가 조금 높게 측정된 것을 제외하면 꽤 훌륭한 결과임을 알 수 있다.
  • 활용할 수 있는 모든 데이터를 사용하여 예측하면 아래와 같다.

  • Prophet은 다양한 그래프 도구도 제공하는데, 요소별로 분리하여 확인할 수도 있다.

 

3.5  Analyst-in-the-Loop Modeling

  • 결론적으로 분석가는 비즈니스 관련 지식이 풍부하기만 하면 시계열 분석을 쉽게 할 수 있다.
  • 앞에서 살펴본 모든 요소들(수요, changepoint, 휴일, 주기 설정 등)을
  • 정확히 파악하고 지속적으로 조건을 조정한다면 좋은 예측 결과를 얻을 수 있다.
  • 따라서 prophet은 인간의 직관을 극대화하여 파라미터를 조정할 수 있는 자동화 도구이다.

 

4.  Automating Evaluation of Forecasts

  • 평가 방법은 매우 다양하며 여러 수식을 통해 설명하고 있지만,
  • 공통적으로 오차항에 대한 가정을 만족해야 한다.
  • 오차는 예측 전구간에서 일정하게 발생해야 하며,
  • 더 먼 미래를 예측할수록 예측력이 떨어진다(불확실성 증가)는 것이다.
  • 평가 결과가 만족스럽지 않다면, 아래 조언을 따르면 된다.
  1. 베이스라인 모델 대비 성능이 나쁘다면 추세, 계절성 부분을 수정한다.
  2. 특정 일자에 예측 성능이 나쁘다면 이상치를 제거한다.
  3. 특정 절단점(ex. 연말)에 예측 성능이 나쁘다면 changepoint를 추가한다.

 

논문 리뷰 결론

  • 이 논문을 읽고 난 후, 논문의 목적과는 다르게 더 열심히 공부해야함을 느꼈다.
  • 더 많은 자동화된 우수한 알고리즘이 개발될수록,
  • 모델을 잘 튜닝하고, 알고리즘을 개선하고, 새로운 모델을 만들기 위해서는
  • 지금까지의 모델은 물론, 새로운 모델에 대해 정확히 이해해야 함을 깨달은 것 같다.
  • 시계열 모델 + 분야별 알고리즘들에 대한 논문을 빠르고 정확하게 읽기 위해,
  • 앞으로 수학, 통계, 컴퓨터(자료구조/알고리즘), 영어 공부를
  • 더 열심히 해야 할 것 같다. (+ 프로그래밍, 다양한 분야에 대한 분석 경험)

관련글 더보기

댓글 영역