library(tseries)
## Warning: package 'tseries' was built under R version 4.4.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(TSA)
## Warning: package 'TSA' was built under R version 4.4.3
## 
## Attaching package: 'TSA'
## The following objects are masked from 'package:stats':
## 
##     acf, arima
## The following object is masked from 'package:utils':
## 
##     tar
library(forecast)
## Warning: package 'forecast' was built under R version 4.4.3
## Registered S3 methods overwritten by 'forecast':
##   method       from
##   fitted.Arima TSA 
##   plot.Arima   TSA

Pembangkitan Data Time Series

Membangkitkan data time series dengan model ARIMA(1,1,1). Dengan AR = -0.4 dan MA = 0.6

set.seed(456)

n <- 200

# Parameter ARIMA(p=1, d=1, q=1)
ar <- -0.4
ma <- 0.6

ts_arima <- arima.sim(model = list(order = c(1,1,1), ar = ar, ma = ma), n = n)

ts.plot(ts_arima, main = "Simulasi Data ARIMA(1,1,1)")

ACF & PACF

acf(ts_arima)

Plot ACF menunjukkan penurunan yang sangat lambat (tailing off panjang), sehingga mengindikasikan bahwa data belum stasioner. Hal ini sesuai karena data dibangkitkan dari model ARIMA(1,1,1) yang memiliki komponen differencing (d = 1), sehingga data awalnya memang mengandung tren.

pacf(ts_arima)

Plot PACF menunjukkan satu lonjakan signifikan pada lag 1, kemudian nilai pada lag berikutnya kecil dan berada dalam batas kepercayaan (cut-off). Pola ini mengarah pada adanya komponen autoregressive orde 1 (AR(1)).

ADF Test

adf.test(ts_arima)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  ts_arima
## Dickey-Fuller = -2.3719, Lag order = 5, p-value = 0.4203
## alternative hypothesis: stationary

Diperoleh p-value sebesar 0.4203 (> 0.05), sehingga gagal menolak hipotesis nol yang menyatakan data tidak stasioner dan perlu dilakukan proses differencing.

Diffencing

diff1 <- diff(ts_arima)

ACF & PACF Diff

acf(diff1)

Plot ACF setelah differencing menunjukkan sebagian besar nilai autokorelasi sudah berada di dalam batas kepercayaan dan tidak lagi menurun secara perlahan seperti sebelumnya. Ini menandakan , data sudah menjadi lebih stasioner. Tidak terlihat cut-off yang jelas, sehingga komponen MA tidak terlalu dominan.

pacf(diff1)

Plot PACF menunjukkan satu lonjakan signifikan pada lag 1, kemudian nilai pada lag berikutnya kecil dan berada dalam batas kepercayaan (cut-off). Pola ini mengarah pada adanya komponen autoregressive orde 1 (AR(1)).

Uji stasioner

adf.test(diff1)
## Warning in adf.test(diff1): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  diff1
## Dickey-Fuller = -6.2244, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary

Bedasarkan uji ADF setelah differencing, diperoleh p-value (< 0.01) < 0.05 sehingga hipotesis nol ditolak. Hal ini menunjukkan bahwa data telah stasioner, sehingga proses differencing satu kali (d = 1) sudah cukup.

data.ts <- ts(diff1)
head(data.ts)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]  0.7800208 -0.8838780  1.1151624  1.3293198  1.7154365 -1.1346226

Kadidat Model

acf(data.ts)

ACF menunjukkan pola menurun perlahan atau tidak terputus langsung, jadi tidak ada komponen MA yang kuat.

pacf(data.ts)

PACF cut-off pada lag 1, atau hanya signifikan di lag 1 lalu langsung kecil, artinya ada komponen AR orde 1.

eacf(data.ts)
## AR/MA
##   0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x o o o o o o o o o o  o  o  o 
## 1 o o o x o o o o o o o  o  o  o 
## 2 x o o x o o o o o o o  o  o  o 
## 3 x o x o o o o o o o o  o  o  o 
## 4 x o x x o o o o o o o  o  o  o 
## 5 o o x o o o o o o o o  o  o  o 
## 6 o x o o x x o o o o o  o  o  o 
## 7 x x o o o o o o o o o  o  o  o

Berdasarkan tabel identifikasi ARMA, kombinasi yang paling sederhana dan memiliki pola signifikan pada lag awal adalah AR(1) dan AR(2).

auto.arima(data.ts)
## Series: data.ts 
## ARIMA(1,0,2) with zero mean 
## 
## Coefficients:
##           ar1     ma1     ma2
##       -0.6994  0.9057  0.0985
## s.e.   0.2898  0.2951  0.1068
## 
## sigma^2 = 0.9712:  log likelihood = -279.38
## AIC=566.77   AICc=566.97   BIC=579.96
auto.arima(ts_arima)
## Series: ts_arima 
## ARIMA(1,1,2) 
## 
## Coefficients:
##           ar1     ma1     ma2
##       -0.6994  0.9057  0.0985
## s.e.   0.2898  0.2951  0.1068
## 
## sigma^2 = 0.9712:  log likelihood = -279.38
## AIC=566.77   AICc=566.97   BIC=579.96

Koefisien MA pada lag ke-2 memiliki nilai yang lebih rendah dari dua kali standar error-nya (0.0985 < 0.2136), sehingga dapat dikatakan tidak signifikan dan pengaruhnya dalam model cenderung lemah.

Kandidat Model ARIMA(1,1,0) ARIMA(1,1,1) ARIMA(0,1,1)

Penentuan Model Terbaik bedasarkan AIC

arima(data.ts, order = c(1,1,0), method = "ML")
## 
## Call:
## arima(x = data.ts, order = c(1, 1, 0), method = "ML")
## 
## Coefficients:
##           ar1
##       -0.3896
## s.e.   0.0654
## 
## sigma^2 estimated as 1.368:  log likelihood = -313.65,  aic = 629.3
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.1979  -0.9884
## s.e.  0.0708   0.0180
## 
## sigma^2 estimated as 0.9747:  log likelihood = -281.5,  aic = 567.01
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.9805
## s.e.   0.0182
## 
## sigma^2 estimated as 1.014:  log likelihood = -285.35,  aic = 572.71

Berdasarkan hasil pemodelan, diperoleh model dengan nilai AIC terkecil adalah ARIMA (1,1,1), dengan niali AIC sebesar 567.01.

Berdasarkan hasil AIC, data yang di bangkitkan menghasilkan model yang sesuai dengan model awal yang digunakan dalam simulasi, yaitu model ARIMA(1,1,1). Artinya, proses identifikasi dan pemodelan berhasil menangkap struktur dasar dari data yang dibangkitkan.

Meskipun nilai parameter hasil estimasi berbeda dari parameter awal, namun model yang diperoleh tetap memiliki struktur yang sama yaitu ARIMA(1,1,1). Perbedaan nilai parameter ini disebabkan oleh adanya unsur acak dalam data simulasi.