Intro to Machine Learning II#

Data Preprocessing for Time Series#

Mengapa Data Preprocessing penting dalam analisis time series dan forecasting?#

Data Preprocessing penting karena membantu dalam membersihkan, mengurutkan, dan mempersiapkan data time series sebelum digunakan dalam model forecasting. Ini memastikan bahwa data siap untuk diproses dan memberikan hasil yang akurat.

Apa saja tahapan utama dalam Data Preprocessing untuk data time series?#

Beberapa tahapan utama dalam Data Preprocessing untuk data time series antara lain:

  • Menangani missing values (data yang hilang).

  • Deteksi dan penanganan outlier (data ekstrem).

  • Resampling data (menyesuaikan frekuensi waktu).

  • Memastikan data terurut berdasarkan waktu.

  • Memisahkan data menjadi train set dan test set.

Bagaimana cara menangani missing values dalam data time series?#

Anda dapat menangani missing values dengan menggunakan teknik seperti mengisi nilai rata-rata, interpolasi, atau menggunakan teknik pengisian data time series khusus seperti metode forward fill atau backward fill.

Apa dampak outlier dalam data time series pada forecasting?#

Outlier dapat menyebabkan forecasting yang tidak akurat karena nilai ekstrem tersebut dapat mengganggu pola dan tren umum data time series.

Apa yang dimaksud dengan resampling data dalam data time series?#

Resampling data mengacu pada mengubah frekuensi data time series menjadi tingkat yang lebih tinggi atau lebih rendah. Misalnya, mengubah data harian menjadi data bulanan atau sebaliknya.

Mengapa penting untuk memastikan data terurut berdasarkan waktu?#

Data time series harus terurut berdasarkan waktu untuk memastikan urutan waktu yang benar dalam analisis dan forecasting. Ini memastikan tidak ada “data leakage” yang dapat menyebabkan evaluasi yang tidak realistis.

Apa bedanya antara train set dan test set dalam Data Preprocessing untuk forecasting?#

Train set adalah bagian dari data yang digunakan untuk melatih model forecasting, sementara test set adalah bagian data yang tidak digunakan dalam pelatihan, tetapi digunakan untuk menguji performa model.

Multiple vs Multivariate Time Series#

Apa perbedaan antara Multiple Time Series dan Multivariate Time Series?#

Multiple Time Series mengacu pada kumpulan beberapa seri waktu yang terpisah, di mana setiap seri waktu mengukur variabel yang berbeda pada waktu yang sama. Sementara itu, Multivariate Time Series mengacu pada satu seri waktu tunggal yang mengukur beberapa variabel pada waktu yang sama.

Contoh apa yang dapat dijelaskan dengan Multiple Time Series?#

Multiple Time Series digunakan untuk menjelaskan hubungan antara beberapa seri waktu yang terkait, seperti pendapatan dan penjualan, suhu dan konsumsi listrik, atau harga saham dan volume perdagangan.

Contoh apa yang dapat dijelaskan dengan Multivariate Time Series?#

Multivariate Time Series digunakan untuk mengukur beberapa variabel terkait dalam satu seri waktu, seperti data sensor yang mengukur suhu, kelembaban, dan tekanan atmosfer dalam satu rangkaian waktu.

Apa keuntungan menggunakan Multiple Time Series daripada Multivariate Time Series?#

Keuntungan menggunakan Multiple Time Series adalah setiap seri waktu dapat diproses secara independen tanpa ketergantungan dengan variabel lainnya. Ini dapat mengurangi kompleksitas pemodelan dan memungkinkan analisis yang lebih terfokus.

Apa keuntungan menggunakan Multivariate Time Series daripada Multiple Time Series?#

Keuntungan menggunakan Multivariate Time Series adalah adanya ketergantungan antara variabel-variabel yang diukur, sehingga dapat memungkinkan analisis interaksi dan hubungan yang lebih kuat antara variabel-variabel tersebut.

Bagaimana cara mengatasi perbedaan skala antara variabel pada Multivariate Time Series?#

Untuk mengatasi perbedaan skala, data dapat dinormalisasi atau disesuaikan dengan menggunakan metode seperti Min-Max Scaling atau Z-Score Scaling sehingga semua variabel memiliki skala yang serupa.

Apa yang perlu dipertimbangkan dalam memilih antara Multiple Time Series dan Multivariate Time Series?#

