METODE PERAMALAN ARIMA di R (Part 1)

Khofifah
5 min readJan 6, 2022

--

Pada kesempatan kali ini Saya akan membahas salah satu metode peramalan dengan menggunakan ARIMA. Metode ARIMA sendiri digunakan untuk tipe data stasioner sehingga jika ada data yang tidak stasioner maka perlu differencing dan transformasi. Differencing itu sendiri dilakukan untuk data menstasionerkan data terhadap mean sedangkan transformasi logaritma dilakukan untuk menstasionerkan data terhadap variansi.

Data stasioner terhadap mean dan varians berarti data berada disekitar garis tengah dan tidak mengalami perubahan yang sistematik terhadap waktu seperti pada gambar dibawah ini

plot data stasioner

sedangkan data yang tidak stasioner biasanya terdapat penurunan atau kenaikan terhadap waktu, seperti gambar di bawah ini

plot data tidak stasioner

Untuk lebih memperdalam kita akan mencoba melakukan analisis ARIMA dengan menggunakan dataset wmurders(jumlah pembunuhan terhadap wanita tiap tahun (per 100,000 populasi) di Amerika Serikat dari tahun 1950–2004 pada library fpp2 di R.

library(fpp2)
library(tseries) #uji ADF test untuk cek stasioneritas data
data=wmurdersplot(data)

UJI STASIONERITAS DATA

plot wmurders data

Pada plot diatas terlihat bahwa data belum stasioner terhadap mean sehingga perlu dilakukan differencing terlebih dahulu. Selain itu uji stasioneritas bisa dengan menggunakan ADF Test. Didapatkan output sebagai berikut:

adf.test(data)

ADF test

Uji ADF menunjukkan bahwa nilai p.value sebesar 0.9878 lebih besar dari alpha(0.05) sehingga Hipotesis nol yaitu data tidak stasioner diterima atau dapat dikatakan data belum stasioner.

Transformasi Data

data.diff1=diff(data, differences = 1)
plot(data.diff1, main=”Time Series Plot Diff 1")
data.diff2=diff(data, differences = 2)
plot(data.diff2, main=”Time Series Plot Diff 2")

Differencing Order 1

plot data diff 1

Pada plot diatas terlihat bahwa data sudah stasioner terhadap mean, tetapi masih belum stasioner terhadap variansi. Untuk melakukan stabilitas variansi, harus dilakukan transformasi dari data sebelum dilakukan operasi difference. Bentuk transformasi yang paling sering digunakan adalah dengan transformasi logaritma.

Differencing Order 2

Pada plot diatas terlihat bahwa data sudah stasioner terhadap mean, tetapi masih belum stasioner terhadap variansi. Untuk melakukan stabilitas variansi, harus dilakukan transformasi dari data sebelum dilakukan operasi difference. Bentuk transformasi yang paling sering digunakan adalah dengan transformasi logaritma.

Selanjutnya akan dilakukan stabilitas variansi dengan menggunakan transformasi logaritma.

Differencing Logaritma Order 1

data.log.diff1=diff(log(data), diff = 1)
plot(data.log.diff1, main=”Time Series Plot log Diff 1")
data.log.diff2=diff(log(data), diff = 2)
plot(data.log.diff2, main=”Time Series Plot log Diff 2")

Terlihat bahwa dengan transformasi log dari data sebelum dilakukan difference , variansi data relatif telah stabil.

Terlihat bahwa dengan transformasi log dari data sebelum dilakukan difference , variansi data relatif telah stabil dibandingkan dengan transformasi log order pertama sehingga transformasi yang digunakan yaitu transformasi order kedua..

Identifikasi Model Awal

par(mfrow=c(1,2))
acf(data.log.diff2,lag.max = 36, na.action = na.pass)
pacf(data.log.diff2,lag.max = 36, na.action = na.pass)

Untuk menentukan orde p pada model ARIMA, dilihat dari plot PACF 4 periode pertama. Dapat dilihat pada 4 periode pertama plot PACF. lag ke-2 adalah lag yang terakhir keluar dari batas, artinya orde p = 2.

Untuk menentukan orde q pada model ARIMA, dilihat dari plot ACF 4 periode pertama.Dapat dilihat pada 4 periode pertama plot ACF. lag ke-2 adalah lag yang terakhir keluar dari batas, artinya orde q= 2.

Untuk menentukan orde d pada model ARIMA, dilihat dari orde differencing yang digunakan. yaitu differencing logaritma orde kedua maka orde d = 2

Sehingga model awal dari model ARIMA adalah ARIMA (2,2,2).

Underfitting

Berdasarkan model awal ARIMA yaitu ARIMA (2,1,2), maka model yang mungkin terbentuk adalah

· ARIMA (2,2,2) dengan konstan

· ARIMA (2,2,1) dengan konstan

· ARIMA (2,2,0) dengan konstan

· ARIMA (1,2,2) dengan konstan

· ARIMA (1,2,1) dengan konstan

· ARIMA (1,2,0) dengan konstan

· ARIMA (0,2,2) dengan konstan

· ARIMA (0,2,1) dengan konstan

· ARIMA (2,2,2) tanpa konstan

· ARIMA (2,2,1) tanpa konstan

· ARIMA (2,2,0) tanpa konstan

· ARIMA (1,2,2) tanpa konstan

· ARIMA (1,2,1) tanpa konstan

· ARIMA (1,2,0) tanpa konstan

· ARIMA (0,2,2) tanpa konstan

· ARIMA (0,2,1) tanpa konstan

Model ARIMA Terbaik

best_arima=auto.arima(wmurders,trace=TRUE)
summary(best_arima)

Dengan menggunakan formula diatas terlihat bahwa Arima (1,2,1) memiliki nilai AIC terkecil sehingga model terbaik yang didapatkan yaitu ARIMA (1,2,1).

Persamaan model ARIMA(1,2,1) adalah sebagai berikut

Interpretasi:

-Setiap kenaikan 1 satuan data wmurders pada 1 periode lalu menyebabkan kenaikan sebesar 1.7566 dengan menganggap parameter lain konstan

-Setiap kenaikan 1 satuan data wmurders pada 2 periode lalu menyebabkan penurunan sebesar 0.5132 dengan menganggap parameter lain konstan

-Setiap kenaikan 1 satuan data wmurders pada 3 periode lalu menyebabkan penurunan sebesar 0.2434 dengan menganggap parameter lain konstan

-Setiap kenaikan 1 satuan eror data wmurders pada 1 periode lalu menyebabkan penurunan sebesar 0.8261 dengan menganggap parameter lain konstan

Diagnostic Checking

#Diagnostic Checking
residual=best_arima$residuals
tsdiag(best_arima)
#Normalitas Residual
jarque.bera.test(residual)
#No Autokorelasi
par(mfrow=c(2,1))
acf(residual)
pacf(residual)
#Homoskedastisitas
par(mfrow=c(2,1))
acf(residual^2)
pacf(residual^2)

Normalitas Residual

Pada uji normalitas residual didapatkan nilai p.value dari jarque bera test residual adalah 0.3045 yang mana lebih besar dari alpha(0.05) sehingga H0 tidak ditolak atau dapat dikatakan normalitas residual terpenuhi.

No-Autokorelasi

Dari correlogram di atas, tidak terdapat lag yang keluar dari batas. Asumsi no autokorelasi akan terpenuhi apabila tidak ada lag yang keluar dari batas. Oleh karena itu, dapat disimpulkan bahwa asumsi no autokorelasi terpenuhi.

Homoskedasitas Residual

Dari correlogram di atas, tidak terdapat lag yang keluar dari batas. Asumsi Homoskedasitas residual akan terpenuhi apabila tidak ada lag yang keluar dari batas. Oleh karena itu, dapat disimpulkan bahwa asumsi Homoskedasitas residual terpenuhi.

Kesimpulan diagnostic checking:

dari ketiga asumsi diatas terlihat bahwa semua asumsi terpenuhi sehingga dapat dikatakan model ARIMA(1,2,1) sudah cukup baik untuk digunakan untuk melakukan forecasting.

Forecasting

fcast=forecast(best_arima)
fcast

Dengan menggunakan ARIMA(1,2,1) didapatkan peramalan untuk 10 periode kedepan adalah sebagai berikut:

--

--