[Prophet] 논문 리뷰

김죠·2023년 8월 10일
0

논문 리뷰

목록 보기
1/1
post-thumbnail

1. Introduction

본 논문에서 제시한 비즈니스 예측의 실무에서의 두가지 주요 문제

1) 완전 자동화되는 시계열 예측 테크닉은 tuning하기 어려움
2) 기업 도메인 지식이 뛰어난 사람은 시계열에 대한 지식이 부족함

논문에서 제시하는 시계열 모델 목표

1) 시계열 방법에 대한 교육을 받지 않은 사람들도 사용할 수 있어야 함
2) 잠재적 특징들을 시계열 모델에 반영할 수 있어야 함
3) 예측을 평가하고 다양하게 비교되도록 자동화되어야 함

2. Modeling Business Time Series

y(t) = g(t) + s(t) + h(t) + εt

  • g(t) : 시계열 값의 비주기적 변화를 모델링하는 growth function
  • s(t) : 주간/연간 계절성으로 인한 주기적 변화
  • h(t) : 하루 이상의 불규칙한 일정에 발생할 수 있는 휴일의 영향
  • εt(오차항) : 모델에 의해 수용되지 않는 특이한 변화, 정규 분포로 가정

Prophet은 다른 시계열 모형과 달리 시간에 종속적인 구조를 가지지 않고 curve-fitting으로 예측 문제를 해결하므로 아래와 같은 장점이 있다

  1. 유연성 : 여러 기간과 추세에 대한 다른 가정으로 계절성을 쉽게 수용 가능
  2. ARIMA 모델과 달리 측정 간격을 regularly spaced 할 필요가 없으며, 결측치가 존재해도 상관없다
  3. Fitting 속도가 빨라 여러 가지를 시도해 볼 수 있다
  4. 직관적인 파라미터 조정을 통한 모델의 확장이 쉽다

2-1 Growth(g(t))

2-1-1 Nonlinear, Saturating Growth

  • 예측하고자 하는 값의 한계가 존재하는 경우를 반영한 모델
  • 상한/하한이 있는 growth는 로지스틱 함수 형태로 나타내어진다

(C : carrying capacity, k : growth rate, b : offset parameter)

  • 하지만, 위 식으로 반영할 수 없는 부분이 존재한다
    1) C(carrying capacity)가 상수가 아닌 경우
    -> 페이스북 가입자 수 예측 시 상한인 인터넷 연결 가능한 인구수는 시간이 지남에 따라 증가
    2) k(growth rate)가 상수가 아닌 경우
    -> 신제품 출시로 기존의 성장률과 다른 양상을 보일 수 있음

  • 위 두가지 문제를 다음과 같이 해결하였다
    1) C를 시간에 따라 변하는 C(t) 함수로 변환
    2) change point 전후로 달라지는 growth rate 대변하기 위해 k + a(t)tδ로 대체한
    piecewise logistic growth model 사용

2-1-2 Linear Trend with Changepoints

  • 어떠한 한계가 존재하지 않는 예측 문제에 있어 piecewise linear 모델은 간결하고 유용

2-2 Periodic Seasonality(s(t))

  • 시계열 데이터는 인간의 행동에 의해서도 어떠한 주기성을 가질 수 있다
    Ex) 요일, 1년 중 다른 시기(학교, 방학, 날씨 및 기온 변화, 휴가철…)
  • 푸리에 급수(Fourier Series)를 이용해 seasonality의 근사치 정의
  • P : 시계열이 가질 것으로 예상하는 정규 기간(P=365.25 : 연간, P=7 : 주간)
  • 2N : 우리가 사용하고자 하는 근사 항의 개수(연간/주간 계절성의 경우 N=10 or N=3 주로 사용), 클수록 패턴 빠르게 바뀜

2-3 Holiday and Events(h(t))

  • 휴일과 이벤트는 시계열 예측에 큰 영향을 미치지만 주기적 패턴을 따르지 않아 모델링 어려움
  • 특정 휴일이 시계열에 미치는 영향은 매년 유사한 경우가 많아 예측에 포함시키는 것이 중요
  • 휴일의 영향이 독립적이라는 가정하에 아래와 같이 정의 가능

(i : 각 휴일, Di : 해당 휴일의 과거 및 미래 날짜 조합, κi : 각 휴일에 예측의 해당 변화)

  • 위 식을 일반화하여 특정 이벤트 주변 요일에 대한 효과 포함 가능
    (사람은 휴일 전후에 따라 다르게 행동)
  • 이벤트 앞뒤로 window 범위를 지정해 해당 이벤트의 영향력 범위 설정할 수 있음

Analyst-in-the-loop modeling

  • 분석가는 그래서 무엇을 할수 있나?
  • paper에서 Prophet이 자주 쓰이기를 바라는 분석가 ->시계열과 통계를 잘 모르지만 업무경험이 풍부한 사람
  • 아래의 조건들을 바꿔서 계속 Prophet을 실행 가능
    1) Capacities (시장 총 수요)
    2) ChangePoints (상품이 바뀌거나 신제품이 출시될 때)
    3) Holiday and Seasonality (판매량에 영향을 많이 미치는 휴일 등)
    4) Smoothing Parameter(주기마다 변동을 얼마나 나타내야 하는지)

3. Modeling Forecast Errors

y_hat(T+h|T) : T시간까지의 과거 정보로 만들어진 시간 (T+h)에 대한 예측값
d(y,y0) : |y-y0|와 같은 거리 계산

  • 오차항에 대한 가정
    1) 지역적 평활화되어 있어 에러 있으면 예측 전구간에서 일정하게 발생해야 함
    2) 시간이 지날수록(h) 예측력은 조금씩 떨어져야 함

Simulated Historical Forecasts(SHF)


  • 논문에서 제시한 에러를 체크하기 위한 방법
  • 시계열 데이터의 경우 랜덤으로 섞을 수 없기 때문에 데이터 절단점에서 생성되는 forecast데이터를 이용해 측정
  • 데이터 전역에서 윈도우 사이즈가 작은 여러 데이터셋을 모아 여러 번 예측을 통해 어느 지점으로 수렴
  • window가 작으면 에러가 자주 바뀌고 너무 크면 비슷하기 때문에 경험적으로 전체기간의 반절정도를 대상으로 사이즈를 잡고 나올 수 있는 예측치 측정

Surfacing large forecast errors

  • 논문에서 제시하는 문제 식별할 수 있는 방법
    1) baseline에 비해 오차가 큰 경우 trend, seasonality 수정
    2) 특정 날짜에서 예측률이 떨어지면 이상치이므로 식별 후 제거한다
    3) 특정 cutoff에서 예측률 떨어지면 changepoint 추가

4. Conclusions

  • 대규모 예측의 주요 주제 : 다양한 배경을 가진 분석가들이 수동으로 할 수 있는 것보다 더 많은 예측을 하는 것
    1) 단순하고 조정 가능한 모델 -> 분석가가 예측 문제와 관련된 구성 요소를 선택하고 필요에 따라 조정 가능
    2) 예측 정확도 측정 및 추적하고 분석가가 점진적으로 개선할 수 있도록 수동으로 확인해야 하는 예측 플래그 지정 시스템
    -> 분석가가 모형을 조정해야 하는 시기 또는 완전히 다른 모형이 적합한 시기 식별
profile
1=850

1개의 댓글

comment-user-thumbnail
2023년 8월 10일

정보 감사합니다.

답글 달기