Pemilihan antara keduanya tergantung pada sifat data dan tujuan analisis. Jika variabel-variabel terkait dan mempengaruhi satu sama lain, maka Multivariate Time Series mungkin lebih sesuai. Namun, jika analisis fokus pada pola dan tren masing-masing variabel, maka Multiple Time Series bisa lebih cocok.

Prophet#

Apa itu Prophet?#

Prophet adalah library open-source yang dikembangkan oleh Facebook untuk forecasting time series. Ia menyediakan antarmuka sederhana dan intuitif untuk membangun model forecasting yang dapat menangani komponen musiman, tren, dan hari libur dalam data time series.

Apa kelebihan Prophet dibandingkan dengan algoritma forecasting time series lainnya?#

Beberapa kelebihan Prophet adalah kemampuannya untuk secara otomatis menangani komponen musiman dan tren yang kompleks, kinerja yang baik dengan data time series yang berukuran kecil hingga sedang, serta antarmuka yang mudah digunakan dan konfigurasi yang minimal.

Apa saja komponen utama yang ada dalam model Prophet?#

Komponen utama dalam model Prophet adalah Tren (Trend), Musiman (Seasonality), dan Efek Hari Libur (Holiday Effects). Komponen ini membantu dalam membuat model forecasting yang lebih akurat.

Apa yang harus dilakukan jika terdapat data yang hilang atau ada outlier dalam time series?#

Sebelum membangun model menggunakan Prophet, Anda harus menangani data yang hilang atau outlier dengan teknik pra-pemrosesan data seperti interpolasi untuk data hilang dan teknik penghalusan (smoothing) untuk menghilangkan outlier.

Bagaimana cara mengevaluasi kinerja model Prophet?#

Anda dapat mengevaluasi kinerja model Prophet dengan menggunakan metrik evaluasi yang sesuai seperti Mean Absolute Error (MAE) atau Mean Squared Error (MSE) untuk tugas forecasting.

Apakah Prophet cocok untuk semua jenis data time series?#

Prophet lebih cocok untuk data time series dengan tren musiman yang jelas dan pola yang stabil. Namun, ketepatan model Prophet dapat dipengaruhi oleh karakteristik khusus dari data time series yang sedang dianalisis.

Apa itu Baseline Model dalam Prophet?#

Baseline Model dalam Prophet adalah model dasar yang tidak memperhitungkan komponen musiman, tren, dan hari libur. Ini hanyalah model yang mengikuti pola data asli tanpa penyesuaian tambahan.

Trend Component#

Apa itu Komponen Tren dalam model Prophet?#

Komponen Tren dalam model Prophet adalah bagian dari model yang menangkap pola perubahan jangka panjang atau tren dalam data time series. Ia mencerminkan arah umum data seiring berjalannya waktu.

Bagaimana Prophet memodelkan Komponen Tren?#

Prophet menggunakan pendekatan piecewise linear untuk memodelkan Komponen Tren. Pendekatan ini membagi data time series menjadi segmen-segmen linier dan menyesuaikan garis tren terpisah pada setiap segmen.

Apa itu piecewise linear dalam matematika?#

Piecewise linear adalah fungsi matematika yang terdiri dari beberapa garis lurus yang dihubungkan pada titik-titik batas tertentu. Ini memungkinkan model untuk menangkap pola tren yang berubah secara parsial pada interval waktu tertentu.

Bagaimana Prophet menentukan jumlah segmen dan titik-titik batas dalam pendekatan piecewise linear?#

Jumlah segmen dan titik-titik batas dalam pendekatan piecewise linear ditentukan oleh model secara otomatis berdasarkan data time series. Prophet menggunakan algoritma MCMC (Markov Chain Monte Carlo) untuk melakukan pemilihan yang optimal.

Apakah piecewise linear hanya cocok untuk tren yang sederhana?#

Tidak, piecewise linear dapat menangkap tren yang lebih kompleks dengan menyesuaikan jumlah segmen yang tepat. Ini memungkinkan model untuk menangani tren yang berubah dengan lebih fleksibel.

Apa itu MCMC (Markov Chain Monte Carlo) dalam model Prophet?#

MCMC adalah metode statistik yang digunakan untuk menghitung distribusi probabilitas parameter model. Prophet menggunakan MCMC untuk mengestimasi parameter dalam model piecewise linear dengan mendapatkan distribusi probabilitas parameter yang sesuai.

