‘tseries’ menyediakan fungsi untuk uji statistik runtun waktu dan analisis time series secara umum
‘TSA’ berisi fungsi untuk analisis deret waktu yang lebih spesifik seperti model ARIMA
‘forecast’ digunakan untuk membuat prediksi (forecast) dari data deret waktu.
Membangkitkan data time series dengan model ARIMA(1,1,1). Menentukan nilai AR dan MA secara acak.
# Set seed untuk reprodusibilitas
set.seed(123)
# Panjang data
n <- 200
# Parameter ARIMA(p=1, d=1, q=1)
ar <- 0.7 # AR(1)
ma <- -0.5 # MA(1)
# Simulasi data
ts_arima <- arima.sim(model = list(order = c(1,1,1), ar=ar, ma=ma), n=n)
# Plot
ts.plot(ts_arima, main = "Simulasi Data ARIMA(1,1,1)")
Buat Plot ACF dan PACF
Cek Kestasioneran dengan ADF Test
Melakukan differencing
Buat Plot ACF dan PACF
Cek Kestasioneran dengan ADF Test
Ubah ke data ts
Buat kandidat model melalui ACF, PACF, fa EACF
Bandingkan dengan hasil auto.arima
Cek AIC terkecil
acf(ts_arima)
pacf(ts_arima)
Karena p-value = 0.388 > 0.05, sehingga disimpulkan data tidak stasioner dan harus dilakukan proses differencing.
diff1 <- diff(ts_arima)
acf(diff1)
pacf(diff1)
Karena nilai p-value = 0.01 < 0.05, sehingga disimpulkan data sudah stasioner
data.ts <- ts(diff1)
head(data.ts)
## [1] -0.4362295 -1.1367886 -0.4798151 -1.2528876 -1.0929103 -1.0256309
acf(data.ts)
pacf(data.ts)
arima(data.ts, order=c(1,1,1), method="ML")
##
## Call:
## arima(x = data.ts, order = c(1, 1, 1), method = "ML")
##
## Coefficients:
## ar1 ma1
## 0.1488 -1.0000
## s.e. 0.0706 0.0164
##
## sigma^2 estimated as 0.8926: log likelihood = -273.56, aic = 553.13
arima(data.ts, order=c(1,1,3), method="ML")
##
## Call:
## arima(x = data.ts, order = c(1, 1, 3), method = "ML")
##
## Coefficients:
## ar1 ma1 ma2 ma3
## -0.8559 0.0335 -0.9642 -0.0693
## s.e. 0.0800 0.1018 0.0443 0.0772
##
## sigma^2 estimated as 0.8611: log likelihood = -270.25, aic = 550.49
arima(data.ts, order=c(0,1,1), method="ML")
##
## Call:
## arima(x = data.ts, order = c(0, 1, 1), method = "ML")
##
## Coefficients:
## ma1
## -0.9294
## s.e. 0.1078
##
## sigma^2 estimated as 0.93: log likelihood = -276.14, aic = 556.28
arima(data.ts, order=c(2,0,2), method="ML")
##
## Call:
## arima(x = data.ts, order = c(2, 0, 2), method = "ML")
##
## Coefficients:
## ar1 ar2 ma1 ma2 intercept
## -0.1096 0.6350 0.3087 -0.6269 -0.0214
## s.e. 0.2164 0.1692 0.2283 0.2112 0.0931
##
## sigma^2 estimated as 0.8456: log likelihood = -267.26, aic = 546.51
Berdasarkan hasil pemodelan, diperoleh model dengan nilai AIC terkecil adalah ARIMA(2,0,2) yaitu 544.51, hal ini dikarenakan data yang terbaca adalah data hasil differencing. Diperoleh pembelajaran bahwa, data time series yang dibangkitkan dengan model tertentu, belum tentu akan sama dengan hasil pemodelan terbaiknya. Hal ini diduga karena adanya faktor-faktor lain yang mempengaruhi proses pemodelan.