Penerapan Metode Auto Regressive Integrated Moving Average (ARIMA) Pada Peramalan Harga Bitcoin Terhadap Rupiah dengan R
ARIMA?
Metode Autoregressive Integrated Moving Average (ARIMA) yang biasa disebut dengan metode Box-Jenkins merupakan metode yang dikembangkan oleh George Box dan Gwilym Jenkins pada tahun 1970. ARIMA adalah model Autoregressive Moving Average (ARMA) yang tidak stasioner. Penggunaan metode ARIMA dalam peramalan jangka pendek sangat tepat dan akurat. Sedangkan untuk peramalan jangka panjang ketepatan peramalannya kurang baik. Biasanya nilai peramalan akan cenderung konstan untuk periode yang cukup panjang.
Model ARIMA terdiri dari tiga proses yaitu autoregressive, integrates, dan moving average dengan order (p,d,q) dinotasikan ARIMA (p,d,q). ARIMA mempunyai syarat asumsi stasioner dalam variasi. Dalam mengatasi ketidakstasioneran data ini dilakukan proses differencing agar data menjadi stasioner, banyaknya differencing dinotasikan dengan d.
Bentuk umum dari model autoregressive ( Makridakis dkk, 1998) dinotasikan sebagai AR(p) sebagai berikut:
Dimana:
𝑋𝑡 = nilai variabel pada waktu ke t
𝜑𝑖 = koefisien autoregressive, i= 1, 2, 3,…,p
𝑒𝑡 = nilai galat pada waktu ke-t
Model Moving Average (MA) order q, dinotasikan menjadi MA(q). Secara umum, model MA(q) sebagai berikut:
Dimana:
𝜃1 = parametaer model moving avaerage (MA)
𝑒𝑡−𝑞 = nilai kesalahan pada saat t-q
𝑞 = order MA
DATA:
Data dapat di download di link berikut: https://www.investing.com/crypto/bitcoin/btc-idr-historical-data
Data yang digunakan adalah data harga bitcoin terhadap rupiah dari 1 September 2017–31 Desember 2019.
Goals:
Melakukan Prediksi Untuk 7 Hari kedepan, tepatnya tanggal 1–7 Januari 2020
Kali ini peramalan menggunakan bantuan program R. Maka pastikan program sudah terinstall pada laptop kalian !
Langkah 1: Statistika Deskriptif
Pertamma masukkan data yang telah di download pada program r, disini peneliti menggunakan RStudio. kemudian ubah data ke bentuk data time series.
bitcoin=read.csv("D://Bitcoin.csv",sep = ",")
bitcoin=ts(bitcoin, start=c(2017, 244), freq=365)
Gambarkan plot dari data harga Bitcoin.
ts.plot(bitcoin,main="TS:bitcoin price", col='green', lwd=2)
Dari gambar diatas dapat diketahui bahwa perkembangan harga Bitcoin dalam dua tahun terakhir cukup fluktuatif. Harga bitcoin terhadap rupiah mulai terjadi kenaikan pada bulan September tahun 2017.
Melihat Statistika desktiprif dari data secara ringkas.
summary(bitcoin)
Dalam kurun waktu 2 tahun tersebut, rata-rata harga Bitcoin adalah senilai Rp.108.384.495.
Langkah 2: Melakukan uji stasioneritas
Dibutuhkan packages berikut.
library(forecast)
library(tseries)
Uji stasioneritas dapat dilihat dari plot ACF (Autocorrelation Function) , data belum stasioner ketikan grafik terlihat meluruh secara melambat menuju 0. uji stasioner juga dapat dilihat dari uji ADF (Augmented Dickey-Fuller) sebagai berikut.
Acf(bitcoin, lag.max = 36)
adf.test(bitcoin)
Berdasarkan hasil uji ADF, dengan menggunakan taraf signifikansi 5% data yang ada tidak mendukung hipotesis nol (data stasioner), maka data harga bitcoin tidak stasioner, sehingga dilakukan proses differencing data untuk data tidak stasioner dalam mean dan tranformasi logaritma natural untuk data tidak stasioner dalam variansi. makan kita akan melakukan differencing tingkat 1, berikut sintaks diffrencing.
#tranformasi data stasioner dan differencing
bitcoin.diff1=diff(bitcoin,differences = )
ts.plot(bitcoin.diff1, main="TS: bitcoin (Differensi Orde 1)")
adf.test(bitcoin.diff1)
gambar grafik diatas, data sudah terlihat stasioner, akan tetapi terlihat variansi data masih cukup besar, maka selanjutnya peneliti melakukan transformasi data (stasioner dalam Variansi).
gunakan transformasi “log” untuk data bitcoin dan differencing tingkat 1.
#transformasi data (stasioner dalam Variansi)
library(car)
bitcoin.log=diff(log(bitcoin),differences = 1)
ts.plot(bitcoin.log, main="TS: bitcoin (Differensi Orde 1)", lwd=1)
dapat dilihat pada plot diatas, sudah terlihat variansi data stasioner disekitar rata-rata. Kemudian dilakukan uji ADF.
adf.test(bitcoin.log)
Berdasarkan uji ADF gambar diatas, data sudah stasioner karena p-value= 0,01< Alpha =0,05. Setelah melalui proses differencing tingkat 1 dan tranfirmasi logaritma natural.
Langkah 3: Estimasi Model
Selanjutnya dilakukan estimasi model dapat dlihat dari plot ACF (Autocorrelation Function) dan PACF (Partial Autocorrelation Function) sebagai berikut.
#identifikasi model
par(mfrow=c(1,2))
Acf(bitcoin.log, lag.max = 10)
Pacf(bitcoin.log, lag.max = 10)
Berdasarkan gambar plot ACF dan PACF diatas, pada plot ACF menunjukan bahwa tidak terdapat lag yang keluar sedangkan pada plot PACF tidak ada juga lag yang keluar, maka didapatkan model ARIMA (0,1,0) yang artinya model tidak mengandung moving average (MA) dan autiregressive (AR). Namun untuk medapatkan model terbaik maka dilakukan overfitting model disekitar model utama. Berikut hasil uji kecocokan model secara keseluruhan.
Peneliti hanya menggunakan 4 model.
#untuk mengetahui model yang ada layak atau tidak layak
model1=Arima(log(bitcoin),order = c(0,1,1)) #gunakan data log saja, jika ingin menggunakan diff maka d=0
model1
printstatarima(model1)#model 2 MA(1)
model2=Arima(log(bitcoin),order = c(0,1,2))
model2
printstatarima(model2)#model 3 MA(2)
model3=Arima(log(bitcoin),order = c(1,1,0))
model3
printstatarima(model3)#model 4 ARMA(1,1)
model4=Arima(log(bitcoin),order = c(1,1,1))
model4
printstatarima(model4)
Dari hasil identifikasi model, maka didapatkan ringkasan sebagai berikut.
Berdasarkan tabel diatas model signifikan pada p-value < α =0,05. Maka, didapatkan model yang signifikan yaitu ARIMA (1,1,1). Sehingga diperoleh persamaan untuk ARIMA (1,1,1) sebagai berikut.
Langkah 4: Uji Diagnostik
Kemudian dilakukan uji diagnostik residual data, terdapat tiga uji diagnostik residual data yaitu uji homoskedastisitas, uji autokorelasi, dan uji normalias,. Berikut hasil dari uji diagnostik residual model ARIMA (1,1,1) sebagai berikut:
tsdiag(model4)
Berdasarkan plot gambar diatas dapat dilihat pada plot ACF residual data merupakan model white noise ditandai dengan tidak adanya lag yang keluar dari garis batas interval. Sedangkan dilihat dari plot p-value for Ljung-Box statistic, nilai p-value ada yang lebih dari α=0,05 yang artinya tidak terdapat autokorelasi pada data sehingga asumsi no-autokorelasi terpenuhi. Kemudian dilihat dari normaliatas data sebagai berikut.
#uji normalitas
jarque.bera.test(log(bitcoin))
Berdasarkan Gambar 10 menunjukkan bahwa residual telah berdistribusi normal karena nilai p-value=0,094 > α=0,05 maka model ARIMA(1,1,1) cocok digunakan untuk peramalan.
Langkah 5: Peramalan
Sebagai catatan: Jika model yang signifikan ada lebih dari satu, maka gunakan model dengan nilai AIC terkecil.
Selanjutnya melakukan permalan harga Bitcoin untuk 7 hari ke depan, gunakan sintaks berikut.
pred.bitcoin=predict(model4,n.ahead = 7)
exp(pred.bitcoin$pred)#dilihat yang pred
exp(pred.bitcoin$se)
Jangan lupa karena tadi kita menggunakan data tranformasi “log”, maka kita harus mengembalikannya ke data semula menggunakan tranformasi “exp”.
maka didapatkan hasil sebagai berikut.
JIka dibentuk dalam tabel maka akan seperti ini.
Berdasarkan tabel diatas menunjukkan hasil peramalan harga Bitcoin 7 hari ke depan yaitu mulai tanggal 01 januari-07 januari 2020. Terlihat hasil peramalan cukup stabil tidak ada perubahan harga yang drastis. Pada awal tahun 1 januari 2020 harga Bitcoin akan di ramalakan sebesar Rp 100.346.391 dan merupakan ramalan harga tertinggi untuk 7 hari kedepan.
Kemudian data aktual, fitting, dan peramalan ditampilan dalam bentuk grafik.
par(mfrow=c(1,1))
ts.plot(bitcoin,col="green",xlim=c(2018,2020))
lines(exp(fitted(model4)), col="blue")
lines(exp(pred.bitcoin$pred), col="red")
Langkah 6: Akurasi Peramalan
Dapat melihat nilai keakuratan peramalan dengan menggunakan metode Mean Absobute Percentage Error (MAPE).
mape= mean(abs(bitcoin-(exp(fitted(model4))))/(bitcoin))*100
mape
didapatkan nilai akurasi sebesar 97,5%. Berdasarkan nilai MAPE, peramalan metode Autoregressive Moving Average (ARIMA) secara umum, menunjukan bahwa hasil peramalan yang sangat akurat, karena memililki akurasi > 90%.
Referensi:
- Makridakis, S.G., Wheelwright, S.C., dan Hyndman, R.J. 1998. Forecasting: Methods and Aplication, 3rd Edition. John Wiley & Sons, Inc. New Jersey.
- Nurlita. 2010. Penerapan Metode Peramalan Arima (Autoregressive Integrated Moving Average) untuk Penentuan Tingkat Safety Stock pada Industri Elektronik (Skripsi). Universitas Indonesia Fakultas Teknik Industri Depok.