Apakah Prophet juga mendukung pendekatan polinomial untuk memodelkan tren?#

Ya, selain pendekatan piecewise linear, Prophet juga mendukung pendekatan polinomial untuk memodelkan tren jangka panjang yang lebih kompleks.

Seasonality Component#

Apa itu Komponen Musiman dalam model Prophet?#

Komponen Musiman dalam model Prophet adalah bagian dari model yang menggambarkan pola berulang yang terjadi dalam data time series dengan periode tertentu, seperti musim harian, mingguan, atau tahunan.

Bagaimana Prophet menangani Komponen Musiman?#

Prophet menggunakan pendekatan berbasis Fourier untuk menangani Komponen Musiman. Pendekatan ini melibatkan transformasi Fourier untuk menguraikan pola musiman menjadi serangkaian harmonik sinusoidal.

Apa itu deret Fourier (Fourier series) dalam matematika?#

Deret Fourier adalah representasi dari fungsi periodik sebagai kombinasi linear dari fungsi-fungsi sinus dan kosinus. Ia digunakan untuk mendekomposisi pola berulang menjadi komponen harmonik.

Bagaimana Prophet menggunakan deret Fourier untuk memodelkan Komponen Musiman?#

Dalam model Prophet, deret Fourier digunakan untuk memodelkan Komponen Musiman dengan menentukan jumlah harmonik (Fourier Order) yang ingin digunakan untuk menangkap pola musiman dalam data.

Apa itu Fourier Order dalam model Prophet?#

Fourier Order adalah hyperparameter yang digunakan untuk mengatur seberapa banyak harmonik sinusoidal yang akan digunakan untuk memodelkan Komponen Musiman. Semakin tinggi nilai Fourier Order, semakin banyak frekuensi yang dianggap oleh model.

Apa manfaat penggunaan pendekatan Fourier dalam memodelkan Komponen Musiman?#

Pendekatan Fourier memungkinkan Prophet untuk menangkap pola musiman yang kompleks dengan menggabungkan sejumlah harmonik. Ini memberikan fleksibilitas dalam menangani variasi musiman yang berbeda dalam data time series.

Apakah Prophet hanya mengizinkan periode musiman yang tetap (statis)?#

Tidak, Prophet juga mendukung komponen musiman dengan periode yang dinamis. Dengan mengidentifikasi Hari Libur (Holiday Effects), Prophet dapat menyesuaikan periode musiman secara otomatis berdasarkan hari libur tertentu.

Holiday Effects#

Apa itu Holiday Effects dalam forecasting time series?#

Holiday Effects adalah efek khusus yang muncul pada data time series karena adanya peristiwa atau hari libur tertentu, seperti liburan nasional, perayaan, atau acara khusus.

Mengapa perlu memperhitungkan Holiday Effects dalam model forecasting time series?#

Memperhitungkan Holiday Effects penting karena peristiwa atau hari libur khusus dapat memiliki dampak signifikan pada data time series, seperti peningkatan penjualan, fluktuasi harga, atau perubahan dalam pola aktivitas.

Bagaimana cara mengidentifikasi Holiday Effects yang relevan untuk dimasukkan dalam model forecasting?#

Identifikasi Holiday Effects yang relevan dapat dilakukan dengan menganalisis data historis dan mencari pola khusus yang terjadi pada hari-hari libur tertentu. Pengalaman domain dan pengetahuan lokal juga dapat membantu dalam menentukan Hari Libur yang signifikan.

Bagaimana cara menambahkan Holiday Effects dalam model forecasting time series?#

Cara menambahkan Holiday Effects bergantung pada library atau framework forecasting yang Anda gunakan. Sebagai contoh, dalam Prophet, Anda dapat menambahkan informasi tentang Hari Libur menggunakan fungsi add_country_holidays().

Apakah semua hari libur perlu dimasukkan dalam model forecasting?#

Tidak semua hari libur perlu dimasukkan dalam model forecasting. Hanya Hari Libur yang memiliki dampak signifikan pada data time series yang sebaiknya dimasukkan ke dalam model.

Bagaimana cara menangani hari libur yang berubah-ubah setiap tahunnya?#

