ARIMA & SARIMA: Model Statistik Klasik untuk Deret Waktu
Membongkar tiga huruf ARIMA, lalu menambahkan “indra musim” lewat SARIMA, lengkap dengan perhitungan nyata untuk menentukan p, d, q.
ARIMA & SARIMA: Model Statistik Klasik untuk Deret Waktu

Membongkar tiga huruf ARIMA, lalu menambahkan “indra musim” lewat SARIMA, lengkap dengan perhitungan nyata untuk menentukan p, d, q.
Setelah menguasai keluarga model sederhana (naive, moving average, exponential smoothing), saatnya naik ke salah satu kerangka paling kuat dan teruji dalam forecasting statistik: ARIMA dan saudara musimannya, SARIMA.
Banyak orang keder melihat namanya yang penuh singkatan dan istilah seperti “stasioneritas”, “differencing”, dan “ACF/PACF”. Padahal, kalau dibongkar pelan-pelan, semuanya masuk akal. Artikel ini membongkarnya sampai tuntas, termasuk bagian yang paling sering ditanyakan: bagaimana cara menentukan angka-angka modelnya lewat perhitungan nyata (uji ADF, nilai ACF/PACF, dan perbandingan AIC). Kita pakai satu studi kasus data penjualan ritel yang sama sepanjang artikel.
ARIMA
Sampai sejauh ini, kita sudah menaklukkan keluarga model “pemulusan”: naive, moving average, dan exponential smoothing. Semuanya berbagi satu sifat: mereka menghaluskan masa lalu untuk menebak masa depan.
Sekarang kita masuk ke model dengan reputasi paling menakutkan di dunia forecasting: ARIMA. Banyak orang mundur begitu melihat namanya, ditambah istilah seperti “stasioneritas”, “differencing”, dan “ACF/PACF”. Padahal, kalau dibongkar pelan-pelan, ARIMA sebenarnya hanya gabungan tiga ide sederhana.
Bagian ini membongkarnya sampai tuntas, termasuk bagian yang paling sering ditanyakan: bagaimana cara menentukan angka-angkanya dengan membaca grafik ACF dan PACF, dan bagaimana membaca grafik hasilnya.
Apa Itu ARIMA?
ARIMA adalah singkatan dari AutoRegressive Integrated Moving Average. Ia adalah model statistik untuk meramal deret waktu satu variabel, dengan tiga komponen yang ditulis sebagai ARIMA(p, d, q).
Tiga huruf, tiga angka. Mari bongkar satu per satu, ini kuncinya.
AR (AutoRegressive): angka p
“Auto” berarti diri sendiri; “regressive” berarti memprediksi. Jadi AR memprediksi nilai sekarang dari nilai-nilai sebelumnya. Angka p menentukan berapa banyak nilai ke belakang yang dipakai.
Analogi: suhu hari ini biasanya mirip dengan suhu 1–2 hari kemarin. Kalau kemarin panas, hari ini cenderung panas juga. AR menangkap “kelembaman” semacam ini. AR(2) berarti “nilai hari ini diperkirakan dari 2 nilai terakhir”.
I (Integrated): angka d
Ini bagian differencing. Banyak data punya trend sehingga tidak stasioner, padahal ARIMA butuh data stasioner (akan dijelaskan sebentar lagi). Angka d = berapa kali kita mengambil selisih antar periode agar data jadi "tenang".
Analogi: alih-alih melihat posisi mobil (yang terus berubah karena melaju), kita lihat kecepatannya (yang relatif stabil). Differencing mengubah “posisi” menjadi “perubahan”. Contoh: data 100, 110, 120, 130 (naik terus) → selisihnya 10, 10, 10 (stabil!).
MA (Moving Average): angka q
Hati-hati: ini BUKAN moving average (rata-rata bergerak) dari artikel sebelumnya. Di dalam ARIMA, “MA” berarti nilai sekarang dipengaruhi oleh error (kejutan) dari ramalan-ramalan sebelumnya. Angka q = berapa banyak error masa lalu yang dipakai.
Analogi: kalau kemarin kamu meramal terlalu rendah (ada “kejutan” karena ternyata penjualan melonjak), kamu belajar dari kejutan itu untuk mengoreksi ramalan hari ini. MA menangkap koreksi terhadap kejutan-kejutan masa lalu.
Jadi ARIMA(1, 1, 1) berarti: pakai 1 nilai sebelumnya (AR), lakukan differencing 1 kali (I), dan pakai 1 error sebelumnya (MA).
Rumusnya (untuk data yang sudah di-differencing, ditulis y′):
y'(t) = c + (φ1·y'(t-1) + ... + φp·y'(t-p)) ← bagian AR
+ (θ1·ε(t-1) + ... + θq·ε(t-q)) ← bagian MA
+ ε(t)
dengan φ = koefisien AR, θ = koefisien MA, ε = error, c = konstanta.
Konsep Wajib: Stasioneritas & Differencing
ARIMA hanya bekerja kalau data stasioner, artinya karakter statistiknya (rata-rata, sebaran) tidak berubah seiring waktu. Datanya “tenang” dan konsisten, tidak merangkak naik dan tidak makin liar.
Kenapa? Karena ARIMA belajar dari pola yang stabil. Kalau rata-rata data terus berubah karena trend, model kesulitan menemukan pola yang ajek, ibarat mencoba menghafal wajah yang terus berganti rupa.
Solusinya differencing: lihat selisih antar periode, bukan nilai mentah.

