Perusahaan bergantung pada prediksi tren masa depan untuk mengambil keputusan strategis, seperti meramalkan penjualan produk atau menilai variabilitas permintaan. Salah satu cara membuat prediksi yang efektif adalah peramalan deret waktu. Prinsip utama peramalan deret waktu adalah ketergantungannya pada nilai data historis untuk memprediksi hasil di masa depan. Ini menuntut perhatian terhadap data karena data praktis sering kali bising atau hilang, sehingga sulit diprediksi.
Meskipun ada banyak alat untuk peramalan deret waktu, Facebook Prophet dirancang khusus untuk menangani kompleksitas dunia nyata, mulai dari tren nonlinier dan musiman hingga dampak peristiwa khusus seperti hari libur dan kampanye pemasaran atau lonjakan trafik. Jika Anda benar-benar belum familiar dengan peramalan deret waktu, saya merekomendasikan mengikuti kursus Time Series Analysis in Python dan/atau kursus Forecasting in R kami.
Apa Itu Facebook Prophet?
Prophet adalah pustaka peramalan open-source yang dikembangkan oleh tim Core Data Science Facebook. Tersedia dalam Python dan R. Salah satu alasan analis data dan data scientist senang menggunakannya adalah karena ia mengotomatisasi banyak langkah rutin dalam metode peramalan tradisional. Dengan fleksibilitas tersebut, Prophet membantu pengguna menghasilkan ramalan yang dapat ditafsirkan dan baik dengan cepat.
Kerangka Pemodelan Inti Facebook Prophet
Pendekatan pemodelan Facebook Prophet terstruktur namun fleksibel. Ini mendekomposisi deret waktu menjadi empat komponen utama, yaitu tren, musiman, hari libur, dan galat. Komponen ketiga, yang saya sebut hari libur, tidak terlalu standar. Dekomposisi klasik dan STL menentukan tiga bagian: tren, musiman, dan galat.
Dengan memperjelas bagaimana tren, musiman, dan hari libur semuanya berkontribusi pada ramalan akhir, dekomposisi membantu memvalidasi penalaran model saat kita mencoba membuat keputusan yang tepat.
Dekomposisi deret waktu
Prophet menggunakan model aditif di mana deret waktu y(t) dinyatakan sebagai:
Di mana,
Tren (g(t)) untuk pertumbuhan atau penurunan jangka panjang.
Musiman (s(t)) mencakup pola berulang seperti fluktuasi mingguan, bulanan, atau tahunan.
Dampak hari libur (h(t)) memperhitungkan peristiwa yang tidak teratur tetapi dapat diprediksi, seperti Black Friday atau hari libur nasional.
Galat (et) adalah noise residual yang tidak dijelaskan oleh komponen lain.
Selain memberikan interpretabilitas dengan menunjukkan faktor-faktor yang mendorong prediksi, Prophet juga mengotomatisasi sebagian besar proses peramalan deret waktu, seperti deteksi musiman dan penanganan nilai hilang.
Dengan menangani operasi prapemrosesan yang kompleks ini, Prophet mengurangi kebutuhan akan keahlian statistik yang ekstensif, seperti yang sering dibutuhkan dalam metode statistik konvensional. ARIMA, misalnya, memerlukan asumsi stasioneritas terpenuhi dan secara resmi tidak memperhitungkan faktor eksternal, sedangkan Prophet memodelkan musiman dan dampak hari libur secara eksplisit, sehingga dianggap lebih mudah untuk peramalan bisnis.
Spesifikasi komponen tren
Prophet memiliki dua model tren:
Model pertumbuhan logistik berguna ketika deret waktu mencapai saturasi pada kapasitas maksimum, mirip dengan adopsi pengguna terhadap aplikasi baru.
Model linear bertahap (piecewise linear) memecah tren menjadi segmen dengan titik perubahan (changepoint), sehingga memudahkan pemodelan perubahan pertumbuhan yang mendadak.
Pemodelan musiman
Musiman dimodelkan menggunakan deret Fourier yang memungkinkan fungsi periodik halus dalam data deret waktu. Ada dua bentuk utama perilaku musiman:
Musiman aditif diperlukan ketika variasi musiman tetap konsisten besarnya dari waktu ke waktu.
Musiman multiplikatif tepat ketika fluktuasi musiman tumbuh bersama tren, seperti volume penjualan yang meningkat seiring pertumbuhan pasar secara keseluruhan.
Selain itu, pengguna juga dapat mendefinisikan musiman kustom untuk merepresentasikan pola unik spesifik domain, misalnya promosi triwulanan.
Integrasi hari libur dan peristiwa
Prophet juga menyediakan kemampuan untuk memasukkan hari libur yang telah ditentukan maupun daftar peristiwa arbitrer. Ini sangat menguntungkan saat memodelkan siklus bisnis, hari libur budaya, atau peristiwa satu kali seperti peluncuran produk. Seseorang juga dapat menambahkan peristiwa tak terduga seperti COVID-19 sebagai regresor tambahan untuk memperbarui ramalan secara dinamis. Pemodelan eksplisit terhadap peristiwa semacam itu meningkatkan akurasi dan memberikan wawasan tentang dampak tanggal-tanggal khusus terhadap tren yang mendasarinya.
Menangani noise dan pencilan
Data dunia nyata sering mengandung noise dan pencilan, yang dapat mengakibatkan prediksi model yang terdistorsi. Prophet memiliki fungsi loss yang robust dan komponen tren nonparametrik yang membuat prediksi lebih tahan terhadap pencilan pada data.
Untuk semakin meningkatkan stabilitas ramalan, akan membantu menganalisis plot residual dan melakukan prapemrosesan data dengan winsorizing atau menghapus anomali. Langkah-langkah ini memastikan model mempelajari tren sebenarnya, bukan noise acak.
Kapan Menggunakan Facebook Prophet (dan Kapan Tidak)
Seperti kebanyakan model dan teknik machine learning, Prophet bukan solusi yang cocok untuk semua kasus. Memahami di mana ia unggul dan di mana tidak adalah kunci untuk menggunakannya secara efektif.
Kekuatan dan skenario ideal
Prophet sangat efektif ketika:
Saat data memiliki musiman harian, mingguan, atau tahunan yang jelas.
Dataset tidak lengkap dan memerlukan penanganan otomatis terhadap nilai hilang dan pencilan.
Pengguna membutuhkan analisis eksploratori cepat dan pengembangan model awal.
Kesederhanaannya membuatnya mudah diakses oleh pengguna dengan keahlian statistik terbatas, sementara interpretabilitasnya membantu analis dan data scientist mengomunikasikan hasil secara efektif kepada pemangku kepentingan nonteknis.
Keterbatasan dan potensi jebakan
Prophet mungkin kurang tepat dalam skenario berikut:
Data yang sangat volatil atau tidak musiman, di mana tidak ada pola periodik yang teratur.
Peramalan jangka panjang ketika tren tidak dapat diprediksi.
Tren nonlinier yang tidak tertangkap oleh model linear bertahap atau logistik.
Aturan emas saat menggunakan Prophet, atau model peramalan apa pun, adalah menghindari mengadopsinya secara membabi buta. Tanpa validasi yang tepat, model dapat dengan mudah menghasilkan ramalan yang terlalu percaya diri atau menyesatkan, sebagaimana terlihat dalam beberapa diskusi komunitas dan kegagalan peramalan profil tinggi.
Bekerja dengan Prophet di Python
Langkah 1: Impor pustaka
Pertama, muat semua paket Python yang diperlukan:
pandas untuk manipulasi data
prophet untuk membangun model peramalan
matplotlib untuk visualisasi
sklearn.metrics – untuk menghitung MAPE, metrik galat
import pandas as pd
from prophet import Prophet
import matplotlib.pyplot as plt
from sklearn.metrics import mean_absolute_percentage_errorDidukung oleh
Langkah 2: Muat dataset
Selanjutnya, kita membaca file CSV yang berisi harga berjangka emas harian. Di sini ada tautan ke dataset Kaggle yang saya gunakan.
file_path ="future-gc00-daily-prices.csv"
gold_ts = pd.read_csv(file_path)Didukung oleh
Langkah 3: Bersihkan data
Sekarang, kita harus membersihkan data. Ini berarti kita:
Menghapus koma dari kolom numerik dan mengonversinya ke float.
Mengonversi kolom Date dari format string ke datetime.
Ini memastikan Prophet dapat memahami dan mengurutkan tanggal dengan benar.
for col in["Open","High","Low","Close"]:
gold_ts[col]= gold_ts[col].str.replace(",","").astype(float)
gold_ts["Date"]= pd.to_datetime(gold_ts["Date"],format="%m/%d/%Y")Didukung oleh
Langkah 4: Urutkan data berdasarkan tanggal
Kita menyusun data dalam urutan kronologis. Ini adalah langkah penting yang bisa terlewat.
Kita juga harus menyiapkan data untuk Prophet, yang mengharapkan kolom masukan diberi nama:
ds → stempel tanggal
y → nilai yang akan diramalkan (di sini, harga Close)
gold_ts = gold_ts[["Date","Close"]].rename(columns={"Date":"ds","Close":"y"})Didukung oleh
Langkah 6: Bagi menjadi set pelatihan dan uji
Sekarang kita membagi data menjadi versi pelatihan dan pengujian.
Simpan sebagian besar data untuk pelatihan.
Sisihkan 180 baris terakhir (atau 10% jika lebih kecil) untuk menguji akurasi model.
test_size =min(180,len(gold_ts)//10)
train = gold_ts.iloc[:-test_size]
test = gold_ts.iloc[-test_size:]Didukung oleh
Langkah 7: Latih model Prophet
Latih Prophet pada data historis dengan komponen musiman harian dan tahunan diaktifkan.
model = Prophet(daily_seasonality=True, yearly_seasonality=True)
model.fit(train)Didukung oleh
Langkah 8: Ramalkan nilai masa depan
Kita memprediksi untuk sebanyak hari seperti pada set uji.
Ramalan memuat kolom seperti yhat (terprediksi), yhat_lower, dan yhat_upper.
future = model.make_future_dataframe(periods=test_size)
forecast = model.predict(future)Didukung oleh
Langkah 9: Selaraskan prediksi dengan nilai aktual
Gabungkan harga penutupan aktual dengan prediksi model pada tanggal yang cocok untuk dibandingkan secara langsung.
merged = pd.merge(test, forecast[["ds","yhat"]], on="ds", how="inner")Didukung oleh
Langkah 10: Hitung MAPE
Sekarang kita mengukur seberapa akurat ramalannya. Jika tidak ada tumpang tindih tanggal, kode akan memberi peringatan bukan crash.
if merged.empty:print("No overlapping dates between forecast and test set.")else:
mape = mean_absolute_percentage_error(merged["y"], merged["yhat"])*100print(f"Mean Absolute Percentage Error (MAPE): {mape:.2f}%")Didukung oleh
Di sini, mean absolute percentage error (MAPE): 5,83%
Langkah 11: Plot ramalan
Kita memvisualisasikan ramalan, interval keyakinan, dan riwayat aktual.
fig1 = model.plot(forecast)
plt.title("Gold Futures (GC00) - Close Price Forecast")
plt.xlabel("Date")
plt.ylabel("Close Price")
plt.show()Didukung oleh
Langkah 12: Plot komponen musiman
Akan membantu untuk menunjukkan bagaimana pola tren, musiman harian, dan tahunan berkontribusi pada ramalan.
fig2 = model.plot_components(forecast)
plt.show()Didukung oleh
Langkah 13: Tinjau sampel ramalan
Tampilkan beberapa nilai prediksi terakhir dan rentang ketidakpastiannya.
print(forecast[["ds","yhat","yhat_lower","yhat_upper"]].tail(10))Didukung oleh
Contoh nilai yang diprediksi:
ds yhat yhat_lower yhat_upper
37142023-11-091834.5680811743.1278731922.79120537152023-11-101833.3235001749.2656781937.24609337162023-11-111832.8181961740.9412781921.77261137172023-11-121832.3708841745.2850471925.01268437182023-11-131832.6443501736.7927081919.05704237192023-11-141832.0177611736.2295021929.78666937202023-11-151831.6509061743.1900771924.85193637212023-11-161831.5665211738.1811841933.02674037222023-11-171830.4277131736.0385291919.50515537232023-11-181830.0298161737.0227541922.118728Didukung oleh
Memvalidasi dan Menguji Facebook Prophet
Metodologi validasi
Cross-validation deret waktu diperlukan untuk mensimulasikan skenario peramalan dunia nyata. Penting untuk mengevaluasi kinerja model pada beberapa set validasi yang berurutan. Tidak hanya membantu menghindari bias lookahead, tetapi juga memberikan kemampuan generalisasi ke data tak terlihat di masa depan.
Mean absolute percentage error (MAPE) mengukur rata-rata perbedaan persentase absolut. Ini mudah ditafsirkan di berbagai skala. Inilah yang kita lihat pada contoh Python kita.
Analisis komparatif
Dibandingkan dengan ARIMA atau LSTM, Prophet unggul dalam:
Menangani musiman tidak teratur dan dampak hari libur
Menunjukkan ketangguhan terhadap data hilang, pencilan, dan ketidakteraturan bisnis
Namun, Prophet mungkin berkinerja kurang baik dalam skenario yang melibatkan pola yang sangat nonlinier atau dataset dengan musiman yang lemah.
Aplikasi Praktis dan Keterbatasan
Studi kasus dunia nyata
Prophet telah banyak diadopsi di berbagai industri untuk kasus penggunaan seperti:
Peramalan penjualan ritel, mengukur permintaan, dan mengelola persediaan
Prediksi trafik web untuk memahami keterlibatan pengguna
Peramalan permintaan energi untuk menyeimbangkan pasokan dan konsumsi secara efisien.
Terlepas dari manfaatnya, ada kalanya pola historis gagal karena gangguan tak terduga, seperti yang terjadi selama pandemi.
Kendala skalabilitas
Prophet dapat menangani dataset berukuran sedang, yang sesuai untuk sebagian besar tugas peramalan bisnis dan operasional. Namun, penggunaannya pada dataset yang sangat besar atau deret waktu frekuensi tinggi mahal secara komputasi karena kerangka pemodelan Bayesian yang mendasarinya. Untuk mengatasinya, disarankan meramalkan beberapa deret waktu secara paralel. Pendekatan praktis lainnya adalah mengagregasi atau melakukan downsampling data. Ini mengurangi biaya memori dan waktu proses tanpa kehilangan pola temporal yang berharga.
Keterbatasan utama
Prophet mengasumsikan satu variabel target dan memodelkan tren menggunakan kurva pertumbuhan linear bertahap atau logistik. Asumsi semacam ini dapat membatasi fleksibilitasnya untuk masalah multivariat atau yang tidak didominasi tren. Oleh karena itu, pengguna perlu menambahkan pengetahuan domain ke ramalan Prophet bersama validasi eksternal untuk memastikan keandalan.
Kegagalan dan kritik di dunia nyata
Kegagalan ramalan profil tinggi, seperti keruntuhan pasar perumahan Zillow, menyoroti risiko ketergantungan berlebihan pada perangkat lunak peramalan otomatis. Terlalu mempercayai keluaran model tanpa tinjauan manusia dapat menimbulkan kesalahan yang mahal. Oleh karena itu, disarankan melakukan validasi menyeluruh dan perencanaan skenario saat menafsirkan hasil ramalan.
Jangan ragu untuk mempertanyakan setiap model dan tren. Bangun budaya yang mendorong pemikiran kritis dan memungkinkan tim menantang status quo. Saya telah melihat tim seperti itu secara konsisten membangun solusi peramalan yang tangguh.
Terakhir, saya sangat merekomendasikan mengadopsi pola pikir "percaya tapi verifikasi" dan menambahkan lapisan pengetahuan domain Anda untuk melakukan pemeriksaan kewajaran pada hasilnya.
Lintasan Pengembangan ke Depan
Prophet masih terus berkembang melalui riset dan kontribusi komunitas. Peningkatan berkelanjutan pada Prophet mencakup:
Dukungan multivariat
Skalabilitas yang ditingkatkan untuk dataset besar
Ekstensi yang digerakkan komunitas
Riset aktif melibatkan integrasi metode statistik baru dan peningkatan kinerja pada dataset kompleks dengan frekuensi tinggi.
Kesimpulan
Facebook Prophet adalah alat yang kuat untuk peramalan deret waktu, menawarkan otomasi, interpretabilitas, dan fleksibilitas. Ia berkinerja baik untuk peramalan eksploratori dalam bisnis dan domain lain dengan musiman kuat atau peristiwa khusus.
Namun, ini bukan solusi siap pakai. Untuk membuat prediksi yang tepercaya, pengguna harus memastikan validasi yang cermat, penyetelan parameter, dan pengetahuan domain. Dengan menyeimbangkan otomasi Prophet dengan penilaian manusia yang matang, analis dapat mengembangkan wawasan yang dapat ditindaklanjuti dan menghindari jebakan umum.
Untuk pembelajaran praktis, lihat kursus dan jalur keterampilan kami:
Saya adalah Penasihat dan Etikus AI yang bekerja di persimpangan ilmu data, produk, dan rekayasa untuk membangun sistem pembelajaran mesin yang dapat diskalakan. Masuk dalam daftar "200 Inovator Bisnis dan Teknologi Teratas" di dunia, saya memiliki misi untuk mendemokratisasi pembelajaran mesin dan menyederhanakan jargon agar semua orang dapat menjadi bagian dari transformasi ini.
FAQ
Untuk apa Facebook Prophet digunakan?⌄
Facebook Prophet digunakan untuk peramalan deret waktu, membantu memprediksi tren, musiman, dan dampak peristiwa dalam data seperti penjualan, permintaan, atau trafik web.
Bagaimana Prophet menangani hari libur dan peristiwa khusus?⌄
Prophet memungkinkan penambahan peristiwa yang telah ditentukan atau kustom ke dalam model, yang memperhitungkan lonjakan atau penurunan tidak teratur pada deret waktu.
Mengapa Prophet populer untuk peramalan bisnis?⌄
Prophet bersifat otomatis, dapat ditafsirkan, dan tangguh terhadap data hilang serta pencilan, sehingga ideal untuk ramalan yang cepat dan andal.
Kapan sebaiknya menghindari penggunaan Facebook Prophet?⌄
Seseorang dapat menghindari Prophet untuk data yang sangat volatil atau tidak musiman atau ketika tren terlalu tidak dapat diprediksi.
Apa keunggulan utama Prophet dibanding ARIMA?⌄
Tidak seperti ARIMA, Prophet tidak memerlukan stasioneritas yang ketat, menangani data hilang, dan secara otomatis mendeteksi titik perubahan.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Perusahaan bergantung pada prediksi tren masa depan untuk mengambil keputusan strategis, seperti meramalkan penjualan produk atau menilai variabilitas permintaan. Salah satu cara membuat prediksi yang efektif adalah peramalan deret waktu. Prinsip utama peramalan deret waktu adalah ketergantungannya pada nilai data historis untuk memprediksi hasil di masa depan. Ini menuntut perhatian terhadap data karena data praktis sering kali bising atau hilang, sehingga sulit diprediksi.
Meskipun ada banyak alat untuk peramalan deret waktu, Facebook Prophet dirancang khusus untuk menangani kompleksitas dunia nyata, mulai dari tren nonlinier dan musiman hingga dampak peristiwa khusus seperti hari libur dan kampanye pemasaran atau lonjakan trafik. Jika Anda benar-benar belum familiar dengan peramalan deret waktu, saya merekomendasikan mengikuti kursus Time Series Analysis in Python dan/atau kursus Forecasting in R kami.
Apa Itu Facebook Prophet?
Prophet adalah pustaka peramalan open-source yang dikembangkan oleh tim Core Data Science Facebook. Tersedia dalam Python dan R. Salah satu alasan analis data dan data scientist senang menggunakannya adalah karena ia mengotomatisasi banyak langkah rutin dalam metode peramalan tradisional. Dengan fleksibilitas tersebut, Prophet membantu pengguna menghasilkan ramalan yang dapat ditafsirkan dan baik dengan cepat.
Kerangka Pemodelan Inti Facebook Prophet
Pendekatan pemodelan Facebook Prophet terstruktur namun fleksibel. Ini mendekomposisi deret waktu menjadi empat komponen utama, yaitu tren, musiman, hari libur, dan galat. Komponen ketiga, yang saya sebut hari libur, tidak terlalu standar. Dekomposisi klasik dan STL menentukan tiga bagian: tren, musiman, dan galat.
Dengan memperjelas bagaimana tren, musiman, dan hari libur semuanya berkontribusi pada ramalan akhir, dekomposisi membantu memvalidasi penalaran model saat kita mencoba membuat keputusan yang tepat.
Dekomposisi deret waktu
Prophet menggunakan model aditif di mana deret waktu
y(t)dinyatakan sebagai:Di mana,
Tren (
g(t)) untuk pertumbuhan atau penurunan jangka panjang.Musiman (
s(t)) mencakup pola berulang seperti fluktuasi mingguan, bulanan, atau tahunan.Dampak hari libur (
h(t)) memperhitungkan peristiwa yang tidak teratur tetapi dapat diprediksi, seperti Black Friday atau hari libur nasional.Galat (
et) adalah noise residual yang tidak dijelaskan oleh komponen lain.Selain memberikan interpretabilitas dengan menunjukkan faktor-faktor yang mendorong prediksi, Prophet juga mengotomatisasi sebagian besar proses peramalan deret waktu, seperti deteksi musiman dan penanganan nilai hilang.
Dengan menangani operasi prapemrosesan yang kompleks ini, Prophet mengurangi kebutuhan akan keahlian statistik yang ekstensif, seperti yang sering dibutuhkan dalam metode statistik konvensional. ARIMA, misalnya, memerlukan asumsi stasioneritas terpenuhi dan secara resmi tidak memperhitungkan faktor eksternal, sedangkan Prophet memodelkan musiman dan dampak hari libur secara eksplisit, sehingga dianggap lebih mudah untuk peramalan bisnis.
Spesifikasi komponen tren
Prophet memiliki dua model tren:
Pemodelan musiman
Musiman dimodelkan menggunakan deret Fourier yang memungkinkan fungsi periodik halus dalam data deret waktu. Ada dua bentuk utama perilaku musiman:
Selain itu, pengguna juga dapat mendefinisikan musiman kustom untuk merepresentasikan pola unik spesifik domain, misalnya promosi triwulanan.
Integrasi hari libur dan peristiwa
Prophet juga menyediakan kemampuan untuk memasukkan hari libur yang telah ditentukan maupun daftar peristiwa arbitrer. Ini sangat menguntungkan saat memodelkan siklus bisnis, hari libur budaya, atau peristiwa satu kali seperti peluncuran produk. Seseorang juga dapat menambahkan peristiwa tak terduga seperti COVID-19 sebagai regresor tambahan untuk memperbarui ramalan secara dinamis. Pemodelan eksplisit terhadap peristiwa semacam itu meningkatkan akurasi dan memberikan wawasan tentang dampak tanggal-tanggal khusus terhadap tren yang mendasarinya.
Menangani noise dan pencilan
Data dunia nyata sering mengandung noise dan pencilan, yang dapat mengakibatkan prediksi model yang terdistorsi. Prophet memiliki fungsi loss yang robust dan komponen tren nonparametrik yang membuat prediksi lebih tahan terhadap pencilan pada data.
Untuk semakin meningkatkan stabilitas ramalan, akan membantu menganalisis plot residual dan melakukan prapemrosesan data dengan winsorizing atau menghapus anomali. Langkah-langkah ini memastikan model mempelajari tren sebenarnya, bukan noise acak.
Kapan Menggunakan Facebook Prophet (dan Kapan Tidak)
Seperti kebanyakan model dan teknik machine learning, Prophet bukan solusi yang cocok untuk semua kasus. Memahami di mana ia unggul dan di mana tidak adalah kunci untuk menggunakannya secara efektif.
Kekuatan dan skenario ideal
Prophet sangat efektif ketika:
Kesederhanaannya membuatnya mudah diakses oleh pengguna dengan keahlian statistik terbatas, sementara interpretabilitasnya membantu analis dan data scientist mengomunikasikan hasil secara efektif kepada pemangku kepentingan nonteknis.
Keterbatasan dan potensi jebakan
Prophet mungkin kurang tepat dalam skenario berikut:
Aturan emas saat menggunakan Prophet, atau model peramalan apa pun, adalah menghindari mengadopsinya secara membabi buta. Tanpa validasi yang tepat, model dapat dengan mudah menghasilkan ramalan yang terlalu percaya diri atau menyesatkan, sebagaimana terlihat dalam beberapa diskusi komunitas dan kegagalan peramalan profil tinggi.
Bekerja dengan Prophet di Python
Langkah 1: Impor pustaka
Pertama, muat semua paket Python yang diperlukan:
pandasuntuk manipulasi dataprophetuntuk membangun model peramalanmatplotlibuntuk visualisasisklearn.metrics– untuk menghitung MAPE, metrik galatLangkah 2: Muat dataset
Selanjutnya, kita membaca file CSV yang berisi harga berjangka emas harian. Di sini ada tautan ke dataset Kaggle yang saya gunakan.
Langkah 3: Bersihkan data
Sekarang, kita harus membersihkan data. Ini berarti kita:
Menghapus koma dari kolom numerik dan mengonversinya ke float.
Mengonversi kolom
Datedari format string ke datetime.Ini memastikan Prophet dapat memahami dan mengurutkan tanggal dengan benar.
Langkah 4: Urutkan data berdasarkan tanggal
Kita menyusun data dalam urutan kronologis. Ini adalah langkah penting yang bisa terlewat.
Langkah 5: Siapkan data untuk Prophet
Kita juga harus menyiapkan data untuk Prophet, yang mengharapkan kolom masukan diberi nama:
ds→ stempel tanggaly→ nilai yang akan diramalkan (di sini, hargaClose)Langkah 6: Bagi menjadi set pelatihan dan uji
Sekarang kita membagi data menjadi versi pelatihan dan pengujian.
Langkah 7: Latih model Prophet
Latih Prophet pada data historis dengan komponen musiman harian dan tahunan diaktifkan.
Langkah 8: Ramalkan nilai masa depan
Kita memprediksi untuk sebanyak hari seperti pada set uji.
Ramalan memuat kolom seperti
yhat(terprediksi),yhat_lower, danyhat_upper.Langkah 9: Selaraskan prediksi dengan nilai aktual
Gabungkan harga penutupan aktual dengan prediksi model pada tanggal yang cocok untuk dibandingkan secara langsung.
Langkah 10: Hitung MAPE
Sekarang kita mengukur seberapa akurat ramalannya. Jika tidak ada tumpang tindih tanggal, kode akan memberi peringatan bukan crash.
Di sini, mean absolute percentage error (MAPE): 5,83%
Langkah 11: Plot ramalan
Kita memvisualisasikan ramalan, interval keyakinan, dan riwayat aktual.
Langkah 12: Plot komponen musiman
Akan membantu untuk menunjukkan bagaimana pola tren, musiman harian, dan tahunan berkontribusi pada ramalan.
Langkah 13: Tinjau sampel ramalan
Tampilkan beberapa nilai prediksi terakhir dan rentang ketidakpastiannya.
Contoh nilai yang diprediksi:
Memvalidasi dan Menguji Facebook Prophet
Metodologi validasi
Cross-validation deret waktu diperlukan untuk mensimulasikan skenario peramalan dunia nyata. Penting untuk mengevaluasi kinerja model pada beberapa set validasi yang berurutan. Tidak hanya membantu menghindari bias lookahead, tetapi juga memberikan kemampuan generalisasi ke data tak terlihat di masa depan.
Beberapa metrik evaluasi standar meliputi:
Analisis komparatif
Dibandingkan dengan ARIMA atau LSTM, Prophet unggul dalam:
Namun, Prophet mungkin berkinerja kurang baik dalam skenario yang melibatkan pola yang sangat nonlinier atau dataset dengan musiman yang lemah.
Aplikasi Praktis dan Keterbatasan
Studi kasus dunia nyata
Prophet telah banyak diadopsi di berbagai industri untuk kasus penggunaan seperti:
Terlepas dari manfaatnya, ada kalanya pola historis gagal karena gangguan tak terduga, seperti yang terjadi selama pandemi.
Kendala skalabilitas
Prophet dapat menangani dataset berukuran sedang, yang sesuai untuk sebagian besar tugas peramalan bisnis dan operasional. Namun, penggunaannya pada dataset yang sangat besar atau deret waktu frekuensi tinggi mahal secara komputasi karena kerangka pemodelan Bayesian yang mendasarinya. Untuk mengatasinya, disarankan meramalkan beberapa deret waktu secara paralel. Pendekatan praktis lainnya adalah mengagregasi atau melakukan downsampling data. Ini mengurangi biaya memori dan waktu proses tanpa kehilangan pola temporal yang berharga.
Keterbatasan utama
Prophet mengasumsikan satu variabel target dan memodelkan tren menggunakan kurva pertumbuhan linear bertahap atau logistik. Asumsi semacam ini dapat membatasi fleksibilitasnya untuk masalah multivariat atau yang tidak didominasi tren. Oleh karena itu, pengguna perlu menambahkan pengetahuan domain ke ramalan Prophet bersama validasi eksternal untuk memastikan keandalan.
Kegagalan dan kritik di dunia nyata
Kegagalan ramalan profil tinggi, seperti keruntuhan pasar perumahan Zillow, menyoroti risiko ketergantungan berlebihan pada perangkat lunak peramalan otomatis. Terlalu mempercayai keluaran model tanpa tinjauan manusia dapat menimbulkan kesalahan yang mahal. Oleh karena itu, disarankan melakukan validasi menyeluruh dan perencanaan skenario saat menafsirkan hasil ramalan.
Jangan ragu untuk mempertanyakan setiap model dan tren. Bangun budaya yang mendorong pemikiran kritis dan memungkinkan tim menantang status quo. Saya telah melihat tim seperti itu secara konsisten membangun solusi peramalan yang tangguh.
Terakhir, saya sangat merekomendasikan mengadopsi pola pikir "percaya tapi verifikasi" dan menambahkan lapisan pengetahuan domain Anda untuk melakukan pemeriksaan kewajaran pada hasilnya.
Lintasan Pengembangan ke Depan
Prophet masih terus berkembang melalui riset dan kontribusi komunitas. Peningkatan berkelanjutan pada Prophet mencakup:
Riset aktif melibatkan integrasi metode statistik baru dan peningkatan kinerja pada dataset kompleks dengan frekuensi tinggi.
Kesimpulan
Facebook Prophet adalah alat yang kuat untuk peramalan deret waktu, menawarkan otomasi, interpretabilitas, dan fleksibilitas. Ia berkinerja baik untuk peramalan eksploratori dalam bisnis dan domain lain dengan musiman kuat atau peristiwa khusus.
Namun, ini bukan solusi siap pakai. Untuk membuat prediksi yang tepercaya, pengguna harus memastikan validasi yang cermat, penyetelan parameter, dan pengetahuan domain. Dengan menyeimbangkan otomasi Prophet dengan penilaian manusia yang matang, analis dapat mengembangkan wawasan yang dapat ditindaklanjuti dan menghindari jebakan umum.
Untuk pembelajaran praktis, lihat kursus dan jalur keterampilan kami: