7 minute read

Tahun 2023 yang lalu, saya pernah menuliskan bagaimana model deep learning yang dibangun menggunakan TensorFlow bisa digunakan untuk melakukan forecast dari data time series. Kali ini saya akan melakukan hal yang sama dengan metode yang berbeda.

Sebagaimana yang pernah saya tulis di sini, Meta memiliki beberapa libraries yang bisa digunakan oleh semua data scientist. Salah satunya adalah prophet yang biasa digunakan untuk melakukan analisa time series seperti dekomposisi dan forecast.


Data yang saya gunakan masih sama dengan tulisan saya yang lama.

bulan tahun omset timeline
1 2019 12.109286 1-2019
2 2019 11.134998 2-2019
3 2019 11.306951 3-2019
4 2019 10.627735 4-2019
5 2019 12.706164 5-2019
6 2019 8.461056 6-2019
7 2019 10.418129 7-2019
8 2019 10.693386 8-2019
9 2019 9.931742 9-2019
10 2019 10.134906 10-2019
11 2019 9.759191 11-2019
12 2019 9.220283 12-2019
1 2020 9.424254 1-2020
2 2020 9.652470 2-2020
3 2020 10.929961 3-2020
4 2020 10.522224 4-2020
5 2020 8.690728 5-2020
6 2020 11.384340 6-2020
7 2020 10.592765 7-2020
8 2020 9.446511 8-2020
9 2020 10.421095 9-2020
10 2020 9.964756 10-2020
11 2020 10.848913 11-2020
12 2020 11.337345 12-2020
1 2021 9.085644 1-2021
2 2021 9.203892 2-2021
3 2021 12.028427 3-2021
4 2021 12.540642 4-2021
5 2021 10.803806 5-2021
6 2021 11.576041 6-2021
7 2021 10.630560 7-2021
8 2021 12.123444 8-2021
9 2021 11.597485 9-2021
10 2021 11.467759 10-2021
11 2021 11.424983 11-2021
12 2021 10.390359 12-2021
1 2022 10.100890 1-2022
2 2022 10.063320 2-2022
3 2022 12.171718 3-2022
4 2022 12.967401 4-2022
5 2022 10.504940 5-2022
6 2022 11.451804 6-2022
7 2022 11.966286 7-2022
8 2022 12.137978 8-2022
9 2022 11.036515 9-2022
10 2022 11.668166 10-2022
11 2022 10.969599 11-2022
12 2022 10.536972 12-2022
1 2023 10.662826 1-2023
2 2023 9.870124 2-2023
3 2023 12.258235 3-2023
4 2023 9.736901 4-2023
5 2023 11.665639 5-2023

Saya memiliki 53 baris data omset bulanan mulai dari Januari 2019 hingga Mei 2023.

Saya akan lakukan hal yang serupa, yakni melakukan forecast untuk omset Januari - Mei 2023 dan kita bandingkan seberapa baik hasilnya.

Pertama-tama dari data di atas, saya akan ubah dulu menjadi bentuk seperti ini:

ds y
2019-01-01 12.109286
2019-02-01 11.134998
2019-03-01 11.306951
2019-04-01 10.627735
2019-05-01 12.706164
2019-06-01 8.461056
2019-07-01 10.418129
2019-08-01 10.693386
2019-09-01 9.931742
2019-10-01 10.134906
2019-11-01 9.759191
2019-12-01 9.220283
2020-01-01 9.424254
2020-02-01 9.652470
2020-03-01 10.929961
2020-04-01 10.522224
2020-05-01 8.690728
2020-06-01 11.384340
2020-07-01 10.592765
2020-08-01 9.446511
2020-09-01 10.421095
2020-10-01 9.964756
2020-11-01 10.848913
2020-12-01 11.337345
2021-01-01 9.085644
2021-02-01 9.203892
2021-03-01 12.028427
2021-04-01 12.540642
2021-05-01 10.803806
2021-06-01 11.576041
2021-07-01 10.630560
2021-08-01 12.123444
2021-09-01 11.597485
2021-10-01 11.467759
2021-11-01 11.424983
2021-12-01 10.390359
2022-01-01 10.100890
2022-02-01 10.063320
2022-03-01 12.171718
2022-04-01 12.967401
2022-05-01 10.504940
2022-06-01 11.451804
2022-07-01 11.966286
2022-08-01 12.137978
2022-09-01 11.036515
2022-10-01 11.668166
2022-11-01 10.969599
2022-12-01 10.536972

Berikutnya saya akan buat model dan prediksinya dengan skrip yang sederhana:

model        = prophet(df_)
df_2023      = make_future_dataframe(model, periods = 5, freq='month')
predict_2023 = predict(model, df_2023)

Ini adalah plot hasilnya:

Mean absolute error yang dihasilkan adalah:

Metrics::mae(df$omset,
             predict_2023$yhat)
[1] 0.5513065

Ternyata hasil MAE-nya relatif lebih rendah dari model LSTM yang saya buat di tulisan yang lalu.

Berikut adalah hasil perbandingan antara hasil prediksi dan real omset pada Januari - Mei 2023:

Namun secara visual, kita bisa dapatkan nilai prediksinya relatif lebih besar dibandingkan nilai real-nya dan pola yang dihasilkan tidak cukup merepresentasikan pola real-nya.

Rekan-rekan bisa membandingkannya dengan grafik pada tulisan yang lama, bahwa LSTM lebih baik mengenal pola time series pada kasus ini.

Kesimpulan

Pada kasus ini, model yang dibangun menggunakan LSTM deep learning di TensorFlow lebih baik dalam mengenali pola namun prophet menawarkan proses skrip yang lebih mudah dan sederhana.


if you find this article helpful, support this blog by clicking the ads.