1 PENDAHULUAN

1.1 Latar Belakang

Statistika merupakan cabang ilmu matematika yang mengalami perkembangan pesat, tidak hanya dalam hal analisis tetapi juga sebagai metode peramalan dan pengambilan keputusan. Salah satu metode yang krusial dalam statistika adalah analisis deret waktu atau Time Series, yang digunakan untuk menganalisis data dengan mempertimbangkan pengaruh waktu. Time Series sangat bermanfaat dalam berbagai bidang, termasuk ekonomi, fisika, demografi, dan pengendalian kualitas.

Dalam konteks transportasi udara, analisis deret waktu dapat memberikan wawasan mendalam mengenai tren penumpang udara. Data penumpang udara yang dikumpulkan secara periodik, misalnya per jam, hari, minggu, bulan, atau tahun, sangat penting untuk peramalan yang akurat. Penerapan analisis Time Series dalam industri penerbangan bisa membantu maskapai dan pengelola bandara untuk merencanakan operasional yang lebih efisien, mengoptimalkan penggunaan sumber daya, dan meningkatkan kualitas layanan kepada penumpang. Dalam laporan ini akan dibahas lebih lanjut mengenai analisis deret waktu beserta asumsi stasioneritas yang akan melibatkan fungsi autokorelasi. Akan ditunjukkan langkah-langkah yang dibutuhkan menggunakan software RStudio. Dengan demikian, hasil analisis ini diharapkan dapat memberikan kontribusi yang signifikan bagi perencanaan dan pengambilan keputusan dalam industri penerbangan.

1.2 Tinjauan Pustaka

1.2.1 Konsep Deret Waktu

Deret waktu, juga dikenal sebagai time series, merujuk pada pengamatan berkelanjutan dari satu atau beberapa variabel pada interval waktu yang tetap (Wei, 2006). Pada tahun 1976, George Box dan Gwilyn Jenkins memperkenalkan konsep analisis deret waktu untuk pertama kalinya. Analisis deret waktu merupakan suatu metode statistika yang digunakan untuk memprediksi kejadian di masa depan. Dengan menggunakan data yang terkait dengan waktu, analisis ini memperhitungkan korelasi antara kejadian pada saat ini dengan periode waktu sebelumnya. Selain keterkaitan dengan waktu, deret waktu juga dapat menunjukkan hubungan dengan dimensi lain seperti wilayah atau faktor-faktor lain yang saling terkait.

1.2.2 Metode Analisis Deret Waktu

1.2.2.1 Dekomposisi Deret Waktu

Additive Model \[ Y_{t}=T_{t}+S_{t}+C_{t}+I_{t} \]

Multiplicate Model \[ Y_{t}=T_{t}+S_{t}+C_{t}+I_{t} \]

1.2.2.2 Model Autoregressive Integrated Moving Average (ARIMA)

Model Autoregressive (AR) Model AR(p) adalah model dimana Xt merupakan fungsi dari data di masa yang lalu, yakni \(t-1,t-2,..,t-p\) Persamaan AR diberikan oleh \[ X_{t}=\mu +\Phi_{1}X_{t-1}+\Phi_{2}X_{t-2}+...++\Phi_{p}X_{t-p}+e_{t} \]

Model Moving Average (MA) Model MA(q) adalah model untuk memprediksi Xt sebagai fungsi dari kesalahan prediksi di masa lalu (past forecast error) dalam memprediksi \(X_{t}\) . Persamaan MA diberikan oleh:

1.2.2.3 Exponential Smoothing

Simple Exponential Smoothing: Digunakan untuk data tanpa tren atau musiman. Holt’s Linear Trend Model: Menggunakan dua parameter untuk level dan tren. Holt-Winters Seasonal Model: Menangani data dengan komponen musiman

1.2.3 Langkah-langkah Analisis Deret Waktu

1.2.3.1 Visualisasi Data

Menggunakan plot deret waktu untuk mengidentifikasi komponen data deret waktu. Beberapa pola yang dapat dibedakan muncul ketika data divisualisasikan. Rangkaian waktu memiliki pola musiman.Data juga dapat divisualisasikan menggunakan metode yang disebut dekomposisi deret waktu yang memungkinkan untuk menguraikan deret waktu menjadi tiga komponen berbeda: tren, musiman, dan noise

1.2.3.2 Stasioneritas

Uji stasioneritas (misalnya, uji Augmented Dickey-Fuller) untuk memastikan bahwa data tidak memiliki tren atau variabilitas musiman. Data stasioner harus memenuhi 2 kondisi. Kondisi kedua memastikan bahwa semua anggota proses stokastik memiliki varian yang sama. Kondisi kedua berarti bahwa semua anggota proses stokastik memiliki rata-rata konstan yang sama. Oleh karena itu, deret waktu yang dihasilkan oleh proses stokastik stasioner harus berfluktuasi di sekitar rata-rata konstan dan tidak memiliki tren.

1.2.3.3 Identifikasi Model

Menggunakan Autocorrelation Function (ACF) dan Partial Autocorrelation Function (PACF) untuk menentukan parameter AR dan MA.

1.2.3.4 Estimasi Paramater

Menggunakan metode seperti Maximum Likelihood Estimation (MLE) untuk menentukan parameter model.

1.2.3.5 Diagnosis Model

Mengevaluasi model dengan memeriksa residuals untuk memastikan bahwa mereka berperilaku seperti white noise.

1.2.3.6 Prediksi

Menggunakan model yang telah dibangun untuk membuat prediksi di masa depan. Jika model yang cocok untuk Data dari seri waktu tertentu telah ditemukan, dapat digunakan untuk memperkirakan pengembangan variabel di masa depan yang sedang dipertimbangkan.

