Hampir semua bidang menghasilkan data yang diukur berulang sepanjang waktu. Cuaca harian, pendapatan bulanan, atau pertumbuhan GDP tahunan semuanya punya urutan dan pola. Analisis time series adalah cara memahami pola itu dan menggunakannya untuk memprediksi nilai berikutnya.
Apa itu time series?
Time series adalah data yang dikumpulkan pada interval waktu teratur, misalnya setiap jam, setiap hari, atau setiap tahun. Berbeda dengan data biasa yang hanya kumpulan observasi, time series bersifat sekuensial. Nilai hari ini sering berkaitan dengan nilai kemarin, dan hubungan inilah yang menjadi bahan utama analisis.
Tujuan utama analisis time series bisa dibagi menjadi beberapa hal. Memahami bagaimana data berubah, memasang model untuk forecasting, menganalisis penyebab perubahan, serta memantau dan mengendalikan proses. Model yang dipakai bisa dari statistika, machine learning, hingga deep learning.
Empat komponen time series
Data time series jarang terdiri dari satu pola saja. Biasanya ada empat komponen yang saling menumpuk, yaitu trend, seasonality, cyclicality, dan variasi acak. Ketika kita memisahkan komponen-komponen ini, pola yang awalnya sulit dibaca menjadi lebih jelas.
Trend
Trend adalah gerakan jangka panjang data, bisa naik, turun, atau relatif datar. Trend linier berarti perubahan berjalan konstan dari waktu ke waktu. Trend nonlinear berarti laju perubahannya tidak konstan, misalnya makin cepat atau makin lambat.
Mengetahui trend penting karena ia menunjukkan arah umum data. Informasi ini membantu model menentukan ke mana forecast seharusnya berjalan, sekaligus memisahkan pertumbuhan struktural dari fluktuasi sementara.
Seasonality
Seasonality adalah pola yang berulang pada interval teratur, seperti bulanan atau kuartalan. Contoh paling umum adalah penjualan ritel yang melonjak setiap Desember karena musim liburan. Pola ini bisa dideteksi dengan time series plot, seasonal subseries plot, atau box plot.
Seasonality terbagi menjadi dua jenis. Fixed atau deterministic seasonality punya pola yang konsisten, baik intensitas maupun periodenya. Changing atau stochastic seasonality berubah perlahan dari periode ke periode, intensitasnya kurang bisa diprediksi, tetapi periodenya tetap kurang lebih sama.
Efek musiman juga bisa bergabung dengan komponen lain. Ketika efek musiman ditambahkan ke trend secara konstan, kita menyebutnya additive seasonality. Ketika efek itu ikut membesar mengikuti level trend, kita menyebutnya multiplicative seasonality.
Cyclicality
Cyclicality adalah pola berulang dengan periode panjang dan tidak terikat kalender, biasanya berlangsung beberapa tahun. Contohnya siklus bisnis yang dipengaruhi permintaan, suku bunga, dan aktivitas pasar. Berbeda dari seasonality, siklus ini tidak muncul pada waktu yang pasti setiap tahun.
Deteksi siklus biasanya membutuhkan pengetahuan domain atau teknik tambahan seperti filtering dan smoothing, karena polanya tidak serumut seasonality.
Variasi acak
Variasi acak, yang sering disebut residual atau noise, adalah perubahan kecil yang tidak berulang setelah trend, seasonality, dan siklus dipisahkan. Penyebabnya bisa kejadian acak seperti bencana alam atau perubahan sentimen publik. Beberapa bentuknya termasuk white noise, outlier, dan measurement error.
Variasi acak tidak dimodelkan langsung, tetapi sangat menentukan tingkat prediktabilitas. Data dengan noise tinggi lebih sulit diprediksi, sedangkan data dengan noise rendah memberi ruang forecast yang lebih baik.

Sifat-sifat time series
Selain komponen, time series punya sifat statistik yang menjadi dasar pemilihan model. Dua sifat yang paling sering dipakai adalah autocorrelation dan stationarity.
Autocorrelation
Autocorrelation mengukur korelasi antara suatu nilai dan nilai sebelumnya pada jarak tertentu yang disebut lag. Suhu hari ini mungkin berkorelasi dengan suhu kemarin, dan harga saham hari ini mungkin berkorelasi dengan harga kemarin. Nilai autocorrelation berkisar antara -1 dan 1.
Autocorrelation positif berarti data cenderung melanjutkan arah yang sama. Autocorrelation negatif berarti data cenderung membalik arah. Autocorrelation function atau ACF menunjukkan korelasi total pada berbagai lag, termasuk efek tidak langsung. Partial autocorrelation function atau PACF memisahkan korelasi langsung tanpa efek lag di antaranya. Kedua plot ini dipakai untuk memilih parameter model.
Stationarity
Time series dikatakan stationary jika sifat statistiknya, seperti mean, variance, dan autocorrelation, tetap konstan sepanjang waktu. Data stationary terlihat datar tanpa trend atau seasonality, dan ini menjadi syarat penting bagi banyak model.
Data yang belum stationary bisa diubah. Differencing mengurangi setiap nilai dengan nilai sebelumnya. Transformasi seperti log atau akar kuadrat membantu menstabilkan variance. Trend removal memasang kurva lalu menganalisis residualnya. Dengan salah satu cara ini, data yang awalnya sulit dimodelkan bisa menjadi stationary.
ARIMA: model forecasting klasik
ARIMA adalah singkatan dari AutoRegressive Integrated Moving Average. Model ini menggabungkan tiga ide. Autoregressive berarti memprediksi nilai masa depan dari nilai masa lalu. Integrated berarti menggunakan differencing agar data stationary. Moving average berarti merapikan variasi jangka pendek untuk menonjolkan trend.
ARIMA ditulis dengan tiga parameter, yaitu ARIMA(p, d, q). Langkah kerjanya cukup runtut. Pertama, cek stationarity dengan plot dan uji statistik seperti KPSS. Jika belum stationary, lakukan differencing sampai data berhenti berubah. Kedua, baca plot ACF dan PACF untuk menebak nilai p dan q. Ketiga, fit model dengan maximum likelihood estimation, lalu periksa residualnya. Residual yang tidak punya autocorrelation signifikan menandakan model sudah cukup baik.
Forecasting dengan ARIMA juga sederhana. Nilai berikutnya dihitung dari komponen AR dan MA, lalu hasilnya dipakai lagi secara berulang untuk langkah berikutnya. Varian lanjutannya seperti SARIMA menangani seasonality, sedangkan SARIMAX menambahkan faktor eksternal.

Ada perdebatan apakah ARIMA termasuk machine learning. Kebanyakan analis tidak menganggapnya demikian karena ARIMA lahir sebelum era machine learning modern. Namun ARIMA tetap jadi baseline yang kuat, dan kita tetap bisa memakai teknik machine learning untuk data time series dengan feature engineering, misalnya menambahkan lagged variables.
Machine learning untuk time series
Beberapa model machine learning klasik bisa diadaptasi untuk time series. Random forest, misalnya, adalah ensemble yang menggabungkan banyak decision tree melalui voting atau rata-rata. Dengan menambahkan variabel lag dan fitur eksternal, random forest bisa menangani pola time series yang cukup kompleks.
Support vector machine atau SVM juga bisa dipakai untuk regresi atau klasifikasi time series dengan memetakan data ke dimensi lebih tinggi. SVM efektif pada dataset kecil, tetapi kurang populer karena kompleksitas komputasinya.
Deep learning: RNN dan transformer
Untuk pendekatan deep learning, recurrent neural network atau RNN menjadi pilihan utama karena dirancang untuk data sekuensial. Keunggulan RNN ada pada hidden state yang menyimpan informasi dari langkah sebelumnya, semacam memori yang menangkap pola antar-waktu. RNN juga bisa menerima input dengan panjang berbeda-beda.
Namun RNN standar punya keterbatasan. Masalah vanishing atau exploding gradient membuatnya kesulitan memodelkan hubungan pada urutan yang sangat panjang. Varian seperti LSTM dirancang untuk mengatasi sebagian masalah ini.
Transformer, yang awalnya dikembangkan untuk bahasa, juga diadaptasi untuk time series. Arsitektur ini memproses seluruh urutan sekaligus dan memakai attention untuk menilai titik waktu mana yang paling relevan. Temporal Fusion Transformer atau TFT adalah salah satu contoh yang menggabungkan transformer dengan komponen lain untuk data time series multivariate.

Coba di lab
Setelah memahami komponen dan sifat data, langkah berikutnya adalah melihat langsung pada contoh. Buka Signal Decomposition untuk memisahkan trend, seasonality, dan residual dari sinyal yang kamu pilih. Bandingkan dengan FFT untuk membaca frekuensi dominan, lalu gunakan Signal Filter untuk memahami low-pass dan high-pass.
Urutan yang paling membantu adalah ini. Kenali komponen dulu, cek sifat datanya, baru pilih model. Dengan cara itu, ARIMA, random forest, RNN, atau transformer tidak lagi dipilih berdasarkan popularitas, melainkan karena cocok dengan pola data yang terlihat.
Artikel ini diadaptasi dari AI But Simple Issue #49 karya Edwin Dong. Versi aslinya bisa dibuka di newsletter.aibutsimple.com.
Pisahkan komponen sinyal di lab
Masukkan sinyal observasi, lalu lihat trend, seasonality, dan residual dipisahkan langsung di kanvas.
Buka Lab Signal Decomposition →