Untuk hari libur yang berubah-ubah setiap tahunnya, Anda dapat mencoba menggunakan pendekatan yang dinamis seperti menggunakan “dummy variable” yang menandakan kehadiran atau tidak kehadiran hari libur pada setiap tahun.

Apakah penting untuk mempertimbangkan durasi efek dari Hari Libur?#

Ya, mempertimbangkan durasi efek dari Hari Libur dapat membantu model dalam mengidentifikasi dampak yang lebih akurat pada data time series. Beberapa Hari Libur mungkin memiliki efek singkat, sementara yang lain dapat memiliki efek yang lebih lama.

Adding Regressors#

Apa itu Regressor dalam konteks forecasting time series?#

Regressor adalah variabel tambahan yang dapat dimasukkan ke dalam model forecasting time series untuk membantu meningkatkan akurasi prediksi. Regressor dapat berupa variabel eksternal yang mempengaruhi data time series, seperti cuaca, promosi produk, atau aktivitas sosial.

Apa manfaat menambahkan Regressor dalam model forecasting time series?#

Menambahkan Regressor dapat membantu meningkatkan kemampuan model dalam menangkap hubungan antara variabel eksternal dengan data time series yang akan diprediksi. Hal ini dapat mengurangi kesalahan prediksi dan meningkatkan akurasi model.

Bagaimana cara menambahkan Regressor dalam model forecasting time series?#

Semisal kita memiliki data daily_sales_31 dan ingin melekukan forecast total_revenue dengan menambahkan regressor total_qty. Buat dataframe dengan memilih kolom yang diperlukan dan pastikan mengubah nama kolom date menjadi ds dan nilai yang akan di-forecast menjadi y.

daily_total_revenue = daily_sales_31[['date', 'total_revenue', 'total_qty']].rename(
    columns={'date': 'ds',
             'total_revenue': 'y'})

daily_total_revenue.head()
ds y total_qty
0 2013-01-02 396376.10 568.0
1 2013-01-03 276933.11 423.0
2 2013-01-04 286408.00 431.0
3 2013-01-05 273245.00 415.0
4 2013-01-06 260775.00 435.0

Dalam Prophet, Anda dapat menambahkan Regressor menggunakan fungsi add_regressor().

# fitting model
model_total_revenue = Prophet()

## add regressor
model_total_revenue.add_regressor('total_qty')
model_total_revenue.fit(daily_total_revenue)
07:21:37 - cmdstanpy - INFO - Chain [1] start processing
07:21:37 - cmdstanpy - INFO - Chain [1] done processing
<prophet.forecaster.Prophet at 0x7fb368f69970>

Untuk melakukan prediksi, kita memerlukan dataframe berisi ds dan regressor yang digunakan, dalam hal ini adalah total_qty.

future_with_regressor.tail()
ds total_qty
1391 2016-10-26 165.714485
1392 2016-10-27 171.037263
1393 2016-10-28 247.451936
1394 2016-10-29 271.277669
1395 2016-10-30 189.189850
# forecasting
## use dataframe with regressor, instead of just `ds` column
forecast_total_revenue = model_total_revenue.predict(future_with_regressor)

# visualize
model_total_revenue.plot(forecast_total_revenue);
../_images/7f5051c5abea3f06cfeee163d5ac41374fcfc080013049c2bc010ced71e36a93.png
model_total_revenue.plot_components(forecast_total_revenue);
../_images/7fb3d74e4bac0f3fe06582323ad45818b100fc41d264dc896f4f78bbd1d667f2.png

Ketika komponen divisualisasikan, terlihat komponen-komponen yang trend, seasonality beserta tambahan komponen regressor yang terbentuk.

Apakah semua variabel eksternal dapat dijadikan Regressor?#

Tidak semua variabel eksternal cocok dijadikan Regressor. Variabel eksternal yang dipilih sebagai Regressor sebaiknya memiliki hubungan atau korelasi dengan data time series yang akan diprediksi.

Bagaimana cara menentukan Regressor yang tepat untuk dimasukkan dalam model?#

Pemilihan Regressor yang tepat harus berdasarkan pada pengetahuan domain Anda tentang data time series dan faktor-faktor eksternal yang berpengaruh. Analisis korelasi dan uji signifikansi dapat membantu dalam menentukan Regressor yang relevan.

Apakah penambahan Regressor selalu meningkatkan performa model?#