1.3 Data

Data yang digunakan adalah data penumpang udara pada tahun 1949 hingga 1960. Data diperoleh dari website kaggle dengan judul “Air Passenger Data for Time Series Analysis”

> library(readr)
> data <- read_csv("C:/Users/Lenovo/Downloads/AirPassengers.csv", 
+                           col_types = cols(Month = col_date(format = "%Y-%m"), 
+                                            Passengers = col_number()))
> head(data)
# A tibble: 6 × 2
  Month      Passengers
  <date>          <dbl>
1 1949-01-01        112
2 1949-02-01        118
3 1949-03-01        132
4 1949-04-01        129
5 1949-05-01        121
6 1949-06-01        135

Sumber : https://www.kaggle.com/datasets/samuelcortinhas/time-series-practice-dataset

1.4 Tujuan

Analisis dilakukan untuk memberikan ramalan untuk memprediksi tren jumlah penumpang udara.

2 SOURCE CODE

2.1 Library

> library(knitr)
> library(readr)
> library(TSA)
> library(MASS)
> library(tseries)
> library(lmtest)
> library(forecast)

2.2 Impor Data

> data <- read_csv("C:/Users/Lenovo/Downloads/AirPassengers.csv", 
+                           col_types = cols(Month = col_date(format = "%Y-%m"), 
+                                            Passengers = col_number()))
> head(data$Passengers)
[1] 112 118 132 129 121 135

2.3 Visualisasi Data

2.3.1 Pendefenisian Data Deret Waktu

Membentuk deret waktu dari data penumpang udara pada tahun 1949 hingga 1960

> df1 <- ts(data$Passengers, start = 1949, frequency = 12)
> df1
     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1949 112 118 132 129 121 135 148 148 136 119 104 118
1950 115 126 141 135 125 149 170 170 158 133 114 140
1951 145 150 178 163 172 178 199 199 184 162 146 166
1952 171 180 193 181 183 218 230 242 209 191 172 194
1953 196 196 236 235 229 243 264 272 237 211 180 201
1954 204 188 235 227 234 264 302 293 259 229 203 229
1955 242 233 267 269 270 315 364 347 312 274 237 278
1956 284 277 317 313 318 374 413 405 355 306 271 306
1957 315 301 356 348 355 422 465 467 404 347 305 336
1958 340 318 362 348 363 435 491 505 404 359 310 337
1959 360 342 406 396 420 472 548 559 463 407 362 405
1960 417 391 419 461 472 535 622 606 508 461 390 432

2.3.2 Plot Deret Waktu

Membentuk plot dari data penumpang udara dimana sumbu x merupakan variabel waktu, sedangkan sumbu Y merupakan variabel Jumlah Penumpang.

> plot(df1, main = 'Data Penumpang Udara pada 1949-1960', ylab = "Jumlah Penumpang", xlab = "Tahun" )

2.4 Pembentukan Time Lag

> l_df1 <-zlag(df1,1)
> l_df1
  [1]  NA 112 118 132 129 121 135 148 148 136 119 104 118 115 126 141 135 125
 [19] 149 170 170 158 133 114 140 145 150 178 163 172 178 199 199 184 162 146
 [37] 166 171 180 193 181 183 218 230 242 209 191 172 194 196 196 236 235 229
 [55] 243 264 272 237 211 180 201 204 188 235 227 234 264 302 293 259 229 203
 [73] 229 242 233 267 269 270 315 364 347 312 274 237 278 284 277 317 313 318
 [91] 374 413 405 355 306 271 306 315 301 356 348 355 422 465 467 404 347 305
[109] 336 340 318 362 348 363 435 491 505 404 359 310 337 360 342 406 396 420
[127] 472 548 559 463 407 362 405 417 391 419 461 472 535 622 606 508 461 390

2.5 Stasioneritas

2.5.1 Stasioneritas terhadap Ragam

Digunakan plot Box-Cox untuk melihat apakah data stasioner terhadap ragam atau tidak

> boxcox(lm(df1~1))

2.5.1.1 Transformasi Data

Dilakukan Transformasi agar data stasioner, Karena data tidak stasioner

> trans.pass = log(df1)
> trans.pass
          Jan      Feb      Mar      Apr      May      Jun      Jul      Aug
1949 4.718499 4.770685 4.882802 4.859812 4.795791 4.905275 4.997212 4.997212
1950 4.744932 4.836282 4.948760 4.905275 4.828314 5.003946 5.135798 5.135798
1951 4.976734 5.010635 5.181784 5.093750 5.147494 5.181784 5.293305 5.293305
1952 5.141664 5.192957 5.262690 5.198497 5.209486 5.384495 5.438079 5.488938
1953 5.278115 5.278115 5.463832 5.459586 5.433722 5.493061 5.575949 5.605802
1954 5.318120 5.236442 5.459586 5.424950 5.455321 5.575949 5.710427 5.680173
1955 5.488938 5.451038 5.587249 5.594711 5.598422 5.752573 5.897154 5.849325
1956 5.648974 5.624018 5.758902 5.746203 5.762051 5.924256 6.023448 6.003887
1957 5.752573 5.707110 5.874931 5.852202 5.872118 6.045005 6.142037 6.146329
1958 5.828946 5.762051 5.891644 5.852202 5.894403 6.075346 6.196444 6.224558
1959 5.886104 5.834811 6.006353 5.981414 6.040255 6.156979 6.306275 6.326149
1960 6.033086 5.968708 6.037871 6.133398 6.156979 6.282267 6.432940 6.406880
          Sep      Oct      Nov      Dec
