ARIMA: Contoh Perhitungan Forecasting Manual ARIMA(1,1,0)

Tutorial ini membahas ARIMA dan contoh perhitungan manual ARIMA(1,1,0) untuk forecasting data deret waktu. Contoh menggunakan data penjualan bulanan yang memiliki kecenderungan tren naik.

Perhitungan dimulai dari melakukan differencing, membentuk model autoregressive pada data yang sudah didifference, menghitung parameter model, melakukan forecast historis, mengevaluasi error, hingga memprediksi beberapa periode berikutnya.


Daftar Isi


Pengertian ARIMA

ARIMA adalah singkatan dari Autoregressive Integrated Moving Average. Metode ini digunakan untuk memodelkan dan meramalkan data deret waktu berdasarkan pola hubungan nilai sekarang dengan nilai masa lalu dan error masa lalu.

ARIMA biasanya ditulis sebagai ARIMA(p,d,q). Pada tutorial ini digunakan model sederhana ARIMA(1,1,0) agar proses perhitungan manual mudah dipahami.

Arti Parameter p, d, dan q

  • p adalah orde Autoregressive (AR), yaitu jumlah lag data masa lalu yang digunakan.
  • d adalah jumlah proses differencing yang dilakukan untuk membantu membuat data lebih stasioner.
  • q adalah orde Moving Average (MA), yaitu jumlah lag error masa lalu yang digunakan.

ARIMA(1,1,0) berarti menggunakan satu lag autoregressive, melakukan differencing satu kali, dan tidak menggunakan komponen MA error.

Model ARIMA(1,1,0)

Karena \(d=1\), data aktual terlebih dahulu diubah menjadi selisih:

$$ D_t = Y_t-Y_{t-1} $$

Setelah differencing, digunakan model AR(1):

$$ D_t = c+\phi D_{t-1}+e_t $$

Untuk melakukan forecast:

$$ \hat{D}_t = c+\phi D_{t-1} $$

kemudian dikembalikan ke skala data asli:

$$ \hat{Y}_t = Y_{t-1}+\hat{D}_t $$

#01 Data Aktual

Contoh menggunakan 10 data penjualan bulanan.

Periode Aktual
Januari 120
Februari 126
Maret 131
April 137
Mei 142
Juni 149
Juli 154
Agustus 160
September 166
Oktober 173

#02 Melakukan Differencing

Data memiliki kecenderungan naik, sehingga pada contoh ini dilakukan differencing satu kali.

Contoh Differencing Februari

Sebelum melihat tabel, hitung selisih Februari terhadap Januari:

$$ D_{Feb} = 126 - 120 = 6 $$

Contoh Differencing Maret

$$ D_{Mar} = 131 - 126 = 5 $$
Periode Aktual Differencing Dt
Januari 120 -
Februari 126 6
Maret 131 5
April 137 6
Mei 142 5
Juni 149 7
Juli 154 5
Agustus 160 6
September 166 6
Oktober 173 7

#03 Membentuk Data AR(1)

Untuk model AR(1), differencing periode sebelumnya digunakan sebagai variabel \(X\), sedangkan differencing periode sekarang menjadi \(Y\).

Contoh Pasangan Pertama

Untuk memodelkan differencing Maret:

  • \(X=D_{Feb}=6\)
  • \(Y=D_{Mar}=5\)
Periode Target X = Dt-1 Y = Dt XY X²
Maret 6 5 30 36
April 5 6 30 25
Mei 6 5 30 36
Juni 5 7 35 25
Juli 7 5 35 49
Agustus 5 6 30 25
September 6 6 36 36
Oktober 6 7 42 36
Total 46 47 268 268

#04 Menghitung Parameter φ dan Konstanta

Pada contoh manual ini, parameter AR(1) dihitung menggunakan regresi linear sederhana pada pasangan \(D_{t-1}\) dan \(D_t\).

Menghitung φ

$$ \phi = \frac{ n\sum XY-(\sum X)(\sum Y) }{ n\sum X^2-(\sum X)^2 } $$
$$ \phi = \frac{ (8 \times 268) - (46 \times 47) }{ (8 \times 268) - (46)^2 } = -0.6429 $$

Menghitung Konstanta c

$$ c = \frac{ \sum Y-\phi\sum X }{n} $$
$$ c = \frac{ 47 - (-0.6429 \times 46) }{ 8 } = 9.5714 $$

Model differencing yang diperoleh:

$$ \hat{D}_t = 9.5714 - 0.6429D_{t-1} $$

#05 Menghitung Forecast Historis

Contoh Forecast Maret

Differencing sebelumnya adalah:

$$ D_{Feb}=6 $$

Forecast differencing Maret:

$$ \hat{D}_{Mar} = 9.5714 - (0.6429 \times 6) = 5.7143 $$

Kemudian dikembalikan ke skala penjualan:

$$ \hat{Y}_{Mar} = Y_{Feb}+\hat{D}_{Mar} = 126 + 5.7143 = 131.7143 $$

Dengan cara yang sama, forecast satu langkah ke depan dihitung untuk periode berikutnya.

Periode Aktual Dt-1 Forecast Dt Forecast Yt
Maret 131 6 5.7143 131.7143
April 137 5 6.3571 137.3571
Mei 142 6 5.7143 142.7143
Juni 149 5 6.3571 148.3571
Juli 154 7 5.0714 154.0714
Agustus 160 5 6.3571 160.3571
September 166 6 5.7143 165.7143
Oktober 173 6 5.7143 171.7143

#06 Menghitung Error

Error:

