Studi Kasus Inflasi Indonesia (2015-2023)

Author

Kelompok 1

Pendahuluan

Analisis ini menggunakan data inflasi Indonesia bulanan dari Januari 2015 hingga Desember 2023. Metode yang digunakan adalah ARIMA (Autoregressive Integrated Moving Average), salah satu metode time series paling umum dalam ekonometrika makro untuk meramalkan variabel yang berurutan dalam waktu.


Library

# install.packages(c("forecast", "tseries", "ggplot2"))
library(forecast)
library(tseries)
library(ggplot2)

Data

set.seed(42)
n        <- 108  # Jan 2015 - Des 2023
trend    <- seq(3.5, 4.2, length.out = n)
seasonal <- 0.5 * sin(2 * pi * (1:n) / 12)
noise    <- arima.sim(model = list(ar = 0.6), n = n, sd = 0.3)
inflasi  <- trend + seasonal + noise

inflasi_ts <- ts(inflasi, start = c(2015, 1), frequency = 12)
autoplot(inflasi_ts) +
  labs(title = "Inflasi Indonesia (2015-2023)",
       y = "Inflasi (%)", x = "Tahun") +
  theme_minimal()

Pergerakan inflasi Indonesia 2015-2023

Langkah 1: Uji Stasioneritas (ADF)

Sebelum membuat model ARIMA, data harus stasioner — artinya mean dan variansi tidak berubah sepanjang waktu. Uji yang digunakan adalah Augmented Dickey-Fuller (ADF).

  • H₀: data tidak stasioner
  • H₁: data stasioner
adf_test <- adf.test(inflasi_ts)
Warning in adf.test(inflasi_ts): p-value smaller than printed p-value
print(adf_test)

    Augmented Dickey-Fuller Test

data:  inflasi_ts
Dickey-Fuller = -5.9804, Lag order = 4, p-value = 0.01
alternative hypothesis: stationary
if (adf_test$p.value < 0.05) {
  cat(">> Data stasioner (p < 0.05). Lanjut ke identifikasi model.\n")
  data_model <- inflasi_ts
} else {
  cat(">> Data tidak stasioner. Dilakukan first differencing (d=1).\n")
  data_model <- diff(inflasi_ts)
  print(adf.test(data_model))
}
>> Data stasioner (p < 0.05). Lanjut ke identifikasi model.

Langkah 2: Identifikasi Model (ACF & PACF)

  • ACF digunakan untuk menentukan orde MA (q)
  • PACF digunakan untuk menentukan orde AR (p)
par(mfrow = c(1, 2))
acf(data_model,  main = "ACF - Inflasi")
pacf(data_model, main = "PACF - Inflasi")

par(mfrow = c(1, 1))

Langkah 3: Estimasi Model ARIMA

auto.arima() memilih kombinasi (p, d, q) terbaik berdasarkan nilai AIC terkecil.

model_arima <- auto.arima(inflasi_ts, seasonal = TRUE, stepwise = FALSE)
summary(model_arima)
Series: inflasi_ts 
ARIMA(2,1,3) 

Coefficients:
         ar1      ar2      ma1     ma2      ma3
      1.6363  -0.8663  -1.9306  1.1994  -0.2307
s.e.  0.0664   0.0692   0.1318  0.2736   0.1629

sigma^2 = 0.1099:  log likelihood = -32.31
AIC=76.61   AICc=77.45   BIC=92.65

Training set error measures:
                     ME      RMSE       MAE        MPE     MAPE      MASE
Training set 0.02937675 0.3222316 0.2601458 0.08520249 7.180511 0.6087439
                    ACF1
Training set 0.002166454

Langkah 4: Diagnostik Residual

Residual yang baik menyerupai white noise — tidak ada pola yang tersisa. Diuji menggunakan Ljung-Box Test.

  • H₀: tidak ada autokorelasi di residual
  • H₁: ada autokorelasi di residual
checkresiduals(model_arima)


    Ljung-Box test

data:  Residuals from ARIMA(2,1,3)
Q* = 12.232, df = 17, p-value = 0.7859

Model df: 5.   Total lags used: 22
lb_test <- Box.test(residuals(model_arima), lag = 12, type = "Ljung-Box")
cat("Ljung-Box p-value:", round(lb_test$p.value, 4), "\n")
Ljung-Box p-value: 0.8418 
if (lb_test$p.value > 0.05) {
  cat(">> Residual bersih. Model sudah cukup baik.\n")
} else {
  cat(">> Masih ada pola di residual. Pertimbangkan spesifikasi model lain.\n")
}
>> Residual bersih. Model sudah cukup baik.

Langkah 5: Forecast

Meramalkan inflasi 12 bulan ke depan (2024).

fc <- forecast(model_arima, h = 12)
print(fc)
         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
Jan 2024       3.978635 3.553706 4.403563 3.328763 4.628507
Feb 2024       4.087341 3.567246 4.607437 3.291924 4.882759
Mar 2024       4.150984 3.579504 4.722464 3.276981 5.024987
Apr 2024       4.160953 3.571622 4.750284 3.259649 5.062257
May 2024       4.122132 3.530962 4.713302 3.218015 5.026249
Jun 2024       4.049974 3.457924 4.642023 3.144513 4.955434
Jul 2024       3.965531 3.368506 4.562556 3.052460 4.878602
Aug 2024       3.889867 3.287276 4.492458 2.968283 4.811451
Sep 2024       3.839209 3.234475 4.443943 2.914348 4.764070
Oct 2024       3.821863 3.217117 4.426609 2.896984 4.746743
Nov 2024       3.837365 3.228980 4.445750 2.906921 4.767809
Dec 2024       3.877756 3.257325 4.498187 2.928889 4.826623
autoplot(fc) +
  labs(title = "Forecast Inflasi Indonesia (2024)",
       y = "Inflasi (%)", x = "Tahun") +
  theme_minimal()

Forecast inflasi Indonesia tahun 2024

Kesimpulan

Model ARIMA berhasil menangkap pola inflasi Indonesia dan menghasilkan forecast yang reasonable untuk 12 bulan ke depan. Diagnostik residual menunjukkan bahwa model sudah memadai jika nilai p Ljung-Box lebih dari 0.05.