1949 4.912655 4.779123 4.644391 4.770685
1950 5.062595 4.890349 4.736198 4.941642
1951 5.214936 5.087596 4.983607 5.111988
1952 5.342334 5.252273 5.147494 5.267858
1953 5.468060 5.351858 5.192957 5.303305
1954 5.556828 5.433722 5.313206 5.433722
1955 5.743003 5.613128 5.468060 5.627621
1956 5.872118 5.723585 5.602119 5.723585
1957 6.001415 5.849325 5.720312 5.817111
1958 6.001415 5.883322 5.736572 5.820083
1959 6.137727 6.008813 5.891644 6.003887
1960 6.230481 6.133398 5.966147 6.068426

2.5.1.2 Deret Waktu dan Plot setelah Transformasi

Melakukan pemeriksaan kembali terhadap data yang sudah ditransformasi melalui deret waktu dan plot Box-Cox nya:

> df2 <- ts(trans.pass, start = 1949, frequency = 12)
> df2
          Jan      Feb      Mar      Apr      May      Jun      Jul      Aug
1949 4.718499 4.770685 4.882802 4.859812 4.795791 4.905275 4.997212 4.997212
1950 4.744932 4.836282 4.948760 4.905275 4.828314 5.003946 5.135798 5.135798
1951 4.976734 5.010635 5.181784 5.093750 5.147494 5.181784 5.293305 5.293305
1952 5.141664 5.192957 5.262690 5.198497 5.209486 5.384495 5.438079 5.488938
1953 5.278115 5.278115 5.463832 5.459586 5.433722 5.493061 5.575949 5.605802
1954 5.318120 5.236442 5.459586 5.424950 5.455321 5.575949 5.710427 5.680173
1955 5.488938 5.451038 5.587249 5.594711 5.598422 5.752573 5.897154 5.849325
1956 5.648974 5.624018 5.758902 5.746203 5.762051 5.924256 6.023448 6.003887
1957 5.752573 5.707110 5.874931 5.852202 5.872118 6.045005 6.142037 6.146329
1958 5.828946 5.762051 5.891644 5.852202 5.894403 6.075346 6.196444 6.224558
1959 5.886104 5.834811 6.006353 5.981414 6.040255 6.156979 6.306275 6.326149
1960 6.033086 5.968708 6.037871 6.133398 6.156979 6.282267 6.432940 6.406880
          Sep      Oct      Nov      Dec
1949 4.912655 4.779123 4.644391 4.770685
1950 5.062595 4.890349 4.736198 4.941642
1951 5.214936 5.087596 4.983607 5.111988
1952 5.342334 5.252273 5.147494 5.267858
1953 5.468060 5.351858 5.192957 5.303305
1954 5.556828 5.433722 5.313206 5.433722
1955 5.743003 5.613128 5.468060 5.627621
1956 5.872118 5.723585 5.602119 5.723585
1957 6.001415 5.849325 5.720312 5.817111
1958 6.001415 5.883322 5.736572 5.820083
1959 6.137727 6.008813 5.891644 6.003887
1960 6.230481 6.133398 5.966147 6.068426
> boxcox(lm(df2~1))

2.5.2 Stasioneritas terhadap Rata-rata

2.5.2.1 Differensiasi Data

Dilakukan differencing agar data stasioner.

> df2_diff1 <- diff(df2,1,1)
> df2_diff1
              Jan          Feb          Mar          Apr          May
1949               0.052185753  0.112117298 -0.022989518 -0.064021859
1950 -0.025752496  0.091349779  0.112477983 -0.043485112 -0.076961041
1951  0.035091320  0.033901552  0.171148256 -0.088033349  0.053744276
1952  0.029675768  0.051293294  0.069733338 -0.064193158  0.010989122
1953  0.010256500  0.000000000  0.185717146 -0.004246291 -0.025863511
1954  0.014815086 -0.081678031  0.223143551 -0.034635497  0.030371098
1955  0.055215723 -0.037899273  0.136210205  0.007462721  0.003710579
1956  0.021353124 -0.024956732  0.134884268 -0.012698583  0.015848192
1957  0.028987537 -0.045462374  0.167820466 -0.022728251  0.019915310
1958  0.011834458 -0.066894235  0.129592829 -0.039441732  0.042200354
1959  0.066021101 -0.051293294  0.171542423 -0.024938948  0.058840500
1960  0.029199155 -0.064378662  0.069163360  0.095527123  0.023580943
              Jun          Jul          Aug          Sep          Oct
1949  0.109484233  0.091937495  0.000000000 -0.084557388 -0.133531393
1950  0.175632569  0.131852131  0.000000000 -0.073203404 -0.172245905
1951  0.034289073  0.111521274  0.000000000 -0.078369067 -0.127339422
1952  0.175008910  0.053584246  0.050858417 -0.146603474 -0.090060824
1953  0.059339440  0.082887660  0.029852963 -0.137741925 -0.116202008
1954  0.120627988  0.134477914 -0.030254408 -0.123344547 -0.123106058
1955  0.154150680  0.144581229 -0.047829088 -0.106321592 -0.129875081
1956  0.162204415  0.099191796 -0.019560526 -0.131769278 -0.148532688
1957  0.172887525  0.097032092  0.004291852 -0.144914380 -0.152090098
1958  0.180943197  0.121098097  0.028114301 -0.223143551 -0.118092489
1959  0.116724274  0.149296301  0.019874186 -0.188422419 -0.128913869
1960  0.125287761  0.150673346 -0.026060107 -0.176398538 -0.097083405
              Nov          Dec