$$ e_t=Y_t-\hat{Y}_t $$

Contoh untuk Maret:

$$ e_{Mar} = 131 - 131.7143 = -0.7143 $$

Absolute Error = 0.7143, Squared Error = 0.5102, dan APE = 0.5453%.

Periode Aktual Forecast Error |Error| Error² APE
Maret 131 131.7143 -0.7143 0.7143 0.5102 0.5453%
April 137 137.3571 -0.3571 0.3571 0.1276 0.2607%
Mei 142 142.7143 -0.7143 0.7143 0.5102 0.503%
Juni 149 148.3571 0.6429 0.6429 0.4133 0.4314%
Juli 154 154.0714 -0.0714 0.0714 0.0051 0.0464%
Agustus 160 160.3571 -0.3571 0.3571 0.1276 0.2232%
September 166 165.7143 0.2857 0.2857 0.0816 0.1721%
Oktober 173 171.7143 1.2857 1.2857 1.6531 0.7432%

#07 Menghitung MAE, MSE, dan MAPE

MAE

$$ MAE = \frac{\sum |Y_t-\hat{Y}_t|}{n} = 0.5536 $$

MSE

$$ MSE = \frac{\sum(Y_t-\hat{Y}_t)^2}{n} = 0.4286 $$

MAPE

$$ MAPE = \frac{1}{n} \sum \left| \frac{Y_t-\hat{Y}_t}{Y_t} \right| \times100\% = 0.3657\% $$
Metrik Nilai
MAE 0.5536
MSE 0.4286
MAPE 0.3657%

#08 Forecast Periode Berikutnya

Forecast setelah Oktober dilakukan secara rekursif. Forecast differencing periode pertama menggunakan differencing aktual terakhir, sedangkan periode selanjutnya menggunakan forecast differencing sebelumnya.

Contoh Forecast November

Differencing terakhir:

$$ D_{Oct} = 7 $$

Forecast differencing November:

$$ \hat{D}_{Nov} = 9.5714 - (0.6429 \times 7) = 5.0714 $$

Forecast November:

$$ \hat{Y}_{Nov} = 173 + 5.0714 = 178.0714 $$
Periode Forecast Differencing Forecast
November 5.0714 178.07
Desember 6.3112 184.38
Januari Tahun Berikutnya 5.5142 189.9

Cara Menentukan p, d, dan q

Pada penerapan ARIMA yang sebenarnya, parameter tidak harus selalu \(p=1\), \(d=1\), dan \(q=0\). Model dapat ditentukan melalui beberapa tahap:

  • d ditentukan berdasarkan kebutuhan differencing untuk memperoleh data yang lebih stasioner.
  • p dapat dibantu dengan analisis PACF.
  • q dapat dibantu dengan analisis ACF.
  • Beberapa kandidat model kemudian dibandingkan menggunakan diagnostik residual dan kriteria/model error yang sesuai.

ARIMA(1,1,0) pada artikel ini dipilih sebagai contoh edukasi agar seluruh proses dapat dihitung secara manual.

Ringkasan

ARIMA(1,1,0) pada contoh ini melakukan differencing satu kali, kemudian memodelkan perubahan data menggunakan satu lag autoregressive. Model differencing yang diperoleh adalah:

$$ \hat{D}_t = 9.5714 - 0.6429D_{t-1} $$

Forecast November adalah 178.07. Evaluasi forecast historis menghasilkan MAE 0.5536, MSE 0.4286, dan MAPE 0.3657%.

FAQ ARIMA

Apa kepanjangan ARIMA?

ARIMA adalah Autoregressive Integrated Moving Average.

Apa fungsi differencing pada ARIMA?

Differencing digunakan untuk mengurangi tren atau perubahan level sehingga deret waktu lebih mendekati kondisi stasioner.

Apa perbedaan AR, I, dan MA?

AR menggunakan hubungan dengan nilai masa lalu, I menunjukkan proses differencing, sedangkan MA menggunakan hubungan dengan error masa lalu.

Apakah ARIMA(1,1,0) selalu cocok?

Tidak. Nilai p, d, dan q harus disesuaikan dengan karakteristik data dan dievaluasi menggunakan diagnostik model.

Apakah ARIMA cocok untuk data musiman?

Untuk pola musiman yang kuat dapat digunakan pengembangan ARIMA musiman yang dikenal sebagai SARIMA.

Apa metode berikutnya setelah ARIMA?

Salah satu kelanjutan yang umum adalah SARIMA untuk data yang memiliki pola musiman selain tren dan hubungan autoregressive.


Referensi

  1. Box, G. E. P., Jenkins, G. M., Reinsel, G. C. & Ljung, G. M. Time Series Analysis: Forecasting and Control. Wiley.
  2. Hyndman, R. J. & Athanasopoulos, G. Forecasting: Principles and Practice. OTexts.

Source Code ARIMA

Berikut adalah beberapa source code yang menggunakan metode ARIMA untuk forecasting.

Ada yang Ditanyakan?

Jika anda masih ada kesulitan atau kekeliruan tentang penjelasan metode di atas, bisa menghubungi kami lewat WA/Email sesuai halaman Kontak.

Jika ingin memiliki file excel dari metode di atas bisa melihat cara download di halaman Download.

Jika ingin memiliki source code dari metode di atas, baik berbasis web maupun desktop bisa melihat daftar harga donasi di halaman Daftar Source Code.

Donasi ini digunakan oleh penulis untuk membayar server dan membeli kopi sembari membuat tutorial Metode/Algoritma lainnya :).