Materi 10 · Advanced Techniques

Forecasting & Time Series

Prediksi masa depan dari data masa lalu. Trend, seasonality, ARIMA, Prophet, dan exponential smoothing — toolkit untuk demand planning, financial forecasting, dan workforce planning.

⏱ 28 Menit🎯 Intermediate📅 Forecasting

1. Anatomi Time Series

4 Komponen Utama

Trend: arah jangka panjang (naik / turun / flat).
Seasonality: pola berulang dalam periode tetap (mingguan, bulanan, tahunan).
Cyclical: fluktuasi jangka panjang non-fixed (siklus ekonomi).
Irregular / Noise: random variation yang tidak bisa diprediksi.

2. Decomposition

Additive Model Y = Trend + Seasonality + Residual
// Cocok kalau seasonal effect konstan
Multiplicative Model Y = Trend × Seasonality × Residual
// Cocok kalau seasonal effect proporsional dengan magnitude

Contoh: Penjualan ritel seasonal multiplicative — Lebaran lift 30% (proportional). Suhu harian additive — winter -20°C tetap konstan.

3. Metode Forecasting Klasik

MetodeKarakterKapan Pakai
NaiveŶ_t+1 = Y_tBaseline benchmark
Moving AverageRata-rata N period terakhirSmooth noise, identify trend
Exponential SmoothingRecent data weighted higherStable data tanpa seasonality
Holt's LinearES + trendData dengan trend tapi tanpa seasonality
Holt-WintersES + trend + seasonalityData dengan semua komponen
ARIMAAuto-regressiveSeries stationary
SARIMAARIMA + seasonalSeries dengan seasonality
Prophet (Meta)Decomposable, robustBusiness series, mudah dipakai

4. STATIONARITY

Wajib Stationary untuk ARIMA

Time series stationary = mean & variance konstan dari waktu ke waktu, tanpa trend/seasonality. ARIMA butuh ini. Jika tidak stationary: differencing (Y_t - Y_t-1) untuk hilangkan trend.

5. ARIMA — Auto Regressive Integrated Moving Average

ARIMA(p, d, q) p = order of AR (lag value)
d = degree of differencing
q = order of MA (lag error)
// Pakai ACF & PACF plot untuk identify p & q
SARIMA(p,d,q)(P,D,Q,m) (p,d,q): non-seasonal terms
(P,D,Q): seasonal terms
m: seasonal period (12 untuk monthly, 7 untuk weekly)

6. PROPHET — Modern Easy

Meta's Prophet — Robust & User-Friendly

Open source library dari Meta. Handle missing data, outliers, holidays, multiple seasonality automatically. Cukup butuh kolom 'ds' (date) dan 'y' (value). Best balance antara accuracy dan ease-of-use.

Prophet di Python from prophet import Prophet
m = Prophet()
m.fit(df)
future = m.make_future_dataframe(periods=30)
forecast = m.predict(future)
m.plot(forecast)

7. EVALUATION METRICS

Forecast Accuracy MAE = (1/n) × Σ|y - ŷ| // intuitive
MAPE = (1/n) × Σ|y - ŷ|/y × 100% // percentage error
RMSE = √((1/n) × Σ(y - ŷ)²) // penalize big errors
MASE = MAE / MAE_naive // vs naive baseline

Selalu Pakai Baseline

Model ARIMA fancy tapi MAE-nya 1.2× naive forecast = useless. Naive forecast (Y_t+1 = Y_t) atau seasonal naive harus jadi floor benchmark. Model harus beat ini significantly.

8. Backtesting & Walk-Forward Validation

9. Studi Kasus

Demand Forecasting di E-Commerce

E-commerce besar pakai Prophet + holiday effect untuk forecast inventory. Mereka encode Lebaran, Black Friday, gaji-an (tanggal 25-akhir bulan) sebagai event. Hasilnya: stockout berkurang 38%, overstock berkurang 22%. Pelajaran: domain knowledge mengalahkan model fancy.

📝 Tugas Praktik

  1. Cari dataset time series di Kaggle (mis. retail sales monthly).
  2. Plot data. Identifikasi trend, seasonality, outlier secara visual.
  3. Decompose data dengan statsmodels Python.
  4. Train 3 model: Naive baseline, Holt-Winters, Prophet.
  5. Hitung MAE, MAPE, RMSE pada test set. Bandingkan vs baseline.
  6. Forecast 12 period ke depan + confidence interval.

Rangkuman