Pada chapter Tren dan Musiman kita mengukur dua pola secara terpisah: slope sekitar 182 Rp per bulan untuk beras, dan indeks 1.45 untuk kuartal puncak es krim. Dekomposisi bekerja ke arah sebaliknya — diberi satu deret mentah, ia memecahnya menjadi komponen-komponen tersebut sekaligus, lalu menyerahkan setiap komponen untuk dibaca sendiri-sendiri. Hasilnya menjawab pertanyaan yang sering diajukan pengelola: berapa level dasar penjualan saat ini, berapa lonjakan musiman yang wajar diantisipasi, dan apakah masih ada fluktuasi yang tidak dijelaskan keduanya. Chapter ini memilih antara bentuk additive dan multiplicative, menjalankan dekomposisi klasik empat langkah pada penjualan es krim, dan menutup dengan pengenalan STL sebagai versi modern.
Satu Deret, Tiga Komponen #
Dekomposisi menyatakan bahwa setiap observasi Yt adalah gabungan dari tren Tt, musiman St, dan residual Rt. Dua cara penggabungan yang lazim:
additive : Yt = Tt + St + Rt
multiplicative : Yt = Tt × St × RtPada bentuk additive, musiman menambah atau mengurangi nilai tren dengan besaran porsi yang tetap. Pada bentuk multiplicative, musiman bekerja sebagai pengali — misalnya Q2 senilai 1.45 kali tren — sehingga lonjakan membesar ketika level deret membesar. Residual Rt adalah sisa yang tidak dijelaskan tren maupun musiman; komponen ini idealnya kecil dan naik-turun tanpa pola.
Additive atau Multiplicative #
Pilihan bentuk ditentukan oleh perilaku amplitudo musiman — jarak puncak ke lembah pola musiman — seiring naiknya level deret. Bila amplitudo kira-kira tetap meski level naik, musiman bekerja dengan besaran tetap dan bentuk additive tepat. Bila amplitudo ikut membesar sebanding level, musiman bekerja secara proporsional dan bentuk multiplicative yang tepat.
| Ciri deret | Bentuk yang dipakai | Contoh |
|---|---|---|
| amplitudo musiman kira-kira konstan | additive | es krim kafe kita |
| amplitudo musiman tumbuh seiring level | multiplicative | penjualan daring yang bertumbuh cepat |
Es krim kita termasuk kelompok pertama. Rentang puncak-ke-lembah tahun pertama adalah Q2 − Q4 = 320 − 120 = 200 porsi, dan tahun kedua 335 − 130 = 205 porsi — nyaris sama, padahal level rata-rata naik dari 220 ke 232.5 porsi. Sebaliknya, toko daring yang tumbuh 10 persen per bulan akan melihat lonjakan kampanye akhir tahun yang tadinya 500 unit menjadi 800 unit bukan karena kampanye makin berhasil, melainkan karena level dasarnya naik — ciri khas multiplicative. Trik yang sering dipakai: logaritma mengubah perkalian menjadi penjumlahan (materi chapter Eksponen dan Logaritma), sehingga deret multiplicative bisa didekomposisi dalam bentuk additive setelah ditransformasi.
Empat Langkah Dekomposisi Klasik #
Dekomposisi klasik additive pada data kuartalan berjalan dalam empat langkah berurutan:
- Taksir tren Tt dengan MA(4) terpusat — jendela satu putaran musiman penuh.
- Detrend: hitung Dt = Yt − Tt, yakni nilai yang tersisa setelah tren dikeluarkan.
- Bentuk komponen musiman St: rata-rata Dt untuk setiap posisi kuartal (Q1 sampai Q4).
- Hitung residual: Rt = Yt − Tt − St.
Data es krim delapan kuartal sebagai bahan kerja:
| Kuartal ke- | Posisi | Penjualan (porsi) |
|---|---|---|
| 1 | Q1 | 180 |
| 2 | Q2 | 320 |
| 3 | Q3 | 260 |
| 4 | Q4 | 120 |
| 5 | Q1 | 190 |
| 6 | Q2 | 335 |
| 7 | Q3 | 275 |
| 8 | Q4 | 130 |
MA(4) terpusat hanya menghasilkan tren untuk kuartal ke-3 sampai ke-6 — empat titik tengah — karena dua kuartal di setiap ujung tidak punya jendela penuh. Keterbatasan ujung seperti ini melekat pada dekomposisi klasik dan kita bahas lagi setelah tabel hasil.
Menjalankan Dekomposisi pada Es Krim #
Langkah 1 — Tren dengan MA(4) terpusat #
Lima jendela bergeser masing-masing memuat empat kuartal berurutan, lalu hasilnya dirata-rata berpasangan agar kembali duduk pada posisi kuartal:
MA(4) posisi 2.5 = (180 + 320 + 260 + 120) / 4 = 220.0
MA(4) posisi 3.5 = (320 + 260 + 120 + 190) / 4 = 222.5
MA(4) posisi 4.5 = (260 + 120 + 190 + 335) / 4 = 226.25
MA(4) posisi 5.5 = (120 + 190 + 335 + 275) / 4 = 230.0
MA(4) posisi 6.5 = (190 + 335 + 275 + 130) / 4 = 232.5
tren T3 = (220.0 + 222.5) / 2 = 221.25
tren T4 = (222.5 + 226.25) / 2 = 224.375
tren T5 = (226.25 + 230.0) / 2 = 228.125
tren T6 = (230.0 + 232.5) / 2 = 231.25Mengapa jendela empat kuartal menghasilkan tren yang bersih? Setiap jendela memuat tepat satu Q1, satu Q2, satu Q3, dan satu Q4, sehingga kenaikan musiman pada satu kuartal tepat tertutup oleh penurunan musiman pada kuartal lain — musiman meniadakan dirinya sendiri di dalam rata-rata. Jendela genap tidak punya titik tengah, karena itulah hasil MA(4) dirata-ratakan berpasangan seperti pada chapter Moving Average.
Langkah 2 — Detrend #
Nilai detrend adalah selisih data terhadap tren:
D3 = 260 − 221.25 = 38.75
D4 = 120 − 224.375 = −104.375
D5 = 190 − 228.125 = −38.125
D6 = 335 − 231.25 = 103.75Nilai positif berarti penjualan berada di atas tren, nilai negatif berada di bawah tren. Kuartal ke-4 (120 porsi) tercatat jauh di bawah trennya, dan kuartal ke-6 (335 porsi) jauh di atas — dua kuartal inilah pembawa informasi musiman terbesar.
Langkah 3 — Komponen musiman per kuartal #
Kuartal ke-3 menempati posisi Q3, ke-4 Q4, ke-5 Q1, dan ke-6 Q2 — setiap posisi kuartal muncul tepat satu kali, sehingga rata-rata detrended tiap posisi adalah nilai itu sendiri:
| Posisi | Komponen musiman St (porsi) |
|---|---|
| Q1 | −38.125 |
| Q2 | +103.75 |
| Q3 | +38.75 |
| Q4 | −104.375 |
Keempat komponen berjumlah −38.125 + 103.75 + 38.75 − 104.375 = 0 — sudah seimbang tanpa perlu penyesuaian, sesuai sifat ideal musiman additive: menaikkan dan menurunkan penjualan secara berimbang sepanjang satu tahun. Q2 diharapkan menjual 103.75 porsi di atas tren, dan Q4 104.375 porsi di bawah tren.
Langkah 4 — Residual #
Residual adalah sisa yang tidak dijelaskan tren dan musiman:
R3 = 260 − 221.25 − 38.75 = 0.00
R4 = 120 − 224.375 − (−104.375) = 0.00
R5 = 190 − 228.125 − (−38.125) = 0.00
R6 = 335 − 231.25 − 103.75 = 0.00| Kuartal ke- | Data (porsi) | Tren Tt | Musiman St | Residual Rt |
|---|---|---|---|---|
| 3 (Q3) | 260 | 221.250 | 38.750 | 0.00 |
| 4 (Q4) | 120 | 224.375 | −104.375 | 0.00 |
| 5 (Q1) | 190 | 228.125 | −38.125 | 0.00 |
| 6 (Q2) | 335 | 231.250 | 103.750 | 0.00 |
Membaca Hasil Dekomposisi #
Tiga komponen menceritakan tiga hal berbeda tentang kafe tersebut. Tren naik dari 221.25 ke 231.25 porsi — sekitar 3.33 porsi per kuartal — artinya permintaan dasar tumbuh tipis, bukan stagnan. Musiman jauh lebih kuat daripada trennya: rentang Q4 ke Q2 pada komponen musiman mencapai 103.75 + 104.375 = 208.125 porsi, sehingga penjualan puncak sekitar tiga kali penjualan terendah (335 berbanding 120). Residual nol pada empat titik tengah menegaskan bahwa tren dan musiman cukup menjelaskan seluruh pergerakan yang ada.
Bagi pengelola, pembacaan ini langsung bisa ditindaklanjuti: stok dan jadwal pegawai disiapkan mengikuti pola Q2 dan Q4, sementara pertumbuhan 3.33 porsi per kuartal menjadi dasar proyeksi kapasitas jangka panjang. Kuartal ke-1, ke-2, ke-7, dan ke-8 tidak punya tren MA karena jendela penuh tidak tersedia di ujung — keterbatasan bawaan dekomposisi klasik; bila tren untuk ujung diperlukan, garis regresi waktu dari chapter Tren dan Musiman bisa melengkapinya.
STL dan Dekomposisi Modern #
Dekomposisi klasik yang kita jalankan bersifat kaku: komponen musiman dianggap tetap dari tahun ke tahun, nilai ujung tidak tersedia, dan satu pencilan dapat merusak rata-rata. Versi modern yang paling banyak dipakai adalah STL (Seasonal-Trend decomposition using Loess): pola musimannya boleh berubah perlahan mengikuti data, komponennya tahan terhadap pencilan (robust), dan tidak meninggalkan titik kosong di ujung. STL tersedia melalui pustaka statsmodels dan menjadi pilihan utama analisis nyata; kerangka berpikirnya tetap sama dengan empat langkah klasik yang barusan kita kerjakan manual. Perbandingan metode dekomposisi termuat dalam NIST/SEMATECH e-Handbook , dan OpenIntro Statistics menyajikan latar regresinya.
Dekomposisi Manual dengan Python #
Cuplikan berikut menjalankan keempat langkah pada deret es krim:
es_krim = [180, 320, 260, 120, 190, 335, 275, 130]
ma4 = [sum(es_krim[i:i + 4]) / 4 for i in range(5)]
tren = {t: (ma4[t - 3] + ma4[t - 2]) / 2 for t in range(3, 7)}
detrend = {t: es_krim[t - 1] - tren[t] for t in range(3, 7)}
posisi_kuartal = {3: "Q3", 4: "Q4", 5: "Q1", 6: "Q2"}
musiman = {}
for t in range(3, 7):
musiman[posisi_kuartal[t]] = detrend[t]
print(f"{'t':>2} {'kuartal':>8} {'data':>5} {'tren':>8} {'musiman':>9} {'residual':>9}")
for t in range(3, 7):
kuartal = posisi_kuartal[t]
s = musiman[kuartal]
r = es_krim[t - 1] - tren[t] - s
print(f"{t:>2} {kuartal:>8} {es_krim[t - 1]:>5} {tren[t]:>8.3f} {s:>9.3f} {r:>9.2f}")
print(f"jumlah komponen musiman: {sum(musiman.values()):.3f}")Output yang Dihasilkan:
t kuartal data tren musiman residual
3 Q3 260 221.250 38.750 0.00
4 Q4 120 224.375 -104.375 0.00
5 Q1 190 228.125 -38.125 0.00
6 Q2 335 231.250 103.750 0.00
jumlah komponen musiman: 0.000Mari kita bedah kode di atas:
- Baris 3 (
ma4): lima jendela bergeseres_krim[i:i+4]menghasilkan MA(4) pada posisi 2.5 sampai 6.5. - Baris 4 (
tren): dictionary comprehension merata-ratakan pasangan MA(4) sehingga tren duduk kembali pada posisi kuartal 3 sampai 6 — langkah centered MA. - Baris 5-9 (
detrenddanmusiman): selisih data terhadap tren dikelompokkan menurut posisi kuartalnya; dengan satu nilai per posisi, rata-ratanya adalah nilai itu sendiri. - Baris 18 (
r): residual = data − tren − musiman menghasilkan 0.00 pada seluruh kuartal, dan baris penutup menegaskan jumlah komponen musiman 0.000 — keduanya sesuai tabel manual di atas.
Dekomposisi menjelaskan masa lalu dengan memecahnya menjadi bagian-bagian yang bisa dibaca. Pekerjaan analisis yang tersisa bergerak ke arah sebaliknya — menyusun komponen-komponen itu menjadi prediksi, lalu menghadapi ujian paling jujur dalam statistika: seberapa dekat prediksi kita dengan kenyataan yang belum terjadi. Chapter Evaluasi Forecast menyiapkan alat ukurnya.