# Set seed untuk reprodusibilitas
set.seed(123)

# Panjang data
n <- 200

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

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(ts_arima)

ACF menunjukkan pola penurunan secara bertahap (slow decay), yang mengindikasikan bahwa data belum stasioner.

pacf(ts_arima)

PACF menunjukkan batang pada lag 1 berada di luar batas signifikansi, sedangkan lag lainnya berada di dalam batas, sehingga hanya lag 1 yang menunjukkan hubungan yang signifikan.

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
adf.test(ts_arima)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  ts_arima
## Dickey-Fuller = -2.5043, Lag order = 5, p-value = 0.3649
## alternative hypothesis: stationary

p-value = 0.3649 > 0.05 Berdasarkan uji ADF, data tidak stasioner sehingga perlu dilakukan proses differencing.

# differencing
diff1 <- diff(ts_arima)

acf(diff1)

pacf(diff1)

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

Berdasarkan hasil uji Augmented Dickey-Fuller setelah differencing pertama, diperoleh nilai statistik Dickey-Fuller sebesar −7.2877 dengan p-value = 0.01. Karena p-value lebih kecil dari taraf signifikansi 0.05, maka hipotesis nol yang menyatakan data tidak stasioner ditolak, sehingga dapat disimpulkan bahwa data sudah stasioner setelah dilakukan differencing pertama. Hal ini mengkonfirmasi bahwa orde differencing d=1 sudah cukup untuk membuat data stasioner.

Kesimpulan tersebut juga didukung oleh plot ACF dan PACF data setelah differencing. Pada plot ACF, terlihat bahwa lag 1 memiliki nilai yang cukup besar dan melewati batas signifikansi, namun lag-lag berikutnya langsung turun dan sebagian besar berada di dalam batas kepercayaan. Pola serupa juga terlihat pada plot PACF, di mana lag 1 dan lag 2 melewati batas signifikansi tetapi lag selanjutnya sudah tidak signifikan.

data.ts<-ts(diff1)
head(data.ts)
## [1] -0.24131388 -1.58987373 -0.24579086 -0.08270843  1.47493729 -0.07964779
acf(data.ts)

pacf(data.ts)

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
eacf(data.ts)
## AR/MA
##   0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x o o x o o o o o o o  o  o  o 
## 1 x x o o o o o o o o o  o  o  o 
## 2 o x o o o o o o o o o  o  o  o 
## 3 o x x o o o o o o o o  o  o  o 
## 4 o x x o o o o o o o o  o  o  o 
## 5 x x x o o o o o o o o  o  o  o 
## 6 o o x x o o o o o o o  o  o  o 
## 7 x o x o o o o o o o o  o  o  o
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
auto.arima(data.ts)
## Series: data.ts 
## ARIMA(2,0,2) with zero mean 
## 
## Coefficients:
##           ar1     ar2     ma1      ma2
##       -0.7748  0.0510  0.3583  -0.5902
## s.e.   0.1375  0.1447  0.1159   0.1229
## 
## sigma^2 = 0.8645:  log likelihood = -267.69
## AIC=545.37   AICc=545.68   BIC=561.86

Kandidat model diperoleh berdasarkan analisis plot ACF dan PACF yang menunjukkan adanya indikasi komponen AR dan MA. Selain itu, hasil EACF memberikan beberapa kombinasi orde model, dan fungsi auto.arima digunakan sebagai pembanding tambahan. Berdasarkan hal tersebut, diperoleh kandidat model ARIMA(1,1,1), ARIMA(0,1,1), ARIMA(1,1,0), ARIMA(1,1,3), dan ARIMA(2,0,2) yang selanjutnya digunakan dalam tahap pemodelan.

auto.arima(ts_arima)
## Series: ts_arima 
## ARIMA(2,1,2) 
## 
## Coefficients:
##           ar1     ar2     ma1      ma2
##       -0.7748  0.0510  0.3583  -0.5902
## s.e.   0.1375  0.1447  0.1159   0.1229
## 
## sigma^2 = 0.8645:  log likelihood = -267.69
## AIC=545.37   AICc=545.68   BIC=561.86

