Ide dibalik fbprophet

A.Rofiqi Maulana
3 min readMar 20, 2021

Saat ini, forecasting sudah bisa dibilang menjadi kebutuhan yang penting terutama untuk perusahaan yang berbasis data-driven. Forecasting membantu suatu organisasi atau perusahaan di dalam set up planning dan goal maupun anomaly detection.

Istilah forecasting ini cukup berbeda dengan prediction. Istilah forecasting merujuk kepada analisis data deret waktu, sedangkan prediction terhadap selain analisis data deret waktu. Hal ini karena pada data deret waktu, nilai yang akan di prediksi berada di luar rentang nilai-nilai observasi (unseen data), sedangkan pada data cross section misalnya, nilai yang akan di prediksi berada di dalam rentang nilai-nilai observasi.

Meskipun keberadaan forecasting mulai makin dibutuhkan di dunia industri, terdapat tantangan yang serius seperti [1]

  1. Menghasilkan ramalan yang reliabel dan berkualitas tinggi.
  2. Memilih metode mana yang akan dipakai (karena banyaknya metode forecasting yang ada).
  3. Analyst yang ahli dalam analisis data deret waktu terbilang masih jarang.
  4. Permintaan hasil ramalan yang berkualitas tinggi banyak namun proses (pace) nya lama.

Oleh karena itu diciptakanlah fbprophet agar analyst yang tidak ahli time series bisa menggunakannya dan bisa di-tuning parameternya berdasarkan pengetahuan domain expertisenya.

Konsep Dasar

Terdapat beberapa macam jenis analisis time series diantaranya adalah ARIMA, Exponential Smoothing, Dekomposisi, GAM, ARCH, TAR, VAR, dan lainnya, seperti yang ditunjukkan pada gambar di bawah ini

taxonomy time series method

Jika kita lihat di dokumentasi fbprophet, package ini berlandaskan konsep dekomposisi. Metode dekomposisi ini memecah data deret waktu menjadi beberapa pola. Jika kita bandingkan, metode exponential smoothing juga menggunakan konsep yang sama yaitu dekomposisi. Model dasar dekomposisi adalah

# basic decomposition models
Additive: data = trend + seasonality + error
Multiplicative: data = trend * seasonality* error

Sementara itu, model dari fbprophet adalah

# fbprophet models
data = pattern + error
data = trend + seasonality + holiday + error
data = g(t) + s(t) + h(t) + e(t)
dekomposisi data deret waktu

Formula estimasi parameter setiap komponen dapat dilihat dari bagan berikut.

source : formula setiap komponen

Tuning parameter by Analyst

Salah satu hal yang menarik dari package fbprophet ini adalah kita bisa melakukan tuning/adjustment parameter berdasarkan domain expertise yang dimiliki seperti [1]

  1. Capatities (parameter C) : pengetahuan eksternal mengenai total ukuran pasar dapat diterapkan untuk menetapkan parameter ini.
  2. Changepoints (parameter S) : pengetahuan mengenai perubahan produk bisa digunakan untuk menetapkan parameter ini.
  3. Holidays dan seasonality : pengetahuan mengenai impact yang mungkin berbeda-beda tiap bulan dapat diterapkan untuk menyesuaikan parameter ini.

Refference

[1] https://peerj.com/preprints/3190v2/
[2] https://online.stat.psu.edu/stat510/book/export/html/667
[3] https://facebook.github.io/prophet/
[4] https://github.com/arofiqimaulana/Statistics/tree/master/Time%20Series%20Analysis

--

--