ARIMA adalah singkatan dari Autoregresif Integrated Moving Average dan merupakan teknik untuk analisis deret waktu dan untuk forecasting kemungkinan nilai masa depan dari deret waktu.
Pemodelan autoregresif dan pemodelan Moving Average adalah dua pendekatan berbeda untuk forecasting data deret waktu. ARIMA mengintegrasikan kedua pendekatan ini, yang menjelaskan namanya. Forecasting adalah cabang dari machine learning yang menggunakan perilaku masa lalu dari deret waktu untuk memprediksi satu atau beberapa nilai masa depan dari deret waktu tersebut. Bayangkan Anda membeli es krim untuk menyetok toko kecil. Jika Anda tahu bahwa penjualan es krim terus meningkat seiring dengan menghangatnya cuaca, Anda mungkin harus memprediksi bahwa pesanan minggu depan akan sedikit lebih besar daripada pesanan minggu ini. Seberapa besar harus tergantung pada jumlah penjualan minggu ini berbeda dari penjualan minggu lalu. Kita tidak dapat memprediksi masa depan tanpa masa lalu sebagai pembanding, sehingga data deret waktu masa lalu sangat penting untuk ARIMA dan untuk semua metode forecasting dan analisis deret waktu.
ARIMA adalah salah satu pendekatan yang paling banyak digunakan untuk forecasting deret waktu dan dapat digunakan dalam dua cara berbeda tergantung pada jenis data deret waktu yang Anda gunakan. Pada kasus pertama, kita telah membuat model ARIMA Non-musiman yang tidak memerlukan perhitungan musiman dalam data deret waktu Anda. Kami memprediksi masa depan hanya berdasarkan pola dalam data masa lalu. Dalam kasus kedua, kami memperhitungkan musiman yang merupakan siklus reguler yang mempengaruhi deret waktu. Siklus ini dapat berupa harian, mingguan, atau bulanan dan membantu menentukan pola dalam data masa lalu dari deret waktu yang dapat digunakan untuk memprediksi nilai masa depan. Seperti kebanyakan ilmu data, dasar dari forecasting adalah memiliki data deret waktu yang baik untuk melatih model Anda. Deret waktu adalah urutan pengukuran variabel yang teratur pada interval waktu yang sama. Penting untuk diingat bahwa tidak semua kumpulan data yang memiliki elemen waktu sebenarnya adalah data deret waktu karena adanya persyaratan interval waktu yang sama.
Pada tahun 1970, ahli statistik George Box dan Gwilym Jenkins mengusulkan apa yang kemudian dikenal sebagai metode Box-Jenkins untuk menyesuaikan dengan segala jenis model deret waktu.1 Pendekatan ini dimulai dengan asumsi bahwa proses yang menghasilkan deret waktu dapat diperkirakan menggunakan model jika proses tersebut stasioner. Metode ini terdiri atas empat langkah:
Identifikasi: Menilai apakah deret waktu tersebut stasioner, dan jika tidak, berapa banyak perbedaan yang diperlukan untuk membuatnya stasioner. Kemudian hasilkan data yang berbeda untuk digunakan dalam plot diagnostik. Identifikasi parameter model ARMA untuk data dari korelasi otomatis dan autokorelasi parsial.
Estimasi: Gunakan data untuk melatih parameter model (seperti koefisien).
Pemeriksaan Diagnostik: Mengevaluasi model yang telah dipasang dalam konteks data yang tersedia dan memeriksa area di mana model dapat ditingkatkan. Secara khusus ini melibatkan pemeriksaan overfitting dan menghitung kesalahan residu.
Forecasting: Setelah Anda memiliki model, Anda dapat mulai memperkirakan nilai dengan model Anda.
Setelah Anda mengonfirmasi bahwa model sesuai dengan data Anda dengan benar, Anda siap untuk memulai forecasting ARIMA. Kami akan memeriksa masing-masing langkah ini secara rinci.
Deret waktu dapat bersifat stasioner atau non-stasioner. Deret waktu stasioner memiliki sifat statistik yang konstan dari waktu ke waktu. Artinya, statistik seperti rata-rata, varians, dan autokorelasi tidak berubah dalam data. Sebagian besar metode forecasting statistik, termasuk ARIMA, didasarkan pada asumsi bahwa deret waktu dapat dibuat mendekati stasioner melalui satu atau beberapa transformasi. Deret stasioner relatif mudah diprediksi karena Anda dapat dengan mudah memprediksi bahwa sifat statistik akan sama di masa depan seperti di masa lalu. Bekerja dengan data non-stasioner dimungkinkan tetapi sulit dengan pendekatan seperti ARIMA.
Fitur lain yang penting dari data deret waktu adalah apakah data tersebut memiliki tren. Misalnya, harga bahan pokok di toko kelontong selama 50 tahun terakhir akan menunjukkan tren karena inflasi akan mendorong harga-harga tersebut lebih tinggi. Memprediksi data yang berisi tren bisa sulit karena tren mengaburkan pola lain dalam data. Jika data memiliki garis tren yang stabil dan kembali secara konsisten, maka data tersebut mungkin bersifat tren-stasioner, yang berarti tren dapat dihilangkan hanya dengan menyesuaikan garis tren dan mengurangi tren dari data sebelum menyesuaikan model. Jika data tidak stasioner terhadap tren, maka data tersebut mungkin stasioner terhadap perbedaan, yang berarti tren dapat dihilangkan dengan melakukan diferensiasi. Cara paling sederhana untuk melakukan diferensiasi adalah dengan mengurangi nilai sebelumnya dari setiap nilai untuk mendapatkan ukuran seberapa besar perubahan yang ada dalam data deret waktu. Jadi misalnya, jika Yt adalah nilai deret waktu Y pada periode t, maka selisih pertama Y pada periode t sama dengan Yt-Yt-1.
Di sini kita dapat melihat plot deret waktu yang tidak stasioner. Memiliki tren naik yang jelas dan menunjukkan adanya musiman.
Musim di sini adalah siklus 12 bulan reguler. Ini dapat diatasi dengan membedakan deret waktu dengan 12 unit sehingga kita membedakan April 1990 dengan April 1989. Setelah kita menerapkan perbedaan dengan jeda unit 12 ke deret waktu, kita dapat melihat deret waktu yang lebih stasioner. Varians dari deret waktu ini masih berubah, namun model ARIMA dapat disesuaikan dengan deret waktu ini dan perkiraan yang dibuat dengan menggunakan model tersebut.
Stasioneritas dapat membingungkan, misalnya, deret waktu yang memiliki perilaku siklik tetapi tidak memiliki tren atau musiman masih stasioner. Selama siklus tidak memiliki panjang yang tetap ketika kita mengamati rangkaian, kita tidak dapat mengetahui di mana puncak dan lembah siklus akan terjadi. Umumnya deret waktu stasioner tidak akan memiliki pola yang dapat diprediksi dalam jangka panjang. Jika Anda memplot data deret waktu dalam diagram garis, maka akan terlihat secara kasar horizontal dengan varians yang konstan dan tidak ada lonjakan atau penurunan yang signifikan.
Kita dapat melihat sejauh mana deret waktu berkorelasi dengan nilai masa lalunya dengan menghitung korelasi otomatis. Menghitung korelasi otomatis dapat menjawab pertanyaan tentang apakah data menunjukkan keacakan dan seberapa besar keterkaitan antara satu pengamatan dengan pengamatan yang berdekatan. Ini dapat memberi kita gambaran tentang model apa yang paling mewakili data. Autokorelasi sering diplot untuk melihat korelasi antara titik-titik, hingga dan termasuk unit lag.
Setiap lag dalam autokorelasi didefinisikan sebagai:
r adalah setiap lag dalam autokorelasi, T adalah panjang deret waktu, dan y adalah nilai deret waktu. Koefisien autokorelasi membentuk fungsi autokorelasi atau ACF.
Dalam ACF, koefisien korelasi berada pada sumbu x sedangkan jumlah lag (disebut sebagai urutan lag) ditunjukkan pada sumbu y. Plot autokorelasi dapat dibuat dalam python menggunakan plot_acf dari pustaka statsmodels dan dapat dibuat dalam R menggunakan fungsi acf.
Dalam plot ACF dari deret waktu yang dibedakan dengan lag 12 satuan waktu, jeda nol berkorelasi sempurna dengan dirinya sendiri. Lag pertama bersifat negatif, lag kedua sedikit positif, lag ketiga negatif, dan seterusnya. Anda akan melihat bahwa lag ke-12 berkorelasi kuat dengan dirinya sendiri. Karena kita melihat data bulanan, ini masuk akal. Kita dapat melihat bahwa korelasi otomatis mempertahankan siklus yang hampir sama di seluruh rangkaian waktu, suatu indikasi bahwa rangkaian waktu kita masih mengandung musim yang signifikan. Plot ACF juga berguna untuk membantu menyimpulkan parameter model ARIMA yang paling sesuai dengan data ini.
Plot penting lainnya dalam mempersiapkan penggunaan model ARIMA pada data deret waktu adalah Fungsi Autokorelasi Parsial (ACF). Plot ACF menunjukkan hubungan antara yt dan yt−k untuk nilai k yang berbeda. Jika yt dan yt−1 berkorelasi, maka yt−1 dan yt−2 juga akan berkorelasi. Tetapi ada juga kemungkinan bahwa yt dan yt−2 berkorelasi karena kedua variabel tersebut terhubung denganyt−1, dan bukan karena terdapat informasi baru dalamyt−2 yang dapat digunakan dalam forecasting yt. Untuk mengatasi masalah ini, kita dapat menggunakan autokorelasi parsial untuk menghilangkan beberapa pengamatan jeda. Ini mengukur hubungan antara yt dan yt−k setelah menghilangkan efek lag 1 ke k. Maka autokorelasi parsial pertama sama dengan autokorelasi pertama, karena tidak ada sesuatu di antara keduanya yang harus dihapus. Setiap autokorelasi parsial dapat diperkirakan sebagai koefisien terakhir dalam model autoregresif.
Baik Anda bekerja di R atau Python atau bahasa pemrograman atau pustaka lain, Anda akan memiliki cara untuk menghitung PACF dan membuat plot PACF untuk memudahkan pemeriksaan. Plot autokorelasi dapat dibuat dalam python menggunakan plot_pacf dari pustaka statsmodels dan dapat dibuat dalam R menggunakan fungsi pacf.
PACF ini menggunakan data yang sama dengan plot ACF di atas. Plot PACF dimulai dari 1, bukan 0 seperti pada plot ACF dan menunjukkan korelasi yang kuat hingga lag 1.0, yang berkorelasi dengan bulan yang sama di tahun sebelumnya. Setelah tahun pertama itu, kami melihat penurunan jumlah autokorelasi karena jumlah kelambatan meningkat. Karena kami melihat data bulanan dengan varians yang berubah dari tahun ke tahun, ini masuk akal.
Seperti namanya, singkatan ARIMA mengintegrasikan model Autoregresi dan Moving Average ke dalam satu model tunggal, tergantung pada parameter yang dimasukkan. Kedua cara pemodelan perubahan sepanjang deret waktu ini terkait tetapi memiliki beberapa perbedaan utama. Dalam model autoregresi, kami memperkirakan variabel yang diinginkan menggunakan kombinasi linier dari nilai variabel masa lalu. Istilah autoregresi menunjukkan bahwa itu adalah regresi variabel terhadap dirinya sendiri. Teknik ini mirip dengan model regresi linier dalam cara menggunakan nilai masa lalu sebagai input untuk regresi. Autoregresi didefinisikan sebagai:
di mana εt adalah noise putih. Ini seperti regresi berganda tetapi dengan nilai lag yt sebagai prediktor. Kami menyebutnya sebagai model AR(p), model autoregresif dari urutan p.
Model moving average di sisi lain menggunakan kesalahan perkiraan masa lalu daripada menggunakan nilai masa lalu dari variabel perkiraan dalam regresi. Moving average hanya menghitung rata-rata nilai k dalam sebuah jendela, di mana k adalah ukuran jendela moving average, dan kemudian memajukan jendela tersebut. Nilai perkiraan dievaluasi menggunakan nilai aktual untuk menentukan kesalahan pada setiap langkah dalam deret waktu. Moving average didefinisikan sebagai:
εt adalah white noise. Kami menyebut ini sebagai model MA(q), model moving average dari urutan q. Tentu saja, kami tidak mengamati nilai εt, jadi itu bukan benar-benar regresi dalam pengertian biasanya. Perhatikan bahwa setiap nilai yt dapat dianggap sebagai rata-rata bergerak tertimbang dari beberapa kesalahan perkiraan di masa lalu.
Biasanya dalam model ARIMA, Anda akan menggunakan istilah Auto-Regressive (AR) atau istilah Moving Average (MA). Plot ACF dan plot PACF sering digunakan untuk menentukan istilah mana yang paling tepat.
Setelah deret waktu dibuat stasioner dan sifat autokorelasi telah ditentukan, maka model ARIMA dapat digunakan. Ada 3 parameter kunci untuk model ARIMA yang biasanya disebut sebagai p, d, dan q.
p: urutan bagian Autoregressive dari ARIMA
d: tingkat perbedaan yang terlibat
q: urutan bagian Moving Average
Grafik ini biasanya ditulis dalam urutan berikut: ARIMA (p, d, q). Banyak bahasa pemrograman dan paket yang menyediakan fungsi ARIMA yang dapat dipanggil dengan deret waktu yang akan dianalisa dan ketiga parameter ini. Sering kali data dibagi menjadi satu set data latih dan satu set data uji sehingga akurasi model dapat diuji setelah dilatih. Biasanya tidak mungkin untuk mengetahui hanya dengan melihat plot waktu, nilai p dan q yang paling tepat untuk data tersebut. Biasanya, Anda dapat menggunakan plot ACF dan PACF untuk menentukan nilai yang tepat untuk p dan q, sehingga plot-plot tersebut merupakan istilah yang penting saat bekerja dengan ARIMA
Rubrik kasar tentang kapan harus menggunakan istilah AR dalam model adalah ketika:
Rubrik kasar tentang kapan harus menggunakan istilah MA dalam model adalah ketika:
Ada beberapa jenis model ARIMA klasik yang mungkin Anda temui.
ARIMA(1,0,0) = model autoregresif urutan pertama: jika deret tidak stasioner dan ber-autokorelasi, mungkin deret tersebut dapat diprediksi sebagai kelipatan dari nilai sebelumnya, ditambah sebuah konstanta. Jika penjualan es krim untuk esok hari dapat diprediksi secara langsung dengan hanya menggunakan penjualan es krim hari ini, maka itu adalah model autoregresif urutan pertama.
ARIMA(0,1,0) = random walk: Jika deret waktu tidak stasioner, model yang paling sederhana adalah model random walk. Random walk (gerakan acak) berbeda dari daftar angka acak karena nilai berikutnya dalam urutan adalah modifikasi dari nilai sebelumnya dalam urutan. Ini sering kali sesuai dengan cara kita memodelkan nilai yang berbeda untuk harga saham.
ARIMA(1,1,0) = model autoregresif urutan pertama yang dibedakan: Jika kesalahan dari model random walk ber-autokorelasi, mungkin masalahnya bisa diperbaiki dengan menambahkan satu lag variabel dependen ke dalam persamaan prediksi, misalnya, dengan meregresikan selisih pertama dari Y terhadap dirinya sendiri yang lag satu periode.
ARIMA(0,1,1) tanpa konstanta = model pemulusan eksponensial sederhana: Model ini digunakan untuk data deret waktu tanpa musim atau tren. Hal ini membutuhkan satu parameter penghalusan yang mengontrol tingkat pengaruh dari pengamatan historis (ditunjukkan dengan nilai koefisien antara 0 dan 1). Dalam teknik ini, nilai yang mendekati 1 berarti bahwa model hanya memberikan sedikit perhatian pada pengamatan masa lalu, sementara nilai yang lebih kecil menetapkan bahwa lebih banyak sejarah yang diperhitungkan selama prediksi.
ARIMA(0,1,1) dengan konstanta = model pemulusan eksponensial sederhana dengan pertumbuhan. Ini sama dengan pemulusan eksponensial sederhana kecuali bahwa ada istilah konstanta aditif yang membuat nilai Y dari deret waktu tumbuh seiring berjalannya waktu.
Tentu saja ada banyak cara lain agar model ARIMA dapat sesuai, itulah sebabnya kami sering menghitung beberapa model dan membandingkannya untuk melihat model mana yang paling sesuai untuk data kami. Semua ini adalah model urutan pertama yang berarti mereka memetakan proses linier. Ada model urutan kedua yang memetakan proses kuadrat dan model yang lebih tinggi yang memetakan proses yang lebih kompleks.
Biasanya beberapa model ARIMA dicocokkan dengan data dan dibandingkan satu sama lain untuk menemukan model mana yang paling tepat memprediksi pola yang terlihat pada data deret waktu. Ada tiga metrik utama untuk menilai keakuratan model ARIMA:
Akaike’s Information Criterion atau AIC. Ini banyak digunakan untuk memilih prediktor untuk model regresi, dan juga berguna untuk menentukan urutan model ARIMA. AIC mengukur baik kesesuaian model dan kesederhanaan/hemat model dalam satu statistik. Skor AIC yang lebih rendah lebih baik daripada yang lebih tinggi, jadi kami lebih suka model yang memiliki skor lebih rendah. AIC lebih menyukai model yang lebih sederhana, model yang lebih kompleks mendapatkan nilai yang lebih tinggi selama akurasinya kurang lebih sama dengan model yang lebih sederhana. Ada juga AIC atau AICC yang dikoreksi yang hanya memiliki koreksi kecil yang diterapkan untuk ukuran sampel.
Kriteria Informasi Bayesian atau BIC. Ini adalah kriteria lain untuk pemilihan model yang lebih mempenalti kompleksitas daripada AIC. Seperti halnya AIC, model dengan BIC yang lebih rendah umumnya lebih disukai daripada model dengan skor yang lebih tinggi. Jika model Anda akan digunakan untuk forecasting jangka panjang, BIC mungkin lebih disukai, sedangkan forecasting jangka pendek mungkin berarti bahwa AIC lebih disukai.
Nilai sigma kuadrat atau sigma2 adalah varians dari residu model. Istilah sigma menggambarkan volatilitas proses yang dihipotesiskan. Jika Anda memiliki data yang sangat fluktuatif namun nilai sigma kuadratnya sangat rendah, atau sebaliknya data yang tidak fluktuatif namun nilai sigma kuadratnya tinggi, maka hal tersebut merupakan pertanda bahwa model tersebut tidak dapat menangkap proses pembuatan data yang sebenarnya dengan baik.
Jika kita telah menahan set data uji maka kita juga dapat membandingkan metrik akurasi seperti RMSE untuk interval prediksi yang berbeda. Model ARIMA dapat memperkirakan nilai untuk satu langkah waktu di masa depan atau untuk beberapa langkah sekaligus.
Salah satu pendekatan lain untuk mengonfigurasi dan membandingkan model ARIMA adalah dengan menggunakan Auto-ARIMA, yang menerapkan tugas konfigurasi otomatis untuk menghasilkan dan membandingkan model ARIMA. Ada beberapa cara untuk sampai pada model optimal apa pun. Algoritma ini akan menghasilkan beberapa model dan berusaha meminimalkan AICc dan kesalahan dari Maximum Likelihood Estimation untuk mendapatkan model ARIMA.
Seasonal Autoregressive Integrated Moving Average, SARIMA atau Seasonal ARIMA merupakan ekstensi dari ARIMA yang mendukung data deret waktu dengan komponen musiman. Untuk melakukan hal ini, itu menambahkan tiga hyperparameter baru untuk menentukan autoregresi, differencing, dan moving average untuk komponen musiman dari deret, serta parameter tambahan untuk periode musiman. Model SARIMA biasanya dinyatakan sebagai SARIMA((p,d,q), (P,D,Q)), di mana huruf kecil menunjukkan komponen non-musiman dari deret waktu dan huruf besar menunjukkan komponen musiman
Model Autoregresif Vektor (atau Model VAR) digunakan untuk deret waktu multivariat. Mereka terstruktur sehingga setiap variabel adalah fungsi linier dari lag masa lalu itu sendiri dan lag masa lalu dari variabel lainnya.
Model ARIMA adalah alat yang ampuh untuk menganalisis data deret waktu untuk memahami proses di masa lalu serta untuk forecasting nilai deret waktu di masa depan. Model ARIMA menggabungkan model Autoregressive dan model Moving Average untuk memberikan peramal sebuah alat yang sangat dapat diparameterisasi yang dapat digunakan dengan berbagai macam data deret waktu.
Dapatkan insight unik tentang lingkungan solusi ABI yang terus berkembang, dengan menyoroti temuan utama, asumsi, dan rekomendasi bagi para pemimpin data dan analitik.
Sederhanakan akses data dan otomatiskan tata kelola data. Temukan kekuatan mengintegrasikan strategi data lakehouse ke dalam arsitektur data Anda, termasuk mengoptimalkan biaya beban kerja Anda dan menskalakan AI dan analitik dengan semua data Anda, di mana saja.
Jelajahi panduan pemimpin data untuk membangun organisasi berbasis data dan mendorong keunggulan bisnis.
Pelajari bagaimana pendekatan data lakehouse terbuka dapat memberikan data yang dapat dipercaya dan analitik serta eksekusi proyek AI yang lebih cepat.
Hubungkan strategi data dan analitik Anda dengan tujuan bisnis menggunakan 4 langkah utama ini.
Lihat lebih dalam alasan tantangan intelijen bisnis tetap ada dan maknanya bagi pengguna di seluruh organisasi.
Untuk berkembang, perusahaan harus menggunakan data untuk membangun loyalitas pelanggan, mengotomatiskan proses bisnis, dan berinovasi dengan solusi yang didorong oleh AI.
Buka nilai data perusahaan dengan IBM Consulting, membangun organisasi berbasis insight yang memberikan keuntungan bisnis.
Memperkenalkan Cognos Analytics 12.0, wawasan yang didukung AI untuk pengambilan keputusan yang lebih baik.
1 Time Series Analysis: Forecasting and Control, Holden Day, 1970.