1 Pendahuluan

Analisis time series merupakan metode statistik yang digunakan untuk menganalisis data yang diamati secara berurutan terhadap waktu.

Penelitian ini menggunakan model ARIMA (AutoRegressive Integrated Moving Average) untuk menganalisis pola serta melakukan prediksi jumlah penumpang pesawat.

Dataset yang digunakan adalah AirPassengers, yaitu data jumlah penumpang pesawat bulanan dari tahun 1949 hingga 1960.

Tujuan analisis ini adalah:

  1. Mengidentifikasi pola data time series
  2. Menguji kestasioneran data
  3. Membangun model ARIMA terbaik
  4. Melakukan forecasting jumlah penumpang

2 Persiapan Library

library(forecast)
## Warning: package 'forecast' was built under R version 4.3.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(tseries)
## Warning: package 'tseries' was built under R version 4.3.3
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3

3 Dataset

data("AirPassengers")

data_ts <- AirPassengers

Dataset AirPassengers merupakan dataset nyata yang berisi jumlah penumpang pesawat internasional per bulan dalam satuan ribuan penumpang.


4 Eksplorasi Data (EDA)

4.1 Statistik Deskriptif

summary(data_ts)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   104.0   180.0   265.5   280.3   360.5   622.0

4.2 Visualisasi Time Series

autoplot(data_ts) +
  ggtitle("Air Passenger Time Series (1949–1960)") +
  xlab("Year") +
  ylab("Passengers (Thousands)") +
  theme_minimal()

Interpretasi:

  • Terlihat adanya trend meningkat
  • Terdapat pola musiman (seasonality)

5 Decomposition Time Series

decomp <- decompose(data_ts)

autoplot(decomp)

Komponen yang diperoleh:

  • Trend
  • Seasonal
  • Random / Irregular

6 Uji Stasioneritas

6.1 Augmented Dickey Fuller Test

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

Interpretasi:

Jika p-value > 0.05, maka data belum stasioner.


7 Differencing

data_diff <- diff(data_ts)

autoplot(data_diff) +
  ggtitle("Differenced Series") +
  theme_minimal()

Setelah differencing, pola data menjadi lebih stabil.


8 ACF dan PACF

par(mfrow=c(1,2))

acf(data_diff, main="ACF Plot")

pacf(data_diff, main="PACF Plot")

ACF dan PACF digunakan untuk menentukan parameter p dan q dalam model ARIMA.


9 Pemodelan ARIMA

model_arima <- auto.arima(data_ts)

summary(model_arima)
## Series: data_ts 
## ARIMA(2,1,1)(0,1,0)[12] 
## 
## Coefficients:
##          ar1     ar2      ma1
##       0.5960  0.2143  -0.9819
## s.e.  0.0888  0.0880   0.0292
## 
## sigma^2 = 132.3:  log likelihood = -504.92
## AIC=1017.85   AICc=1018.17   BIC=1029.35
## 
## Training set error measures:
##                  ME     RMSE     MAE      MPE     MAPE     MASE        ACF1
## Training set 1.3423 10.84619 7.86754 0.420698 2.800458 0.245628 -0.00124847

Fungsi auto.arima() secara otomatis memilih model terbaik berdasarkan nilai AIC.


10 Diagnostik Model

checkresiduals(model_arima)

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(2,1,1)(0,1,0)[12]
## Q* = 37.784, df = 21, p-value = 0.01366
## 
## Model df: 3.   Total lags used: 24

Diagnostik model bertujuan untuk memastikan bahwa:

  • Residual bersifat white noise
  • Model sudah cukup baik

11 Forecasting

forecast_result <- forecast(model_arima, h=24)

autoplot(forecast_result) +
  ggtitle("Forecast Air Passenger Demand (Next 24 Months)") +
  theme_minimal()

Interpretasi:

Model ARIMA memprediksi bahwa jumlah penumpang akan terus meningkat dengan pola musiman yang tetap.


12 Menggunakan Dataset Sendiri

Bagian ini memungkinkan pengguna untuk mengganti dataset dengan data mereka sendiri.

12.1 Input Data

data_user <- c(
112,118,132,129,121,135,148,148,136,119,104,118
)

12.2 Mengubah menjadi Time Series

data_ts_user <- ts(data_user, frequency = 12)

12.3 Visualisasi Data

autoplot(data_ts_user) +
  ggtitle("User Time Series Data") +
  theme_minimal()


13 Model ARIMA untuk Data Pengguna

model_user <- auto.arima(data_ts_user)

summary(model_user)
## Series: data_ts_user 
## ARIMA(0,0,1) with non-zero mean 
## 
## Coefficients:
##          ma1      mean
##       0.9624  126.4744
## s.e.  0.9022    4.5935
## 
## sigma^2 = 84.93:  log likelihood = -43.66
## AIC=93.31   AICc=96.31   BIC=94.77
## 
## Training set error measures:
##                     ME     RMSE      MAE        MPE     MAPE MASE      ACF1
## Training set 0.3892236 8.412905 7.050042 -0.2857855 5.682451  NaN 0.2464839

14 Forecast Data Pengguna

forecast_user <- forecast(model_user, h = 12)

autoplot(forecast_user) +
  ggtitle("Forecast User Data") +
  theme_minimal()


15 Kesimpulan

Berdasarkan analisis yang telah dilakukan dapat disimpulkan bahwa:

  1. Dataset AirPassengers menunjukkan pola trend meningkat dan seasonality kuat.
  2. Data awal tidak stasioner sehingga diperlukan proses differencing.
  3. Model terbaik dipilih menggunakan metode auto.arima() berdasarkan nilai AIC.
  4. Model ARIMA mampu memberikan prediksi jumlah penumpang di masa depan.
  5. Metode ini dapat diterapkan pada dataset lain dengan struktur time series yang serupa.

16 Referensi

Hyndman, R.J. & Athanasopoulos, G. (2021).
Forecasting: Principles and Practice.

Box, G.E.P., Jenkins, G.M., Reinsel, G.C. (2015).
Time Series Analysis: Forecasting and Control.

Dataset: AirPassengers (R Dataset)