1949 -0.134732594  0.126293725
1950 -0.154150680  0.205443974
1951 -0.103989714  0.128381167
1952 -0.104778951  0.120363682
1953 -0.158901283  0.110348057
1954 -0.120516025  0.120516025
1955 -0.145067965  0.159560973
1956 -0.121466281  0.121466281
1957 -0.129013003  0.096799383
1958 -0.146750091  0.083510633
1959 -0.117168974  0.112242855
1960 -0.167251304  0.102278849

2.5.2.2 Visualisasi data setelah differensiasi

Plot data yang sudah di differensiasi dengan harapan telah stasioner :

> plot(df2, main = 'Data Penumpang Udara pada 1949-1960', ylab = "Jumlah Penumpang", xlab = "Tahun" )

2.5.2.3 Stasioneritas terhadap Rata-rata

Digunakan uji ADF untuk melihat apakah data sudah stasioner terhadap rata-rata atau tidak.

> adf.test(df2_diff1)

    Augmented Dickey-Fuller Test

data:  df2_diff1
Dickey-Fuller = -6.4313, Lag order = 5, p-value = 0.01
alternative hypothesis: stationary

2.6 Identifikasi Model

Menentukan model ARIMA yang diperoleh melalui korelogram, menampilkan kedua koleogram dalam satu baris yang bersama :

> par(mfrow=c(1,2))
> acf(df2_diff1)
> pacf(df2_diff1,lag.max = 25, type = "partial")

2.7 Estimasi Parameter

Melihat dari model yang sudah didapatkan apakah koefisiennya signifikan terhadap model atau tidak, dengan melakukan estimasi parameter masing masing model

> model.1 <- Arima(df1, order = c(2,1,1), method = "ML")
> coeftest(model.1)

z test of coefficients:

     Estimate Std. Error  z value  Pr(>|z|)    
ar1  1.090636   0.077595  14.0554 < 2.2e-16 ***
ar2 -0.489012   0.074378  -6.5747 4.877e-11 ***
ma1 -0.843852   0.042678 -19.7725 < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> model.2 <- Arima(df1, order = c(2,1,0), method = "ML")
> coeftest(model.2)

z test of coefficients:

     Estimate Std. Error z value  Pr(>|z|)    
ar1  0.381468   0.082432  4.6276 3.698e-06 ***
ar2 -0.227868   0.083406 -2.7320  0.006295 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> model.3 <- Arima(df1, order = c(1,1,1), method = "ML")
> coeftest(model.3)

z test of coefficients:

     Estimate Std. Error z value  Pr(>|z|)    
ar1 -0.474179   0.115866 -4.0925 4.268e-05 ***
ma1  0.863472   0.071961 11.9991 < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> model.4 <- Arima(df1, order = c(1,1,0), method = "ML")
> coeftest(model.4)

z test of coefficients:

    Estimate Std. Error z value  Pr(>|z|)    
ar1 0.306549   0.079667  3.8479 0.0001191 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
> model.5 <- Arima(df1, order = c(0,1,1), method = "ML")
> coeftest(model.1)

z test of coefficients:

     Estimate Std. Error  z value  Pr(>|z|)    
ar1  1.090636   0.077595  14.0554 < 2.2e-16 ***
ar2 -0.489012   0.074378  -6.5747 4.877e-11 ***
ma1 -0.843852   0.042678 -19.7725 < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

2.8 Diagnosis Model

Melihat nilai AIC kelima model untuk dibandingkan

> aic.model <- data.frame(Nama=c("model.1","model.2","model.3","model.4","model.5"),                   Model=c("ARIMA(2,1,1)","ARIMA(2,1,0)","ARIMA(1,1,1)","ARIMA(1,1,0)","ARIMA(0,1,1)"), 
+                         AIC=c(model.1$aic, model.2$aic, model.3$aic, model.4$aic, model.5$aic))
> print(aic.model)
     Nama        Model      AIC
1 model.1 ARIMA(2,1,1) 1378.338
2 model.2 ARIMA(2,1,0) 1396.588
3 model.3 ARIMA(1,1,1) 1394.683
4 model.4 ARIMA(1,1,0) 1401.853
5 model.5 ARIMA(0,1,1) 1397.258

Menguji indenpendensi residual antar lag pada model ARIMA (p,d,q)

> checkresiduals(model.1)


    Ljung-Box test

data:  Residuals from ARIMA(2,1,1)
Q* = 216.35, df = 21, p-value < 2.2e-16

Model df: 3.   Total lags used: 24

2.9 Prediksi

Melihat hasil peramalan:

> ramalan <- forecast(df1, model=model.1, h=12)
> ramalan
         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
Jan 1961       471.0031 433.3616 508.6447 413.4353 528.5709
Feb 1961       493.0028 432.8414 553.1642 400.9939 585.0118
Mar 1961       497.9235 426.4140 569.4330 388.5592 607.2878
Apr 1961       492.5320 416.7499 568.3142 376.6332 608.4308
May 1961       484.2457 407.1196 561.3717 366.2915 602.1998
Jun 1961       477.8447 400.1666 555.5228 359.0463 596.6431
Jul 1961       474.9158 396.7238 553.1078 355.3314 594.5001
Aug 1961       474.8515 395.8730 553.8300 354.0643 595.6386
Sep 1961       476.2137 396.0682 556.3591 353.6418 598.7855
Oct 1961       477.7307 396.1374 559.3240 352.9446 602.5169
Nov 1961       478.7192 395.5904 561.8480 351.5847 605.8537
Dec 1961       479.0554 394.4497 563.6611 349.6621 608.4486
> plot(ramalan)