Hasil estimasi menunjukkan bahwa model terbaik yang terpilih adalah ARIMA(2,1,2), artinya model memiliki komponen autoregressive orde 2, satu kali differencing, dan komponen moving average orde 2. Koefisien ar1 sebesar −0.7748 menunjukkan pengaruh negatif yang cukup besar dari nilai satu periode sebelumnya, sedangkan ar2 sebesar 0.0510 pengaruhnya sangat kecil dan kurang signifikan secara praktis. Koefisien ma1 sebesar 0.3583 menunjukkan pengaruh positif dari kesalahan satu periode sebelumnya, sementara ma2 sebesar −0.5902 menunjukkan pengaruh negatif yang cukup besar dari kesalahan dua periode sebelumnya. Nilai standar error seluruh koefisien berkisar antara 0.11 hingga 0.14, menandakan estimasi parameter cukup presisi. Nilai sigma² sebesar 0.8645 menunjukkan ragam kesalahan model yang relatif kecil, artinya model cukup baik dalam menangkap pola data. Nilai AIC sebesar 545.37, AICc sebesar 545.68, dan BIC sebesar 561.86 menjadi acuan kebaikan model, di mana nilai AIC dan AICc yang sangat berdekatan mengindikasikan ukuran sampel sudah memadai untuk estimasi model ini.

model1 <- arima(data.ts, order=c(1,1,1), method="ML")  # model asli

model2 <- arima(data.ts, order=c(0,1,1), method="ML")  # MA

model3 <- arima(data.ts, order=c(1,1,0), method="ML")  # AR

model4 <- arima(data.ts, order=c(1,1,3), method="ML")  # dari EACF

model5 <- arima(data.ts, order=c(2,0,2), method="ML")  # dari auto.arima
AIC(model1, model2, model3, model4, model5)
## Warning in AIC.default(model1, model2, model3, model4, model5): models are not
## all fitted to the same number of observations
##        df      AIC
## model1  3 572.7479
## model2  2 593.5198
## model3  2 703.7599
## model4  5 550.6080
## model5  6 547.3435

Model terbaik berdasarkan nilai AIC adalah model5 yaitu ARIMA(2,0,2), karena memiliki nilai AIC paling kecil dibandingkan model lainnya.

perbandingan model hasil vs model

Data pada analisis ini dibangkitkan secara eksplisit menggunakan model ARIMA(1,1,1) dengan parameter AR = 0.2 dan parameter MA = −0.6, serta dilakukan satu kali differencing (d=1) pada n=200 observasi. Dengan demikian, proses pembangkit data sudah diketahui secara pasti, yaitu ARIMA(1,1,1) dengan df=3.

Berdasarkan hasil proses pemodelan yang ditunjukkan oleh tabel perbandingan AIC, model terbaik yang diperoleh adalah model5 dengan nilai AIC terkecil sebesar 547.34 dan df=6, yang mengindikasikan model dengan struktur lebih kompleks dibandingkan model pembangkit, kemungkinan berupa ARIMA dengan orde lebih tinggi. Sebagai pembanding, model1 dengan df=3 yang secara struktur paling mendekati model pembangkit menghasilkan AIC sebesar 572.75.

Berdasarkan perbandingan tersebut, model pembangkit dan model terbaik hasil pemodelan tidak sama. Model pembangkit ARIMA(1,1,1) dengan df=3, sedangkan model terbaik memiliki df=6 yang menunjukkan kompleksitas lebih tinggi. Perbedaan ini dapat dijelaskan oleh beberapa kemungkinan penyebab. Pertama, nilai parameter AR yang kecil 0.2 membuat komponen autoregressive relatif sulit dikenali dari fluktuasi acak pada sampel dengan ukuran n=200, sehingga proses estimasi secara empiris cenderung mengkompensasinya dengan menambahkan parameter ekstra agar model dapat menangkap pola data dengan lebih baik. Kedua, realisasi data menunjukkan fluktuasi yang cukup ekstrem sehingga pola ACF dan PACF empiris tampak mencerminkan struktur korelasi yang lebih kompleks dari orde satu dan mendorong pemilihan model dengan parameter lebih banyak. Ketiga, kriteria AIC memberikan penalti yang relatif ringan terhadap penambahan parameter, sehingga model dengan df=6 lebih mudah unggul secara AIC dibandingkan model yang lebih sederhana meskipun model pembangkit sesungguhnya hanya berdf=3.

Perbedaan antara model pembangkit ARIMA(1,1,1) dan model terbaik hasil pemodelan bukan merupakan suatu kesalahan analisis, melainkan mencerminkan tantangan dalam identifikasi model deret waktu pada ukuran sampel yang terbatas. Model1 dengan df=3 secara teoretis paling sesuai dengan proses pembangkit data yang sebenarnya, sementara model5 yang terpilih berdasarkan AIC merupakan hasil dari overfitting parsial terhadap fluktuasi sampel. Hal ini menegaskan pentingnya mempertimbangkan tidak hanya kriteria statistik seperti AIC, tetapi juga prinsip kesederhanaan model dalam pemilihan model deret waktu.