Tidak selalu. Penambahan Regressor dapat meningkatkan performa model jika Regressor memiliki pengaruh signifikan terhadap data time series. Namun, jika Regressor tidak relevan atau tidak memiliki pengaruh yang kuat, penambahan Regressor bisa jadi tidak berguna atau bahkan mengurangi performa model.

Apakah semua library forecasting mendukung penambahan Regressor?#

Tidak semua library forecasting mendukung penambahan Regressor. Beberapa library forecasting memiliki keterbatasan dalam menangani Regressor. Pastikan untuk memeriksa dokumentasi library yang Anda gunakan untuk memastikan fitur ini tersedia.

Train-Test Split in Time Series Data#

Apa itu Train-Test Split dalam data time series?#

Train-Test Split adalah proses membagi data time series menjadi dua subset, yaitu data latih (train set) dan data uji (test set). Data latih digunakan untuk melatih model, sementara data uji digunakan untuk menguji performa model pada data yang belum pernah dilihat sebelumnya.

Mengapa perlu menggunakan Train-Test Split dalam data time series?#

Train-Test Split digunakan untuk menghindari overfitting dan memastikan bahwa model mampu melakukan generalisasi dengan baik pada data baru yang belum pernah dilihat selama pelatihan.

Bagaimana cara melakukan Train-Test Split pada data time series?#

Train-Test Split pada data time series harus dilakukan secara berurutan berdasarkan waktu. Anda harus memisahkan data terbaru sebagai data uji dan menggunakan data sebelumnya sebagai data latih.

Berapa proporsi pembagian data yang baik untuk Train-Test Split pada data time series?#

Proporsi pembagian data dapat bervariasi tergantung pada panjang data dan tujuan analisis. Namun, umumnya, sekitar 70%-80% data digunakan sebagai data latih dan 20%-30% sebagai data uji.

Apakah Train-Test Split acak dapat digunakan dalam data time series?#

Tidak disarankan menggunakan Train-Test Split acak pada data time series karena data time series memiliki urutan waktu yang penting. Memisahkan data secara acak dapat menyebabkan “data leakage” dan menghasilkan evaluasi yang tidak realistis.

Bagaimana cara menentukan titik potong untuk Train-Test Split dalam data time series?#

Titik potong untuk Train-Test Split harus dipilih dengan hati-hati dan berdasarkan tujuan analisis. Umumnya, titik potong dipilih sebagai batas waktu terbaru yang ingin diuji pada data uji.

Apakah ada metode khusus untuk melakukan Train-Test Split dalam data time series?#

Dalam beberapa kasus, seperti saat ada tren atau musiman dalam data, Anda dapat menggunakan metode seperti Time-based Split untuk memastikan data uji mencakup berbagai variasi yang mungkin terjadi di masa depan.

Forecasting Evaluation Metrics#

Apa itu Metrics Evaluasi dalam forecasting?#

Metrics Evaluasi adalah metrik yang digunakan untuk mengevaluasi performa model forecasting dengan membandingkan nilai yang diprediksi oleh model dengan nilai yang sebenarnya.

Apa saja Metrics Evaluasi yang umum digunakan dalam forecasting?#

Beberapa Metrics Evaluasi yang umum digunakan dalam forecasting antara lain:

  • Mean Absolute Error (MAE): Rata-rata dari selisih absolut antara nilai prediksi dan nilai sebenarnya.

  • Mean Squared Error (MSE): Rata-rata dari kuadrat selisih antara nilai prediksi dan nilai sebenarnya.

  • Root Mean Squared Error (RMSE): Akar kuadrat dari MSE.

  • Mean Absolute Percentage Error (MAPE): Rata-rata persentase kesalahan absolut antara nilai prediksi dan nilai sebenarnya.

Apakah Metrics Evaluasi yang lebih kecil lebih baik?#

Ya, dalam sebagian besar kasus, Metrics Evaluasi yang lebih kecil menunjukkan performa model yang lebih baik, karena nilai yang lebih kecil menandakan kesalahan prediksi yang lebih rendah.

Apa perbedaan antara MAE, MSE, dan RMSE?#

Perbedaan antara ketiga metrik ini terletak pada cara menghitung dan satuan hasil. MAE menghitung selisih absolut, MSE menghitung kuadrat selisih, dan RMSE adalah akar kuadrat dari MSE.

Apakah ada Metrics Evaluasi yang lebih baik daripada yang lain?#