3 HASIL DAN PEMBAHASAN

3.1 Visualisasi Data

Data terdefenisi sebagai deret amatan mulai Januari 1949 sampai dengan Desember 1960

> df1
     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1949 112 118 132 129 121 135 148 148 136 119 104 118
1950 115 126 141 135 125 149 170 170 158 133 114 140
1951 145 150 178 163 172 178 199 199 184 162 146 166
1952 171 180 193 181 183 218 230 242 209 191 172 194
1953 196 196 236 235 229 243 264 272 237 211 180 201
1954 204 188 235 227 234 264 302 293 259 229 203 229
1955 242 233 267 269 270 315 364 347 312 274 237 278
1956 284 277 317 313 318 374 413 405 355 306 271 306
1957 315 301 356 348 355 422 465 467 404 347 305 336
1958 340 318 362 348 363 435 491 505 404 359 310 337
1959 360 342 406 396 420 472 548 559 463 407 362 405
1960 417 391 419 461 472 535 622 606 508 461 390 432

Berdasarkan data yang digunakan, diperoleh plot deret waktu

> plot(df1, main = 'Data Penumpang Udara pada 1949-1960', ylab = "Jumlah Penumpang", xlab = "Tahun" )

Deret memiliki trend naik seiring waktu

3.2 Pembentukan Timelag

Pembentukan time lag 1

> l_df1
  [1]  NA 112 118 132 129 121 135 148 148 136 119 104 118 115 126 141 135 125
 [19] 149 170 170 158 133 114 140 145 150 178 163 172 178 199 199 184 162 146
 [37] 166 171 180 193 181 183 218 230 242 209 191 172 194 196 196 236 235 229
 [55] 243 264 272 237 211 180 201 204 188 235 227 234 264 302 293 259 229 203
 [73] 229 242 233 267 269 270 315 364 347 312 274 237 278 284 277 317 313 318
 [91] 374 413 405 355 306 271 306 315 301 356 348 355 422 465 467 404 347 305
[109] 336 340 318 362 348 363 435 491 505 404 359 310 337 360 342 406 396 420
[127] 472 548 559 463 407 362 405 417 391 419 461 472 535 622 606 508 461 390

Pada obyek time lag-1 nya, l_df1:

  • Pada Januari 1949 = NA (merujuk data Januari 1949, yang tidak ada akibat pergeseran)

  • Pada Februari 1949, digunakan pengamatan Januari 1949

  • Pada Maret 1949, digunakan pengamatan Februari 1949

3.3 Stasioneritas

3.3.1 Stasioneritas terhadap Ragam

> boxcox(lm(df1~1))

Nilai 𝜆 yang dihasilkan tidak memiliki selang yang memuat nilai 1, artinya secara statistik dapat dikatakan bahwa data perlu ditransformasi karena belum stasioner terhadap ragam.

3.3.1.1 Transformasi Data

Karena data tidak stasioner, maka perlu dilakukan Transformasi agar data stasioner. Kemudian lakukan uji stasioneritas terhadap Ragam kembali Berikut merupakan data hasil transformasi pertama:

> trans.pass
          Jan      Feb      Mar      Apr      May      Jun      Jul      Aug
1949 4.718499 4.770685 4.882802 4.859812 4.795791 4.905275 4.997212 4.997212
1950 4.744932 4.836282 4.948760 4.905275 4.828314 5.003946 5.135798 5.135798
1951 4.976734 5.010635 5.181784 5.093750 5.147494 5.181784 5.293305 5.293305
1952 5.141664 5.192957 5.262690 5.198497 5.209486 5.384495 5.438079 5.488938
1953 5.278115 5.278115 5.463832 5.459586 5.433722 5.493061 5.575949 5.605802
1954 5.318120 5.236442 5.459586 5.424950 5.455321 5.575949 5.710427 5.680173
1955 5.488938 5.451038 5.587249 5.594711 5.598422 5.752573 5.897154 5.849325
1956 5.648974 5.624018 5.758902 5.746203 5.762051 5.924256 6.023448 6.003887
1957 5.752573 5.707110 5.874931 5.852202 5.872118 6.045005 6.142037 6.146329
1958 5.828946 5.762051 5.891644 5.852202 5.894403 6.075346 6.196444 6.224558
1959 5.886104 5.834811 6.006353 5.981414 6.040255 6.156979 6.306275 6.326149
1960 6.033086 5.968708 6.037871 6.133398 6.156979 6.282267 6.432940 6.406880
          Sep      Oct      Nov      Dec
1949 4.912655 4.779123 4.644391 4.770685
1950 5.062595 4.890349 4.736198 4.941642
1951 5.214936 5.087596 4.983607 5.111988
1952 5.342334 5.252273 5.147494 5.267858
1953 5.468060 5.351858 5.192957 5.303305
1954 5.556828 5.433722 5.313206 5.433722
1955 5.743003 5.613128 5.468060 5.627621
1956 5.872118 5.723585 5.602119 5.723585
1957 6.001415 5.849325 5.720312 5.817111
1958 6.001415 5.883322 5.736572 5.820083
1959 6.137727 6.008813 5.891644 6.003887
1960 6.230481 6.133398 5.966147 6.068426

3.3.1.2 Deret Waktu dan Plot setelah Transformasi

Setelah dilakukan Transformasi, dibentuk kembali deret waktu dan digambarkan kembali plotnya

> df2
          Jan      Feb      Mar      Apr      May      Jun      Jul      Aug
