Time Series Forecasting

Fadhlan Hazmi
PPL D7 — Fasilkom UI
3 min readMay 1, 2019
No, we’re not travelling to the future

Forecasting? Meramal? Kita harus ke masa depan? Eits tunggu dulu ada teori yang mendasari “ramalan” ini. Mari kita lihat apa itu.

What is time series forecasting?

Sebelum itu, mari kita ketahui dulu apa itu time series data. Time series data adalah data dengan pola “trend” seiring berjalannya waktu yang ada pada data. Kira-kira grafiknya seperti dibawah ini.

kinda like this

Nah, secara sederhananya, dari time series data tersebut, akan di “ramal” data di masa depan berdasarkan time series data yang dimiliki. Jadi dapat disimpulkan bahwa time series forecasting adalah prediksi time series data di masa depan berdasarkan time series data yang ada. Pada dasarnya time series data sama seperti data lainnya, hanya terdapat waktu pada tiap datanya.

Time series forecasting pada dasarnya adalah metode machine learning yang melakukan fit pada model dan menggunakan model tersebut untuk memprediksi time series data pada waktu yang akan datang. Namun, untuk data yang sangat besar tentu membutuhkan computational cost yang sangat besar. Tenang, ada banyak metode yang dapat digunakan dalam time series forecasting. Salah satunya adalah yang kami implementasikan, yaitu

Seasonal Moving Average with Exponential Smoothing

Sebenarnya metode ini relatif lebih sederhana dibandingkan dengan metode time series lainnya, tapi namanya keren kan hehe. Oke pertama kita bahas terlebih dahulu mengenai moving average. Sesuai namanya moving average merupakan rata-rata. Contohnya adalah rata-rata interval pada n bulan terakhir. Sedangkan untuk seasonal moving average adalah rata-rata interval pada n waktu tertentu, contohnya adalah rata-rata interval pada n november. Sedangkan exponential smoothing adalah metode untuk membuat time series data yang akan di prediksi menjadi lebih “smooth”.

Oke cukup dengan teorinya, mari kita lihat implementasi dari time series forecasting pada proyek PPL kami agar teori yang dijelaskan dapat terlihat bagaimana implementasi pada kasus nyata.

Our Forecasting

Sebelum menjelaskan lebih jauh mengenai implementasi time series forecasting, akan dijelaskan terlebih dahulu, seperti apa kasus kami.

Time series data yang kami miliki adalah order history pembelian item dari tiap user. Data tersebut berbentuk tabel dengan kolom-kolomnya adalah waktu pembelian, id dari user, dan id dari produk yang dibeli. Kami membuat satu tabel untuk order history serta menyediakan satu tabel lagi untuk hasil time series forecasting, yaitu prediction date. Kolom-kolom pada tabel prediction date sama dengan order history dengan perbedaannya terletak pada waktunya.

How we do it?

Kami melakukan time series forecasting untuk setiap produk yang dibeli pada tiap user. Untuk setiap produk yang pernah dibeli oleh user dilakukan penghitungan interval tiap pembelian, lalu dihitung rata-ratanya. Tahap ini menggunakan metode seasonal moving average.

Saat melakukan prediksi, kami menggunakan exponential smoothing dengan alpha yang digunakan sebesar 0.95. Alpha disini sebagai penanda seberapa penting time series data yang digunakan dalam prediksi. Semakin baru data yang digunakan semakin penting data tersebut sehingga alpha tersebut besar. Semakin lama data yang digunakan alpha yang digunakan semakin kecil, dengan cara memangkatkan alpha.

Setelah diprediksi, akan didapatkan prediksi interval tanggal pembelian dan interval tersebut akan digunakan untuk melakukan plotting tanggal untuk suatu produk dari suatu user. Kira-kira plotting data yang dihasilkan seperti ini.

Plotted date for Product ID A of User X

Demikian tulisan saya mengenai time series forecasting. Semoga tulisan saya dapat bermanfaat bagi anda yang ingin “meramal” masa depan hehe. Sampai bertemu kembali!

--

--