Facebook에서 만든 시계열 예측 오픈소스

https://github.com/facebook/prophet

1. 시계열 예측

Time series 예측 문제란?

시계열 예측 문제에서는 보통 t시간동안의 데이터를 이용하여, t+h시간의 데이터를 예측한다.

평가 방식

Time series 데이터를 통해 예측할때는, 일시적인 부분의 데이터가 중요하게 작용 될 때가 많다. 따라서 일반적인 validation 방식과 다르게 평가한다.

n개의 forecasts를 시간순으로 진행하고, metric 값을 평균낸다.

  1. 1-step forecasts

  2. n-step forecasts

여러가지 time series 예측 모델

  1. Naive 모델

    $$ \hat{Y}( t+h|t ) = Y(t) $$

  2. Seasonal decomposition (+ any model)

S → seasonal (주기성을 가지는 것)

T → trend cycle (경향, 추세)

R → Remainder component (지역적 변화)

$$ Y(t) = S(t) + T(t) + R(t) $$

  1. Exponential smoothing

a → smoothing factor

s → previous smoothed value

x → observation

$$ S_t = \alpha x_t + (1 - \alpha) s_{t-1} $$

  1. ARIMA (Autoregressive intergrated moving average)

Autoregressive → 이전 데이터와, 그 이전 데이터보다 이전에 있는 데이터간의 관계를 사용. (예전 데이터를 이용한 regression)

Moving average → observation 값과, 이전 observation 값에서 구한 average값을 비교. (모멘텀을 보는 지표)

이 둘을 동시에 고려하도록 고안한 모델.

2. Prophet

구성 요소

여러가지 seasonalities를 고려한 모델

$$ y(t) = g(t) + s(t) + h(t) + \varepsilon (t) $$

g(t) → Growth (trend)

s(t) → seasonality

h(t) → holiday