Facebook에서 만든 시계열 예측 오픈소스
https://github.com/facebook/prophet
시계열 예측 문제에서는 보통 t시간동안의 데이터를 이용하여, t+h시간의 데이터를 예측한다.
Time series 데이터를 통해 예측할때는, 일시적인 부분의 데이터가 중요하게 작용 될 때가 많다. 따라서 일반적인 validation 방식과 다르게 평가한다.
n개의 forecasts를 시간순으로 진행하고, metric 값을 평균낸다.
1-step forecasts

n-step forecasts

Naive 모델
$$ \hat{Y}( t+h|t ) = Y(t) $$
Seasonal decomposition (+ any model)
S → seasonal (주기성을 가지는 것)
T → trend cycle (경향, 추세)
R → Remainder component (지역적 변화)
$$ Y(t) = S(t) + T(t) + R(t) $$
a → smoothing factor
s → previous smoothed value
x → observation
$$ S_t = \alpha x_t + (1 - \alpha) s_{t-1} $$
Autoregressive → 이전 데이터와, 그 이전 데이터보다 이전에 있는 데이터간의 관계를 사용. (예전 데이터를 이용한 regression)
Moving average → observation 값과, 이전 observation 값에서 구한 average값을 비교. (모멘텀을 보는 지표)
이 둘을 동시에 고려하도록 고안한 모델.

여러가지 seasonalities를 고려한 모델
$$ y(t) = g(t) + s(t) + h(t) + \varepsilon (t) $$
g(t) → Growth (trend)
Linear [상한선, 하한선이 없을 때]
logistic [상한선, 하한선이 있을 때]
df['cap'] = 6
df['floor'] = 1.5
s(t) → seasonality
h(t) → holiday