Cara membacanya: panel atas jelas menanjak (tidak stasioner). Panel bawah berfluktuasi datar di sekitar garis konstan (stasioner). Jumlah differencing yang dibutuhkan agar data terlihat seperti panel bawah = nilai d. Biasanya d = 1 cukup. Untuk memastikan, gunakan uji statistik ADF test (kalau p-value < 0,05 → stasioner).
Bagian yang Paling Ditanyakan: Membaca ACF & PACF untuk Menentukan p dan q
Inilah jantung ARIMA, dan bagian yang paling sering bikin bingung. Kita bahas paling pelan.
Bekal dulu:
- Lag = jarak mundur dalam waktu (lag 1 = 1 periode lalu).
- Autokorelasi = korelasi data dengan dirinya sendiri di masa lalu. Nilainya −1 sampai +1.
ACF (Autocorrelation Function) menunjukkan autokorelasi pada setiap lag. Gunanya: menentukan q (MA).

PACF (Partial Autocorrelation Function) menunjukkan korelasi “langsung” pada tiap lag setelah membuang pengaruh lag di antaranya (membersihkan efek rambatan). Gunanya: menentukan p (AR).

Cara membaca kedua grafik, kuncinya cuma dua pola:
- “Cut off” (terputus): batang signifikan sampai lag tertentu, lalu tiba-tiba semuanya masuk ke dalam pita biru. Seperti tebing terjun.
- “Tails off” (meluruh): batang mengecil pelan-pelan secara bertahap. Seperti tangga menurun landai.

Aturan praktisnya:

Resep lengkap menentukan (p, d, q):
- Tentukan
d: lakukan differencing sampai data stasioner. - Tentukan
p: lihat PACF, di lag berapa ia cut off. - Tentukan
q: lihat ACF, di lag berapa ia cut off. - Bandingkan beberapa kandidat dengan AIC/BIC (makin kecil makin baik).
Untuk yang ingin praktis: ada
auto_arima(pustakapmdarima) yang otomatis mencoba banyak kombinasi dan memilih AIC terkecil. Tapi memahami ACF/PACF tetap penting untuk sanity check dan benar-benar mengerti datamu.
Membaca Grafik Hasil ARIMA
Setelah model dilatih, ini bentuk output yang akan kamu lihat:
Cara membacanya:
- Garis hitam = data historis.
- Garis merah = ramalan utama ARIMA.
- Area merah samar = interval ketidakpastian 95% (rentang nilai yang masuk akal).
Perhatikan tiga hal:
- Garis ramalan biasanya melengkung lalu mendatar. Ini wajar, pengaruh komponen AR/MA memudar seiring jarak, sehingga ramalan jangka panjang cenderung menuju rata-rata.
- Pita ketidakpastian melebar makin ke kanan. Ini sehat dan jujur: makin jauh meramal, makin tidak pasti.
- Lebar pita memberi tahu seberapa yakin model. Pita sempit = yakin; pita lebar = banyak ketidakpastian.
Memeriksa Apakah Modelnya Bagus: Membaca Residual
ARIMA punya satu langkah diagnostik penting: memeriksa residual (selisih data asli dan tebakan model). Prinsipnya: model yang baik menyisakan residual yang acak (white noise), tanda bahwa semua pola sudah ditangkap.