Tidak ada Metrics Evaluasi yang secara mutlak lebih baik daripada yang lain. Pilihan metrik tergantung pada sifat data dan tujuan evaluasi. Misalnya, MAE lebih tahan terhadap outlier daripada MSE, tetapi MSE memberikan lebih banyak penalti pada kesalahan besar.

Bagaimana cara memilih Metrics Evaluasi yang tepat?#

Pemilihan Metrics Evaluasi tergantung pada konteks forecasting dan tujuan bisnis. Misalnya, jika kesalahan prediksi yang besar berdampak negatif secara finansial, maka MAE atau MAPE mungkin lebih cocok. Namun, jika ingin menekankan kesalahan besar, maka MSE atau RMSE bisa menjadi pilihan.

Apa yang harus dilakukan jika ada kesalahan yang berbeda dalam forecasting pada titik waktu yang berbeda?#

Anda dapat menggunakan berbagai Metrics Evaluasi untuk mengevaluasi kinerja model pada berbagai skenario. Misalnya, Anda dapat menggunakan Metrics Evaluasi Rolling Window untuk mengevaluasi kinerja model secara berulang pada setiap periode waktu.

Apa informasi yang coba ditunjukan dari hasil forecast yhat lower dan yhat upper, besarannya berdasarkan apa?#

Untuk besaran nilainya sebetulnya tergantung dengan nilai prediksinya. Untuk interval antara yhat_lower dan upper secara default adalah 80%, atau kita mentoleransi 20% error. Referensi: https://facebook.github.io/prophet/docs/uncertainty_intervals.html#uncertainty-in-the-trend

Kita bisa menyesuaikan apabila ingin toleransi errornya lebih kecil, yaitu dengan menggunakan parameter prophet(df, interval.width = 0.95). Kita mentoleransi hanya 5% error saja.

Expanding Window Cross Validation#

Apa itu Expanding Window Cross Validation?#

Expanding Window Cross Validation adalah teknik validasi silang yang digunakan untuk mengevaluasi performa model forecasting pada data time series. Pada setiap iterasi, data latih diperpanjang secara berurutan, dan model diuji pada observasi terakhir.

Mengapa Expanding Window Cross Validation lebih cocok untuk data time series?#

Expanding Window Cross Validation lebih cocok untuk data time series karena mencerminkan pengujian model pada data yang lebih baru seiring berjalannya waktu. Hal ini memungkinkan evaluasi performa model yang lebih realistis.

Hyperparameter Tuning in Prophet:#

Apa itu Hyperparameter Tuning dalam konteks model forecasting Prophet?#

Hyperparameter Tuning adalah proses mencari kombinasi hyperparameter yang optimal untuk model forecasting Prophet. Hyperparameter adalah parameter yang tidak dipelajari oleh model, dan pemilihan yang tepat dapat meningkatkan performa model.

Apa saja hyperparameter yang perlu di-tune dalam Prophet?#

Beberapa hyperparameter yang perlu di-tune dalam Prophet adalah:

  • changepoint_prior_scale: Parameter ini mengontrol fleksibilitas model dalam menangkap perubahan tren. Nilai yang lebih besar membuat model lebih fleksibel.

  • seasonality_prior_scale: Parameter ini mengontrol fleksibilitas model dalam menangkap pola musiman. Nilai yang lebih besar membuat model lebih fleksibel terhadap pola musiman.

  • holidays_prior_scale: Parameter ini mengontrol pengaruh hari libur pada model. Nilai yang lebih besar membuat hari libur memiliki pengaruh yang lebih signifikan.

Bagaimana cara melakukan Hyperparameter Tuning dalam Prophet?#

Anda dapat melakukan Hyperparameter Tuning dalam Prophet dengan menggunakan metode seperti Grid Search atau Random Search. Dalam Grid Search, Anda mencoba kombinasi hyperparameter yang telah ditentukan sebelumnya, sedangkan dalam Random Search, Anda mencoba kombinasi secara acak dari rentang hyperparameter yang diberikan.

Bagaimana cara mengevaluasi performa model saat melakukan Hyperparameter Tuning?#

Anda dapat menggunakan metrik evaluasi forecasting seperti Mean Absolute Error (MAE), Mean Squared Error (MSE), atau Root Mean Squared Error (RMSE) untuk mengevaluasi performa model dalam setiap kombinasi hyperparameter.

