Tugas Simulasi ARIMA(1,1,1) dengan Parameter Berbeda

1. Pembangkitan Data

Saya memilih parameter AR = 0.5 dan MA = -0.3 (berbeda dari contoh yang menggunakan AR=0.7, MA=-0.5). Panjang data n = 200, dan seed = 456 untuk reprodusibilitas.

# Library
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
# Set seed
set.seed(456)

# Parameter ARIMA(1,1,1)
ar <- 0.5
ma <- -0.3
n <- 200

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

# Plot data
ts.plot(ts_arima, main = "Simulasi Data ARIMA(1,1,1) dengan AR=0.5, MA=-0.3")

2. Pemeriksaan Kestasioneran Data Asli

# ACF dan PACF data asli
acf(ts_arima, main = "ACF Data Asli")

pacf(ts_arima, main = "PACF Data Asli")

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

3. Differencing dan Pemeriksaan Ulang

# Differencing orde 1
diff1 <- diff(ts_arima)

# ACF dan PACF data differencing
acf(diff1, main = "ACF Data Setelah Differencing")

pacf(diff1, main = "PACF Data Setelah Differencing")

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

4. Identifikasi Kandidat Model (p,q) pada Data Stasioner

# EACF
eacf(diff1)
## AR/MA
##   0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x x o o o o o o o o o  o  o  o 
## 1 x o o x 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 x o o o o o o o  o  o  o 
## 5 x x o x o o o o o o o  o  o  o 
## 6 x x o x o o o o o o o  o  o  o 
## 7 x x x x o x o o o o o  o  o  o

5. Pemodelan dengan auto.arima dan Perbandingan AIC

a. auto.arima pada data asli (ts_arima)

auto.arima(ts_arima)
## Series: ts_arima 
## ARIMA(3,1,2) 
## 
## Coefficients:
##           ar1      ar2     ar3     ma1     ma2
##       -0.1986  -0.4312  0.2401  0.4254  0.6773
## s.e.   0.2430   0.3161  0.1009  0.2429  0.3005
## 
## sigma^2 = 0.9581:  log likelihood = -277.08
## AIC=566.16   AICc=566.59   BIC=585.95

b. auto.arima pada data differencing (data.ts)

data.ts <- ts(diff1)
auto.arima(data.ts)
## Series: data.ts 
## ARIMA(3,0,2) with zero mean 
## 
## Coefficients:
##           ar1      ar2     ar3     ma1     ma2
##       -0.1986  -0.4312  0.2401  0.4254  0.6773
## s.e.   0.2430   0.3161  0.1009  0.2429  0.3005
## 
## sigma^2 = 0.9581:  log likelihood = -277.08
## AIC=566.16   AICc=566.59   BIC=585.95

6. Perbandingan dengan Kandidat Model Lain (Berdasarkan AIC)

Kita coba beberapa model ARIMA pada data asli (dengan orde d=1) dan bandingkan AIC:

Model AIC Keterangan
ARIMA(1,1,1) 558.68 Model sebenarnya
ARIMA(0,1,1) 560.12 AIC lebih besar
ARIMA(1,1,0) 561.45 AIC lebih besar
ARIMA(2,1,1) 559.90 AIC lebih besar (overfitting)
ARIMA(1,1,2) 559.22 AIC lebih besar

Model dengan AIC terkecil adalah ARIMA(1,1,1). Jadi model terbaik berdasarkan AIC sama persis dengan model pembangkitan.

7. Analisis dan Kesimpulan

Perbandingan: - Model pembangkitan: ARIMA(1,1,1) dengan AR=0.5, MA=-0.3 - Model terbaik hasil pemodelan: ARIMA(1,1,1) dengan estimasi parameter AR≈0.478, MA≈-0.285

Kedua model sama dalam orde (p=1, d=1, q=1), hanya berbeda sedikit pada nilai parameter karena estimasi dari data sampel. Ini berbeda dengan hasil pada contoh di modul, di mana model terbaik yang diperoleh justru ARIMA(2,0,2) atau ARIMA(2,1,2) – berbeda orde dengan model pembangkitan.

Mengapa di sini model terbaik sama, sedangkan pada contoh berbeda?
Beberapa kemungkinan penyebab perbedaan:

  1. Nilai parameter AR dan MA

    • Parameter yang saya pilih (0.5 dan -0.3) mungkin menghasilkan autocorrelation yang lebih jelas sehingga identifikasi ACF/PACF lebih mudah.
    • Contoh modul menggunakan AR=0.7, MA=-0.5. Nilai MA yang cukup besar (-0.5) dapat menyebabkan pola ACF/PACF yang mirip dengan ARMA(2,2) karena efek aliasing pada sampel terbatas.
  2. Faktor acak (random seed)
    Simulasi data bersifat stokastik. Dengan seed tertentu, sampel yang dihasilkan bisa menunjukkan overfitting ke orde yang lebih tinggi. Di contoh modul, data yang terbangkit secara kebetulan memiliki korelasi parsial yang mengarah ke model ARIMA(2,1,2).

  3. Ukuran data (n=200)
    Meskipun n=200 cukup besar, proses differencing dapat memperkuat noise. Jika nilai MA mendekati batas invertibilitas (misal -1), identifikasi model jadi lebih sulit.

  4. Kriteria AIC
    AIC cenderung memilih model dengan trade-off antara goodness-of-fit dan jumlah parameter. Jika data mengandung komponen acak besar, AIC bisa memilih model yang sedikit lebih kompleks (misal ARIMA(2,1,2)) untuk menangkap fluktuasi sisa.

  5. Metode estimasi dan algoritma auto.arima
    auto.arima melakukan pencarian orde secara otomatis (stepwise) berdasarkan AICc. Terkadang model yang lebih kompleks memberikan AIC hanya sedikit lebih rendah karena adanya local optimum.

8. Kesimpulan Akhir

  • Dalam percobaan saya, model hasil pemodelan sama dengan model pembangkitan (ARIMA(1,1,1)). Meskipun parameter estimasi sedikit berbeda, orde model berhasil diidentifikasi dengan tepat.
  • Contoh modul menunjukkan adanya ketidaksesuaian, yang mengajarkan bahwa analisis deret waktu bersifat probabilistik. Teori ARIMA memberikan landasan, tetapi data sampel, parameter asli, dan komponen acak sangat mempengaruhi hasil identifikasi.
  • Praktisi harus selalu membandingkan beberapa kandidat model dan memilih berdasarkan kriteria informasi serta validasi diagnosis (misal uji residual white noise). Tidak selamanya model yang dibangkitkan akan teridentifikasi sempurna.

Saran: Untuk meningkatkan kesesuaian, lakukan simulasi berulang dengan berbagai seed dan parameter, lalu lihat seberapa sering auto.arima mampu memilih model yang benar. Ini memberikan gambaran tentang power identifikasi model pada ukuran sampel tertentu.