1949 4.718499 4.770685 4.882802 4.859812 4.795791 4.905275 4.997212 4.997212
1950 4.744932 4.836282 4.948760 4.905275 4.828314 5.003946 5.135798 5.135798
1951 4.976734 5.010635 5.181784 5.093750 5.147494 5.181784 5.293305 5.293305
1952 5.141664 5.192957 5.262690 5.198497 5.209486 5.384495 5.438079 5.488938
1953 5.278115 5.278115 5.463832 5.459586 5.433722 5.493061 5.575949 5.605802
1954 5.318120 5.236442 5.459586 5.424950 5.455321 5.575949 5.710427 5.680173
1955 5.488938 5.451038 5.587249 5.594711 5.598422 5.752573 5.897154 5.849325
1956 5.648974 5.624018 5.758902 5.746203 5.762051 5.924256 6.023448 6.003887
1957 5.752573 5.707110 5.874931 5.852202 5.872118 6.045005 6.142037 6.146329
1958 5.828946 5.762051 5.891644 5.852202 5.894403 6.075346 6.196444 6.224558
1959 5.886104 5.834811 6.006353 5.981414 6.040255 6.156979 6.306275 6.326149
1960 6.033086 5.968708 6.037871 6.133398 6.156979 6.282267 6.432940 6.406880
          Sep      Oct      Nov      Dec
1949 4.912655 4.779123 4.644391 4.770685
1950 5.062595 4.890349 4.736198 4.941642
1951 5.214936 5.087596 4.983607 5.111988
1952 5.342334 5.252273 5.147494 5.267858
1953 5.468060 5.351858 5.192957 5.303305
1954 5.556828 5.433722 5.313206 5.433722
1955 5.743003 5.613128 5.468060 5.627621
1956 5.872118 5.723585 5.602119 5.723585
1957 6.001415 5.849325 5.720312 5.817111
1958 6.001415 5.883322 5.736572 5.820083
1959 6.137727 6.008813 5.891644 6.003887
1960 6.230481 6.133398 5.966147 6.068426
> boxcox(lm(df2~1))

Nilai 𝜆 yang dihasilkan masih memiliki selang yang memuat nilai 1, artinya secara statistik dapat dikatakan bahwa data tidak perlu ditransformasi karena sudah stasioner terhadap ragam.

3.3.2 Stasioneritas terhadap Rata-rata

3.3.2.1 Differensiasi Data

Karena data tidak stasioner, maka perlu dilakukan differencing agar data stasioner. Kemudian lakukan uji stasioneritas kembali. Berikut merupakan data hasil differensiasi pertama

> df2_diff1
              Jan          Feb          Mar          Apr          May
1949               0.052185753  0.112117298 -0.022989518 -0.064021859
1950 -0.025752496  0.091349779  0.112477983 -0.043485112 -0.076961041
1951  0.035091320  0.033901552  0.171148256 -0.088033349  0.053744276
1952  0.029675768  0.051293294  0.069733338 -0.064193158  0.010989122
1953  0.010256500  0.000000000  0.185717146 -0.004246291 -0.025863511
1954  0.014815086 -0.081678031  0.223143551 -0.034635497  0.030371098
1955  0.055215723 -0.037899273  0.136210205  0.007462721  0.003710579
1956  0.021353124 -0.024956732  0.134884268 -0.012698583  0.015848192
1957  0.028987537 -0.045462374  0.167820466 -0.022728251  0.019915310
1958  0.011834458 -0.066894235  0.129592829 -0.039441732  0.042200354
1959  0.066021101 -0.051293294  0.171542423 -0.024938948  0.058840500
1960  0.029199155 -0.064378662  0.069163360  0.095527123  0.023580943
              Jun          Jul          Aug          Sep          Oct
1949  0.109484233  0.091937495  0.000000000 -0.084557388 -0.133531393
1950  0.175632569  0.131852131  0.000000000 -0.073203404 -0.172245905
1951  0.034289073  0.111521274  0.000000000 -0.078369067 -0.127339422
1952  0.175008910  0.053584246  0.050858417 -0.146603474 -0.090060824
1953  0.059339440  0.082887660  0.029852963 -0.137741925 -0.116202008
1954  0.120627988  0.134477914 -0.030254408 -0.123344547 -0.123106058
1955  0.154150680  0.144581229 -0.047829088 -0.106321592 -0.129875081
1956  0.162204415  0.099191796 -0.019560526 -0.131769278 -0.148532688
1957  0.172887525  0.097032092  0.004291852 -0.144914380 -0.152090098
1958  0.180943197  0.121098097  0.028114301 -0.223143551 -0.118092489
1959  0.116724274  0.149296301  0.019874186 -0.188422419 -0.128913869
1960  0.125287761  0.150673346 -0.026060107 -0.176398538 -0.097083405
              Nov          Dec
1949 -0.134732594  0.126293725
1950 -0.154150680  0.205443974
1951 -0.103989714  0.128381167
1952 -0.104778951  0.120363682
1953 -0.158901283  0.110348057
1954 -0.120516025  0.120516025
1955 -0.145067965  0.159560973
1956 -0.121466281  0.121466281
1957 -0.129013003  0.096799383
1958 -0.146750091  0.083510633
1959 -0.117168974  0.112242855
1960 -0.167251304  0.102278849

3.3.2.2 Visualisasi data setelah differensiasi

Plot data yang telah stasioner:

> plot(df2, main = 'Data Penumpang Udara pada 1949-1960', ylab = "Jumlah Penumpang", xlab = "Tahun" )

3.3.2.3 Stasioneritas terhadap Rata-rata

> adf.test(df2_diff1)

    Augmented Dickey-Fuller Test