Berapa banyak kombinasi hyperparameter yang harus dicoba dalam proses Hyperparameter Tuning?#

Jumlah kombinasi hyperparameter yang harus dicoba tergantung pada kompleksitas masalah dan sumber daya yang tersedia. Jika memungkinkan, cobalah untuk mencoba sejumlah kombinasi yang mencakup rentang hyperparameter yang luas.

Apakah ada metode otomatis untuk melakukan Hyperparameter Tuning dalam Prophet?#

Ya, ada pendekatan otomatis seperti menggunakan library seperti Optuna atau Hyperopt yang dapat melakukan pencarian hyperparameter secara otomatis untuk Anda dengan menggunakan algoritma pencarian yang cerdas.

Bagaimana mengatur n_changepoint pada Prophet? Dan pada saat apa hal ini direkomendasikan untuk dilakukan?#

n_changepoints (default = 25): mengubah jumlah titik perubahan trend secara langsung. Membantu menangkap pola terutama ketika data yang digunakan dalam analisis terbatas. Jumlah change points default (25) mungkin bisa dikurangi atau disesuaikan agar lebih cocok dengan karakteristik data yang ada.

  • Semakin banyak n maka trend akan lebih detail dalam melihat pola

  • Semakin sedikit n maka trend akan lebih general dalam melihat pola

Walaupun menurut dokumentasi Prophet, parameter ini tidak direkomendasikan untuk dituning, hal ini bisa dilanggar apabila data historis yang kita miliki cukup sedikit. Untuk codenya dapat dituning pada saat inisialisasi model Prophet()

Output visualisasi:

Terdapat sebanyak 10 titik changepoints yang dijadikan sebagai titik perubahan trend

Untuk data yang sedikit, tidak bijaksana apabila kita gunakan default parameter n_changepoint = 25 dikarenakan Trend adalah gambaran general suatu pola timeseries. Sehingga harus diatur juga untuk banyak sedikitnya titik perubahan pada trend

Fourier Order#

Apa itu Fourier Order dalam konteks forecasting in time series?#

Fourier Order adalah hyperparameter yang digunakan dalam model forecasting time series untuk menangani komponen musiman. Ini mengontrol seberapa banyak pola musiman yang dapat ditangkap oleh model.

Bagaimana Fourier Order berfungsi dalam model forecasting time series?#

Dalam forecasting time series dengan komponen musiman, Fourier Order menentukan seberapa banyak harmonik sinusoidal yang akan digunakan untuk memodelkan pola musiman. Semakin tinggi nilai Fourier Order, semakin banyak frekuensi yang dianggap oleh model.

Bagaimana cara menentukan nilai Fourier Order yang optimal?#

Nilai Fourier Order yang optimal tergantung pada kompleksitas data time series dan frekuensi dari pola musiman yang ingin Anda tangkap. Anda dapat melakukan eksperimen dengan berbagai nilai Fourier Order dan memilih nilai yang memberikan hasil terbaik berdasarkan metrik evaluasi forecasting.

Apa dampak nilai Fourier Order yang terlalu rendah atau terlalu tinggi?#

Jika nilai Fourier Order terlalu rendah, model mungkin tidak mampu menangkap pola musiman yang kompleks. Sebaliknya, jika nilai Fourier Order terlalu tinggi, model mungkin menjadi terlalu kompleks dan mengalami overfitting pada data training.

Apakah Fourier Order diperlukan dalam semua model forecasting time series?#

Tidak, Fourier Order hanya diperlukan jika data time series memiliki komponen musiman yang signifikan. Jika data tidak menunjukkan pola musiman yang jelas, maka penggunaan Fourier Order mungkin tidak diperlukan.

Apakah nilai Fourier Order harus selalu bilangan bulat?#

Ya, nilai Fourier Order harus selalu berupa bilangan bulat positif. Ini karena jumlah harmonik sinusoidal haruslah bilangan bulat dan tidak dapat berupa bilangan pecahan.

Bagaimana cara mengimplementasikan Fourier Order dalam model forecasting time series?#

Implementasi Fourier Order tergantung pada library atau framework forecasting yang Anda gunakan. Misalnya, dalam Prophet, Anda dapat menambahkan komponen musiman dengan Fourier Order tertentu menggunakan metode add_seasonality().