Cara membacanya:
- Residual plot harus acak di sekitar nol, tanpa pola/gelombang. Kalau masih bergelombang → model melewatkan sesuatu (mungkin butuh komponen musiman → SARIMA).
- ACF residual: idealnya hampir semua batang di dalam pita biru. Kalau ada yang menembus keluar → masih ada autokorelasi tersisa.
- Secara formal, uji Ljung-Box: kalau p-value > 0,05, residual sudah seperti white noise (bagus).
Selain itu, ukur akurasi pada data uji dengan RMSE, MAE, MAPE, dan bandingkan dengan naive lewat MASE.
Studi Kasus: Menentukan p, d, q dengan Perhitungan Nyata
Teori sudah cukup, mari terapkan ke data nyata dan tunjukkan perhitungan sebenarnya. Kita pakai data penjualan ritel bulanan 72 bulan (2018–2023): 60 bulan untuk latih, 12 bulan terakhir untuk uji.
Kita ikuti metodologi Box-Jenkins, kerangka baku 4 tahap untuk membangun model ARIMA:
Tahap 1, Identifikasi: menentukan d (uji ADF)
Pertama, apakah data stasioner? Kita jalankan uji ADF (Augmented Dickey-Fuller). Aturannya: kalau p-value < 0,05, data stasioner.

Hasilnya jelas: data asli sangat tidak stasioner (p hampir 1), tapi setelah satu kali differencing langsung stasioner. Maka d = 1.
Tahap 1 (lanjut): menentukan p dan q (nilai ACF/PACF)
Sekarang kita hitung nilai ACF dan PACF pada data yang sudah di-differencing. Ambang signifikansi untuk data ini adalah ±0,26 (nilai di luar itu = bermakna):

Cara membacanya:
- Lag 1 besar di ACF dan PACF (0,58 keduanya) → ada komponen AR dan/atau MA orde rendah.
- PACF terputus lebih cepat setelah beberapa lag → memberi petunjuk orde AR (p).
- Yang paling mencolok: ACF di lag 12 = 0,65, jauh di atas ambang 0,26! Ini alarm musiman: data berulang tiap 12 bulan. Petunjuk kuat bahwa ARIMA biasa tidak akan cukup, dan kita butuh SARIMA (bagian berikutnya).
Tahap 2, Estimasi: memilih model dengan AIC
Untuk angka p dan q yang tepat, kita coba beberapa kombinasi dan bandingkan AIC (makin kecil makin baik):

AIC memilih ARIMA(2,1,2). (Di praktik, auto_arima melakukan pencarian ini otomatis.)
Tahap 3 & 4: Diagnostik & Ramalan
Setelah memeriksa residualnya acak (lihat bagian sebelumnya), kita ramalkan 12 bulan dan ukur akurasinya pada data uji:

Catatan metrik: MASE di sini memakai penyebut seasonal naive (lag-12), konvensi yang tepat untuk data musiman (Hyndman & Koehler, 2006; Makridakis dkk., 2020). MASE < 1 berarti lebih baik daripada patokan musiman.
Vonis: MAPE 6,69% tergolong baik, dan MASE musiman 0,71 (di bawah 1) berarti ARIMA sudah mengalahkan patokan seasonal naive. Tapi ingat lonjakan ACF di lag 12 tadi: ARIMA biasa tidak menangkap musiman secara eksplisit, sehingga masih menyisakan banyak ruang perbaikan. Model yang menangkap musiman akan jauh lebih akurat, di bagian SARIMA berikutnya, MAPE-nya terpangkas drastis menjadi 2,01%.
Kelebihan ARIMA
- Sangat kuat dan fleksibel untuk data satu variabel; bisa menangkap beragam pola lewat kombinasi p, d, q.
- Fondasi statistik kokoh, teruji puluhan tahun, dengan teori yang matang.
- Memberi interval ketidakpastian secara alami, penting untuk manajemen risiko.
Kekurangan dan Keterbatasan
- Butuh data distasionerkan dulu (langkah persiapan ekstra).
- Menentukan p, d, q membingungkan pemula (walau
auto_arimamembantu). - Versi dasarnya tidak menangani musiman (untuk itu SARIMA) dan tidak memakai variabel eksternal (untuk itu ARIMAX).
- Mengasumsikan hubungan linear, kurang cocok untuk pola nonlinear rumit.
Kapan Dipakai?
Deret satu variabel tanpa musiman kuat, data finansial, ekonomi, indikator bisnis bulanan, atau data apa pun yang punya struktur autokorelasi tapi tanpa pola musiman dominan.
Kapan dihindari: data dengan musiman jelas (pakai SARIMA), atau saat faktor eksternal penting (pakai ARIMAX).
Aplikasi Nyata
- Peramalan indikator ekonomi (inflasi, suku bunga, PDB).
- Analisis & peramalan data finansial jangka pendek.
- Peramalan permintaan untuk produk tanpa musiman kuat.
- Dasar bagi model lanjutan seperti SARIMA dan ARIMAX.
Jebakan Umum
- Over-differencing: melakukan differencing terlalu banyak justru menambah noise. Kalau data sudah stasioner, berhenti.
- Mengabaikan diagnostik residual: model yang “jadi” belum tentu baik, selalu periksa residualnya.
- Memaksakan ARIMA pada data musiman: hasilnya akan buruk; gunakan SARIMA.
- Terlalu percaya
auto_arima: ia alat bantu, bukan pengganti pemahaman. Selalu cek hasilnya masuk akal.
Kode Python
from statsmodels.tsa.arima.model import ARIMA
# Latih ARIMA(p, d, q)
model = ARIMA(y_train, order=(2, 1, 1)).fit()
# Ramalan + interval ketidakpastian
pred = model.get_forecast(steps=12)
ramalan = pred.predicted_mean
interval = pred.conf_int(alpha=0.05) # interval 95%
# Periksa diagnostik residual
print(model.summary())
model.plot_diagnostics(figsize=(10, 7))
# Cari orde otomatis:
# from pmdarima import auto_arima
# print(auto_arima(y_train, seasonal=False).summary())
SARIMA
Di bagian sebelumnya, kita membongkar ARIMA dan menemukan ia sebenarnya sederhana: belajar dari nilai lalu (AR), melihat perubahan (I), dan mengoreksi kejutan (MA). Tapi ARIMA punya satu titik buta besar: ia tidak mengenali musim.
Padahal, sebagian besar data bisnis itu musiman. Penjualan ritel melonjak tiap Desember. Konsumsi listrik naik tiap musim panas. Kunjungan wisata berpola tahunan. Kalau kamu paksakan ARIMA biasa ke data seperti ini, ia akan melewatkan gelombang musimannya dan menghasilkan ramalan yang buruk.
Solusinya elegan dan logis: SARIMA, Seasonal ARIMA. Bagian ini menjelaskan bagaimana SARIMA menambahkan “indra musim” ke ARIMA, dan bagaimana membaca hasilnya.
Apa Itu SARIMA?
SARIMA adalah ARIMA + komponen musiman. Persis seperti ARIMA, tapi dengan satu set komponen tambahan khusus untuk menangani pola berulang. Notasi lengkapnya:
SARIMA(p, d, q)(P, D, Q)ₛ
Ada dua kelompok angka di sini:
- (p, d, q) huruf kecil = komponen biasa (non-musiman), sama persis seperti ARIMA. Ini membandingkan dengan periode-periode tetangga terdekat.
- (P, D, Q) huruf besar = komponen musiman. Logikanya identik (ada AR musiman, differencing musiman, MA musiman), tapi bekerja pada jarak musiman, bukan tetangga.
- s = panjang musim (12 untuk bulanan dengan pola tahunan, 7 untuk harian dengan pola mingguan, 4 untuk kuartalan).
Analogi: bayangkan ARIMA biasa hanya membaca “kemarin dan hari ini”. SARIMA membaca itu, plus “bulan ini tahun lalu dibanding bulan ini sekarang”. Ia punya dua cara melihat: jarak dekat (tetangga) dan jarak musiman (tahun lalu).
Contoh: SARIMA(1,1,1)(1,1,1)₁₂ untuk data bulanan berarti ada komponen AR/I/MA biasa, plus komponen AR/I/MA musiman yang membandingkan tiap bulan dengan bulan yang sama tahun lalu (jarak 12).
Differencing Musiman: Menghapus Pola Berulang
Sama seperti ARIMA butuh differencing untuk menghilangkan trend, SARIMA butuh seasonal differencing untuk menghilangkan pola musiman.
Bedanya: alih-alih mengurangi dengan periode sebelumnya, kita kurangi dengan periode musim yang sama sebelumnya.
Contoh konkret: untuk menghilangkan pola musiman tahunan pada data bulanan, hitung “Desember ini − Desember lalu”, “November ini − November lalu”, dan seterusnya. Kalau tiap Desember selalu melonjak, maka selisih “Desember − Desember” akan menghilangkan lonjakan itu, menyisakan data yang lebih stasioner.
Jumlah seasonal differencing yang dibutuhkan = nilai D (biasanya cukup D = 1).
Membaca ACF & PACF untuk Komponen Musiman
Cara menentukan (P, D, Q) sama logikanya dengan (p, d, q) di ARIMA, tapi kamu memperhatikan lag-lag musiman.
Kalau data bulanan, perhatikan apa yang terjadi di lag 12, 24, 36 (kelipatan musim):
- Lonjakan besar di lag 12 pada ACF → ada pola musiman yang kuat; pertimbangkan komponen MA musiman (Q).
- Lonjakan besar di lag 12 pada PACF → pertimbangkan komponen AR musiman (P).
Jadi kamu membaca grafik ACF/PACF dua kali: sekali untuk lag-lag awal (1, 2, 3 → menentukan p, q), dan sekali untuk lag-lag musiman (12, 24 → menentukan P, Q).
Untuk praktis: sekali lagi,
auto_arimadengan parameterseasonal=True, m=12akan mencoba banyak kombinasi musiman dan non-musiman sekaligus. Tapi memahami logikanya membuatmu bisa menilai apakah hasilnya masuk akal.
Membaca Grafik Hasil SARIMA
Inilah bagian yang memuaskan. Berbeda dari ARIMA biasa yang ramalannya cenderung mendatar, SARIMA meneruskan gelombang musiman ke masa depan:

Cara membacanya:
- Garis hitam = data historis (perhatikan polanya yang bergelombang musiman).
- Garis merah = ramalan SARIMA. Perhatikan ia terus bergelombang mengikuti irama musiman, bukan garis datar. Inilah bukti SARIMA “mengerti” musim.
- Area merah samar = interval ketidakpastian 95%, yang juga ikut bergelombang dan melebar makin ke depan.
Tanda model bagus: gelombang ramalan sinkron dengan gelombang data historis (puncak di bulan yang sama, lembah di bulan yang sama). Kalau gelombang ramalan tampak “geser” dari pola historis, ada yang salah dengan parameter musimannya.
Seperti ARIMA, periksa juga residualnya: residual yang baik tidak boleh menyisakan lonjakan di lag musiman pada ACF, kalau masih ada, berarti komponen musiman belum sepenuhnya tertangkap.
Studi Kasus: SARIMA Menyelamatkan Hari
Mari lanjutkan studi kasus dari bagian ARIMA, data penjualan ritel 72 bulan yang sama. Ingat masalahnya: ARIMA biasa hanya mencapai MAPE 6,69%, lumayan, tapi belum menangkap musiman (lonjakan ACF di lag 12 yang tak tertangani), sehingga masih menyisakan banyak ruang perbaikan.
Menentukan parameter musiman (D, P, Q)
Menentukan D: sama seperti d ditentukan uji ADF, kita cek apakah perlu seasonal differencing. Setelah differencing biasa + seasonal differencing, uji ADF memberi statistik −7,142 (p-value 0,0000), stasioner. Kombinasi ini menghilangkan trend dan musiman, jadi D = 1.
Menentukan P, Q: kita baca ACF/PACF di lag musiman (12, 24). Lonjakan ACF di lag 12 (0,65) menandakan perlu komponen musiman. Setelah membandingkan beberapa kandidat dengan AIC, model yang terpilih adalah SARIMA(1,1,0)(1,1,0)₁₂ (AIC 280,4).
Hati-hati membandingkan AIC: AIC hanya bisa dibandingkan antar-model dengan orde differencing yang sama. Karena SARIMA memakai seasonal differencing (D=1) sementara ARIMA tidak, AIC SARIMA (280) tidak bisa langsung dibandingkan dengan AIC ARIMA (478) dari bagian ARIMA sebelumnya, keduanya dihitung atas data yang sudah ditransformasi berbeda. Pakai AIC untuk memilih di dalam keluarga yang sama, lalu pakai metrik pada data uji (seperti tabel di bawah) untuk membandingkan lintas-keluarga.
Pelajaran nyata: pada dataset 60 titik ini, beberapa model SARIMA yang lebih rumis (seperti (1,1,1)(1,1,1)₁₂) gagal konvergen, bukti bahwa model musiman kompleks butuh data lebih banyak. Spesifikasi yang lebih sederhana sering lebih stabil. Ini sebabnya
auto_arimaberguna: ia menyaring kombinasi yang bermasalah.
Memeriksa diagnostik residual
Sebelum percaya pada model, kita periksa residualnya lewat plot diagnostik 4-panel khas SARIMA:

Cara membaca keempat panel:
- Kiri atas (Standardized residual): harus acak di sekitar nol tanpa pola. ✓
- Kanan atas (Histogram + KDE): kurva KDE (hijau) harus menyerupai kurva normal (oranye). Makin mirip, makin baik.
- Kiri bawah (Q-Q plot): titik harus menempel di garis diagonal → residual normal.
- Kanan bawah (Correlogram/ACF residual): semua batang harus di dalam pita biru → tidak ada autokorelasi tersisa.
Kalau keempatnya lulus, model layak dipakai.
Hasil & perbandingan semua model
Inilah momen yang ditunggu. Kita ramalkan 12 bulan dan bandingkan semua model dari seluruh seri ini pada data uji yang sama:
Model MAPE MASE Menangkap Naive 11,41% 1,27 — Moving Average(3) 11,32% 1,22 — Exp. Smoothing (SES) 11,41% 1,27 level Seasonal Naive 7,87% 0,85 musiman ARIMA(2,1,2) 6,69% 0,71 trend + autokorelasi Holt-Winters 3,34% 0,36 trend + musiman SARIMA 2,01% 0,22 semua → juara
Catatan metrik: MASE memakai penyebut seasonal naive (lag-12), konvensi yang tepat untuk data musiman (Hyndman & Koehler, 2006; Makridakis dkk., 2020). MASE < 1 = mengalahkan patokan musiman.
Vonis akhir: SARIMA memangkas MAPE dari 6,69% (ARIMA) menjadi 2,01%, dengan MASE musiman 0,22, jauh di bawah 1, mengalahkan patokan musiman telak. Polanya jelas terbaca: model buta-musiman (Naive, MA, SES) tertinggal di MAPE ~11% dengan MASE > 1, sementara model sadar-musiman (Seasonal Naive, Holt-Winters, SARIMA) memimpin dengan MASE < 1. ARIMA berada di tengah, ia menangkap trend tapi bukan musiman. SARIMA juara karena menangkap trend, autokorelasi, dan musiman sekaligus.
Catatan menarik: model yang hanya menangkap trend tanpa musiman, seperti Holt, justru bisa jauh meleset di data musiman ini (MAPE-nya melonjak hingga 58%!). Bukti tegas bahwa mencocokkan model dengan struktur data jauh lebih penting daripada kerumitan model.
Kelebihan SARIMA
- Semua kekuatan ARIMA, plus kemampuan menangani musiman secara eksplisit dan canggih.
- Sangat akurat untuk data musiman yang berperilaku konsisten dari tahun ke tahun.
- Memberi interval ketidakpastian yang juga mengikuti pola musiman.
Kekurangan dan Keterbatasan
- Banyak parameter (tujuh angka: p,d,q,P,D,Q,s) → lebih rumit ditentukan manual.
- Lebih lambat dilatih dibanding ARIMA biasa, terutama untuk musim panjang.
- Butuh data cukup panjang, minimal beberapa musim penuh agar pola musiman bisa dipelajari.
- Tetap mengasumsikan hubungan linear dan pola musiman yang relatif stabil.
Kapan Dipakai?
Data dengan musiman jelas dan berulang, permintaan ritel bulanan, konsumsi energi, pola kunjungan tahunan, traffic dengan pola mingguan. Ini “senjata utama” statistik klasik untuk data musiman.
Kapan dihindari: data tanpa musiman (cukup ARIMA biasa, lebih cepat), atau data dengan pola musiman yang berubah-ubah tidak teratur.
Aplikasi Nyata
- Peramalan permintaan ritel dengan pola musiman tahunan (untuk perencanaan stok).
- Peramalan konsumsi energi/listrik yang dipengaruhi musim.
- Peramalan jumlah penumpang transportasi (pola harian/mingguan/tahunan).
- Perencanaan kapasitas bisnis yang sangat musiman (hotel, pariwisata).
Jebakan Umum
- Salah menentukan periode musim
s. Pastikan benar: 12 untuk bulanan-tahunan, 7 untuk harian-mingguan. Salahs= model tidak menangkap musim. - Data terlalu pendek. Tanpa minimal 2–3 musim penuh, komponen musiman tidak bisa dipelajari dengan baik.
- Lupa seasonal differencing sehingga pola musiman masih membuat data non-stasioner.
- Terlalu banyak parameter musiman yang membuat model rumit dan lambat tanpa peningkatan akurasi berarti.
Kode Python
from statsmodels.tsa.statespace.sarimax import SARIMAX
# SARIMA(p,d,q)(P,D,Q,s)
model = SARIMAX(y_train,
order=(1, 1, 1), # (p, d, q)
seasonal_order=(1, 1, 1, 12) # (P, D, Q, s)
).fit(disp=False)
# Ramalan + interval
pred = model.get_forecast(steps=24)
ramalan = pred.predicted_mean
interval = pred.conf_int(alpha=0.05)
# Diagnostik
model.plot_diagnostics(figsize=(10, 7))
# Otomatis (mencoba kombinasi musiman & non-musiman):
# from pmdarima import auto_arima
# auto_arima(y_train, seasonal=True, m=12, trace=True)
Kesimpulan
ARIMA dan SARIMA adalah tulang punggung forecasting statistik klasik:
- ARIMA(p,d,q) menggabungkan tiga ide: belajar dari nilai lalu (AR), melihat perubahan agar stasioner (I/differencing), dan mengoreksi kejutan masa lalu (MA). Tentukan p, d, q lewat uji ADF, ACF/PACF, dan AIC, atau pakai
auto_arima. - SARIMA(p,d,q)(P,D,Q)s menambahkan komponen musiman dengan logika yang sama, bekerja pada jarak musiman. Pada studi kasus kita, SARIMA juara dengan MAPE 2,01%.
Selalu periksa diagnostik residual (harus seperti white noise) dan bandingkan dengan baseline naif lewat MASE.
Tapi ARIMA/SARIMA mengasumsikan hubungan linear dan hanya melihat data itu sendiri. Di artikel berikutnya, kita masuk ke pendekatan yang lebih modern dan fleksibel: Prophet, ARIMAX, dan machine learning.
Referensi
- Box, G.E.P., & Jenkins, G.M. (1970). Time Series Analysis: Forecasting and Control. Holden-Day.
- Hyndman, R.J., & Athanasopoulos, G. (2021). Forecasting: Principles and Practice (edisi ke-3). OTexts. https://otexts.com/fpp3 (bab 9: ARIMA & seasonal ARIMA; 9.1–9.3: stasioneritas, differencing, ACF/PACF).
- Hyndman, R.J., & Koehler, A.B. (2006). “Another look at measures of forecast accuracy.” International Journal of Forecasting, 22(4), 679–688.
- Makridakis, S., Spiliotis, E., & Assimakopoulos, V. (2020). “The M4 Competition: 100,000 time series and 61 forecasting methods.” International Journal of Forecasting, 36(1), 54–74.
메타데이터
- post_id
- 53058d64e2e3
- slug
- arima-sarima-model-statistik-klasik-untuk-deret-waktu-53058d64e2e3
- url
- https://medium.com/@aoramaaulia/arima-sarima-model-statistik-klasik-untuk-deret-waktu-53058d64e2e3
- canonical_url
- https://medium.com/@aoramaaulia/arima-sarima-model-statistik-klasik-untuk-deret-waktu-53058d64e2e3
- author_url
- https://medium.com/@aoramaaulia
- status
- ok
- fetched_at
- 2026-07-13 20:10:53