data:  df2_diff1
Dickey-Fuller = -6.4313, Lag order = 5, p-value = 0.01
alternative hypothesis: stationary
  • Hipotesis \(H_{0}\) : Data tidak stasioner \(vs\) \(H_{1}\) : Data stasioner

  • Daerah Kritis : \(p-value\leq \alpha\)

  • Statistik Uji : \(p-value= 0.01\)

  • Keputusan : karena nilai \(p-value\leq \alpha\) yaitu \(0.01\leq 0.05\) tolak \(H_{0}\)

  • Kesimpulan : dengan tingkat kepercayaan 95% dapat disimpulkan bahwa data setelah differensiasi telah stasioner

3.4 Identifikasi Model

Kemudian menentukan model ARIMA yang diperoleh melalui korelogram

> par(mfrow=c(1,2))
> acf(df2_diff1)
> pacf(df2_diff1,lag.max = 25, type = "partial")

Berdasarkan korelogram, batang ACF keluar hingga lag ke-1 yang menunjukan orde MA yaitu 𝑞 = 1. Sementara batang PACF kelua pada lag ke-2, yang menunjukan orde AR yaitu 𝑝 = 2. Dengan sebelumnya dilakukan differencing orde 1, 𝑑 = 1, diperoleh model ARIMA(2,1,1)

3.5 Estimasi Parameter

Overfitting terhadap model dapat dilakukan dengan memilih model yang memiliki orde lebih rendah atau kombinasi dari orde pada model utama, yaitu

ARIMA(2,1,1)

ARIMA(2,1,0)

ARIMA(1,1,1)

ARIMA(1,1,0)

ARIMA(0,1,1)

Setelah mendapatkan kelima model tersebut, akan dilihat apakah koefisiennya signifikan terhadap model atau tidak, dengan melakukan estimasi parameter model

> coeftest(model.1)

z test of coefficients:

     Estimate Std. Error  z value  Pr(>|z|)    
ar1  1.090636   0.077595  14.0554 < 2.2e-16 ***
ar2 -0.489012   0.074378  -6.5747 4.877e-11 ***
ma1 -0.843852   0.042678 -19.7725 < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
  • AR (Autoregressive) Orde 𝑝 = 2: Ada 2 komponen autoregressive.

  • Differencing Orde 𝑑 = 1: Data telah didifferensiasikan sekali untuk mencapai stasionaritas.

  • MA (Moving Average) Orde 𝑞 = 1: Ada satu komponen moving average dalam model.

Interpretasi :

  • Differencing (𝑑 = 1): Dengan orde differencing 1, model ini mengurangi tren linear dan membuat data lebih stasioner.

  • AR1 (𝑝 = 1) dan AR2 (𝑝 = 2): Koefisien AR1 adalah 1.09 dan koefisien AR2 adalah -0.48

  • MA1 (𝑞 = 1): Koefisien MA1 adalah -0.84. MA1 tidak signifikan secara statistik dengan p-value yang tinggi. Ini menunjukkan bahwa perubahan dalam nilai observasi saat ini tidak secara signifikan dipengaruhi oleh eror residual pada periode sebelumnya.

> coeftest(model.2)

z test of coefficients:

     Estimate Std. Error z value  Pr(>|z|)    
ar1  0.381468   0.082432  4.6276 3.698e-06 ***
ar2 -0.227868   0.083406 -2.7320  0.006295 ** 
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
  • AR (Autoregressive) Orde 𝑝 = 2: Ada 2 komponen autoregressive.

  • Differencing Orde 𝑑 = 1: Data telah didifferensiasikan sekali untuk mencapai stasionaritas.

  • MA (Moving Average) Orde 𝑞 = 0: Tidak ada komponen moving average dalam model.

Interpretasi :

  • Differencing (𝑑 = 1): Dengan orde differencing 1, model ini mengurangi tren linear dan membuat data lebih stasioner.

  • AR1 (𝑝 = 1) dan AR2 (𝑝 = 2): Koefisien AR1 adalah 0.38 dan koefisien AR2 adalah -0.22.

> coeftest(model.3)

z test of coefficients:

     Estimate Std. Error z value  Pr(>|z|)    
ar1 -0.474179   0.115866 -4.0925 4.268e-05 ***
ma1  0.863472   0.071961 11.9991 < 2.2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
  • AR (Autoregressive) Orde 𝑝 = 1: Ada 1 komponen autoregressive.

  • Differencing Orde 𝑑 = 1: Data telah didifferensiasikan sekali untuk mencapai stasionaritas.

  • MA (Moving Average) Orde 𝑞 = 1: Ada 1 komponen moving average dalam model.

Interpretasi :

  • Differencing (𝑑 = 1): Dengan orde differencing 1, model ini mengurangi tren linear dan membuat data lebih stasioner.

  • AR1 (𝑝 = 1): Koefisien AR1 adalah -0.47 yang tidak signifikan secara statistik dengan p-value yang tinggi. Ini menunjukkan bahwa perubahan dalam nilai observasi saat ini tidak secara signifikan dipengaruhi oleh nilai observasi pada periode sebelumnya setelah differencing.

  • MA1 (𝑞 = 1): Koefisien MA1 adalah 0.86, yang signifikan secara statistik dengan p-value yang tinggi. Ini menunjukkan bahwa perubahan dalam nilai observasi saat ini dipengaruhi oleh error residual pada periode sebelumnya.

> coeftest(model.4)

z test of coefficients:

    Estimate Std. Error z value  Pr(>|z|)    
