Pembangkitan Data Time Series

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)")

Melakukan Pemodelan

  1. Buat Plot ACF dan PACF

  2. Cek Kestasioneran dengan ADF Test

  3. Melakukan differencing

  4. Buat Plot ACF dan PACF

  5. Cek Kestasioneran dengan ADF Test

  6. Ubah ke data ts

  7. Buat kandidat model melalui ACF, PACF, fa EACF

  8. Bandingkan dengan hasil auto.arima

  9. 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

Kandidat Model

acf(data.ts)

pacf(data.ts)

Kandidat Model ARIMA(1,1,1); ARIMA(1,1,3); ARIMA(0,1,1); ARIMA(2,0,2

Penentuan Model Terbaik berdasarkan AIC

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.