ar1 0.306549   0.079667  3.8479 0.0001191 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
  • AR (Autoregressive) Orde 𝑝 = 1: Ada 1 komponen autoregressive.

  • Differencing Orde 𝑑 = 1: Data telah didifferensiasikan sekali untuk mencapai stasionaritas.

  • MA (Moving Average) Orde 𝑞 = 0: Tidak ada komponen moving average dalam model.

Interpretasi :

  • Differencing (𝑑 = 1): Dengan orde differencing 1, model ini mengurangi tren linear dan membuat data lebih stasioner.

  • AR1 (𝑝 = 1): Koefisien AR1 adalah 0.3 yang signifikan secara statistika dengan p-value yang sangat kecil. Ini menunjukkan bahwa perubahan dalam nilai observasi saat ini dipengaruhi oleh nilai observasi pada periode sebelumnya setelah differencing.

> coeftest(model.5)

z test of coefficients:

    Estimate Std. Error z value  Pr(>|z|)    
ma1 0.402719   0.089211  4.5142 6.355e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
  • AR (Autoregressive) Orde 𝑝 = 0: Tidak ada komponen autoregressive.

  • Differencing Orde 𝑑 = 1: Data telah didifferensiasikan sekali untuk mencapai stasionaritas.

  • MA (Moving Average) Orde 𝑞 = 1: Ada satu komponen moving average dalam model.

Interpretasi :

  • Differencing (𝑑 = 1): Dengan orde differencing 1, model ini mengurangi tren linear dan membuat data lebih stasioner.

  • MA1 (𝑞 = 1): Koefisien MA1 adalah 0.40, keduanya signifikan secara statistik dengan p-value yang sangat kecil. Ini menunjukkan bahwa perubahan dalam nilai observasisaat ini dipengaruhi oleh error residual pada periode sebelumnya

3.6 Diagnosis Model

> print(aic.model)
     Nama        Model      AIC
1 model.1 ARIMA(2,1,1) 1378.338
2 model.2 ARIMA(2,1,0) 1396.588
3 model.3 ARIMA(1,1,1) 1394.683
4 model.4 ARIMA(1,1,0) 1401.853
5 model.5 ARIMA(0,1,1) 1397.258

Membandingkan kelima model yang telah dibentuk menggunakan AIC dengan melihat nilai AIC yang paling kecil. Diperoleh AIC yang paling kecil adalah model ARIMA(2,1,1) atau model.1 yang menjadi model terbaik

  • Hipotesis

\(H_{0}\) : \(k= 0\) (tidak ada autokorelasi antar lag) \(vs\)

\(H_{1}\) : paling sedikit ada satu \(k= 0\) dengan \(k=1,2,..\) (ada autokorelasi residual antar lag)

  • Taraf signifikasi : \(\alpha\)

  • Statistik Uji : Q = \(n(n+2)\sum_{k=1}^{m}\frac{re_{k}^{2}}{n-k}\) dimana \(n\): jumlah residual, \(k\) : jumlah lag, dan \(m\) : jumlah lag yang sedang diuji

  • Kriteria Uji : \(H_{0}\) ditolak jika \(Q > \chi _{df}^{2}\) atau \(p-value<alpha\)

> checkresiduals(model.1)


    Ljung-Box test

data:  Residuals from ARIMA(2,1,1)
Q* = 216.35, df = 21, p-value < 2.2e-16

Model df: 3.   Total lags used: 24
  • Keputusan : karena nilai \(p-value<alpha\) yaitu \(0.01< 0.05\) \(H_{0}\) ditolak.

  • Kesimpulan : Terdapat autokorelasi residual antar lag

3.7 Prediksi

Hasil peramalan yang diperoleh adalah sebagai beriku

> ramalan
         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
Jan 1961       471.0031 433.3616 508.6447 413.4353 528.5709
Feb 1961       493.0028 432.8414 553.1642 400.9939 585.0118
Mar 1961       497.9235 426.4140 569.4330 388.5592 607.2878
Apr 1961       492.5320 416.7499 568.3142 376.6332 608.4308
May 1961       484.2457 407.1196 561.3717 366.2915 602.1998
Jun 1961       477.8447 400.1666 555.5228 359.0463 596.6431
Jul 1961       474.9158 396.7238 553.1078 355.3314 594.5001
Aug 1961       474.8515 395.8730 553.8300 354.0643 595.6386
Sep 1961       476.2137 396.0682 556.3591 353.6418 598.7855
Oct 1961       477.7307 396.1374 559.3240 352.9446 602.5169
Nov 1961       478.7192 395.5904 561.8480 351.5847 605.8537
Dec 1961       479.0554 394.4497 563.6611 349.6621 608.4486

Model ARIMA(2,1,1) tampaknya memperkirakan trend positif di masa depan

> plot(ramalan)

  • Garis hitam merupakan data historis.

  • Garis biru merupakan nilai peramalan.

  • Area berwarna abu-abu/biru untuk interval prediksi 80% dan 95%.

  • Lebarnya kipas interval prediksi mencerminkan ketidakpastian yang meningkat seiring dengan prediksi yang semakin jauh ke depan

4 KESIMPULAN

Berdasarkan hasil perhitungan menggunakan analisis deret waktu disimpulkan bahwa jumlah penumpang udara dalam 12 bulan kedepan akan mengalami tren positif (semakin banyak)

5 DAFTAR PUSTAKA

Ukhra A. U. (2016).Pemodelan dan Peramalan Data Deret Waktu dengan Metode Seasonal ARIMA. Jurnal Matematika (UNAND). 3(3). p.59-67.

PERTEMUAN 12 ANALISIS DERET WAKTU dalam R. (n.d.).