1 PENDAHULUAN

1.1 Latar Belakang

Analisis deret waktu merupakan salah satu analisis yang dilakukan terhadap sekumpulan data dengan salah satu variabel mendefinisikan urutan data dari suatu waktu hingga waktu lainnya. Analisis ini sangat berguna dalam berbagai bidang yang ada, seperti keuangan, lingkungan, pemasaran, hingga ilmu sosial. Pada beberapa tahun terakhir, maraknya perkembangan teknologi menyebabkan terjadinya peningkatan data di berbagai faktor. Perubahan-perubahan yang terjadi mengharuskan kita untuk dapat memahami data yang ada sebagai awal dari melakukan peramalan dan perencanaan. Sehingga, analisis deret waktu tepat digunakan dalam mengidentifikasi tren, pola, faktor hingga pembuatan keputusan pada data.

1.2 Tinjauan Pustaka

1.2.1 Analisis Deret Waktu

Analisis Deret Waktu memiliki beberapa metode yang terkait, yaitu:

Decomposition merupakan teknik yang memisahkan data deret waktu menjadi komponen trend, seasonal, dan residual. Komponen trend menjelaskan peningkatan atau penurunan pada suatu data dengan jangka waktu yang panjang. Sementara komponen seasonal mengidentifikasi fluktuasi selama waktu data dalam musim.

Moving Average (MA) adalah rata-rata dari data dalam periode tertentu untuk mengidentifikasi tren jangka panjang.

Autoregressive Integrated Moving Average (ARIMA) merupakan model statistik yang menggunakan differencing (I) dan moving average (MA). Bertujuan untuk meramalkan data deret waktu yang tidak stasioner atau data tidak konstan.

1.2.2 Asumsi

Stasioneritas merupakan sifat statistik data seperti mean dan varians yang sudah stasioner/konstan sepanjang waktunya. Data dilakukan differencing jika data tidak stasioner.

Non-autocorrelation pada analisis deret waktu mengidentifikasikan residual tidak saling berkorelasi. Terjadinya autokorelasi dalam residual menandakan bahwa model tidak sepenuhnya mendefinisikan data.

Normalitas merupakan asumsi bahwa residual berdistribusi normal pada beberapa metode analisis deret waktu.

Linearitas mendefinisikan hubungan antar variabel dapat dijelaskan dengan asumsi hubungan yang linear.

1.3 Data

Melakukan analisis deret waktu menggunakan pengamatan yang diperoleh dari sumber yang ada, mengenai data Banyaknya Penumpang Pesawat pada Tahun 1949 hingga 1960. Berikut datanya:

> datats <- read.csv("D:/cooleah/sem 4/komstat/datalaprak2 komstat.csv", sep = ";")
> datats
      Month Passengers
1   1949-01        112
2   1949-02        118
3   1949-03        132
4   1949-04        129
5   1949-05        121
6   1949-06        135
7   1949-07        148
8   1949-08        148
9   1949-09        136
10  1949-10        119
11  1949-11        104
12  1949-12        118
13  1950-01        115
14  1950-02        126
15  1950-03        141
16  1950-04        135
17  1950-05        125
18  1950-06        149
19  1950-07        170
20  1950-08        170
21  1950-09        158
22  1950-10        133
23  1950-11        114
24  1950-12        140
25  1951-01        145
26  1951-02        150
27  1951-03        178
28  1951-04        163
29  1951-05        172
30  1951-06        178
31  1951-07        199
32  1951-08        199
33  1951-09        184
34  1951-10        162
35  1951-11        146
36  1951-12        166
37  1952-01        171
38  1952-02        180
39  1952-03        193
40  1952-04        181
41  1952-05        183
42  1952-06        218
43  1952-07        230
44  1952-08        242
45  1952-09        209
46  1952-10        191
47  1952-11        172
48  1952-12        194
49  1953-01        196
50  1953-02        196
51  1953-03        236
52  1953-04        235
53  1953-05        229
54  1953-06        243
55  1953-07        264
56  1953-08        272
57  1953-09        237
58  1953-10        211
59  1953-11        180
60  1953-12        201
61  1954-01        204
62  1954-02        188
63  1954-03        235
64  1954-04        227
65  1954-05        234
66  1954-06        264
67  1954-07        302
68  1954-08        293
69  1954-09        259
70  1954-10        229
71  1954-11        203
72  1954-12        229
73  1955-01        242
74  1955-02        233
75  1955-03        267
76  1955-04        269
77  1955-05        270
78  1955-06        315
79  1955-07        364
80  1955-08        347
81  1955-09        312
82  1955-10        274
83  1955-11        237
84  1955-12        278
85  1956-01        284
86  1956-02        277
87  1956-03        317
88  1956-04        313
89  1956-05        318
90  1956-06        374
91  1956-07        413
92  1956-08        405
93  1956-09        355
94  1956-10        306
95  1956-11        271
96  1956-12        306
97  1957-01        315
98  1957-02        301
99  1957-03        356
100 1957-04        348
101 1957-05        355
102 1957-06        422
103 1957-07        465
104 1957-08        467
105 1957-09        404
106 1957-10        347
107 1957-11        305
108 1957-12        336
109 1958-01        340
110 1958-02        318
111 1958-03        362
112 1958-04        348
113 1958-05        363
114 1958-06        435
115 1958-07        491
116 1958-08        505
117 1958-09        404
118 1958-10        359
119 1958-11        310
120 1958-12        337
121 1959-01        360
122 1959-02        342
123 1959-03        406
124 1959-04        396
125 1959-05        420
126 1959-06        472
127 1959-07        548
128 1959-08        559
129 1959-09        463
130 1959-10        407
131 1959-11        362
132 1959-12        405
133 1960-01        417
134 1960-02        391
135 1960-03        419
136 1960-04        461
137 1960-05        472
138 1960-06        535
139 1960-07        622
140 1960-08        606
141 1960-09        508
142 1960-10        461
143 1960-11        390
144 1960-12        432

1.4 Tujuan

Tujuan dilakukan Analisis Deret Waktu pada data penumpang pesawat, yaitu untuk mengidentifikasi tren, pola, dan faktor yang ada pada data. Sehingga, hasil analisis dapat digunakan dalam membuat keputusan dan strategi masa depan yang akurat terkait industri penerbangan.

2 SOURCE CODE

2.1 Library

> library(forecast)
> library(MASS)
> library(tseries)
> library(lmtest)

2.2 Impor Data

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

2.3 Time Series

> analts <- ts(datats, start = c(1949,1), frequency = 12)
> analts
     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
> 
> ts.plot(analts, main = 'Deret Waktu Data Penumpang Pesawat', ylab = "Passengers", xlab = "Year")

2.4 Differencing

> d_analts <- diff(analts,difference=1)
> d_analts
      Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec
1949         6   14   -3   -8   14   13    0  -12  -17  -15   14
1950   -3   11   15   -6  -10   24   21    0  -12  -25  -19   26
1951    5    5   28  -15    9    6   21    0  -15  -22  -16   20
1952    5    9   13  -12    2   35   12   12  -33  -18  -19   22
1953    2    0   40   -1   -6   14   21    8  -35  -26  -31   21
1954    3  -16   47   -8    7   30   38   -9  -34  -30  -26   26
1955   13   -9   34    2    1   45   49  -17  -35  -38  -37   41
1956    6   -7   40   -4    5   56   39   -8  -50  -49  -35   35
1957    9  -14   55   -8    7   67   43    2  -63  -57  -42   31
1958    4  -22   44  -14   15   72   56   14 -101  -45  -49   27
1959   23  -18   64  -10   24   52   76   11  -96  -56  -45   43
1960   12  -26   28   42   11   63   87  -16  -98  -47  -71   42
> 
> ts.plot(d_analts, main = 'Diff-1 Data Penumpang Pesawat', ylab = "Passengers", xlab = "Year" )

2.5 Stasioneritas

> #ragam
> boxcox(lm(analts~1))

> #rata-rata
> adf_a <- adf.test(analts)
> adf_d <- adf.test(d_analts)

2.6 Autokorelasi

> #acf
> acf(d_analts)

> #pacf
> pacf(d_analts)

2.7 Estimasi ARIMA

> arima011 <- Arima(d_analts, order = c(0,1,1), method = "ML")
> arima012 <- Arima(d_analts, order = c(0,1,2), method = "ML")
> arima110 <- Arima(d_analts, order = c(1,1,0), method = "ML")
> arima111 <- Arima(d_analts, order = c(1,1,1), method = "ML")
> arima112 <- Arima(d_analts, order = c(1,1,2), method = "ML")

2.8 Menduga Model

> aic.model <- data.frame(Model=c("ARIMA(0,1,1)","ARIMA(0,1,2)","ARIMA(1,1,0)",
+                                 "ARIMA(1,1,1)","ARIMA(1,1,2)"),
+                         AIC=c(arima011$aic, arima012$aic, arima110$aic,
+                               arima111$aic, arima112$aic))

2.9 Menduga Model Terbaik

> terbaik <- checkresiduals(arima112)


    Ljung-Box test

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

Model df: 3.   Total lags used: 24

2.10 Forecasting

> ramalan <- forecast(analts, model = arima112, h=12)

3 HASIL DAN PEMBAHASAN

3.1 Time Series

> ts.plot(analts, main = 'Deret Waktu Data Penumpang Pesawat', ylab = "Passengers", xlab = "Year")

Data penumpang pesawat menghasilkan gambar grafik yang menunjukkan tren kenaikan jumlah penumpang dari tahun 1949 hingga 1960. Hal ini berarti jumlah penumpang meningkat selama periode tersebut.

Pola pada grafik ini juga menunjukkan adanya kenaikan sekaligus penurunan secara berulang di periode tertentu. Sehingga, mengindikasikan pola musiman.

3.2 Differencing

> ts.plot(d_analts, main = 'Diff-1 Data Penumpang Pesawat', ylab = "Passengers", xlab = "Year" )

Sumbu Y merupakan perubahan pada jumlah penumpang pesawat dari tahun ke tahun. Nilai positif menunjukkan adanya peningkatan dari bulan sebelumnya, sedangkan nilai negatif sebaliknya.

Grafik tersebut menggambarkan perubahan pada jumlah penumpang dari bulan ke bulan sebelumnya. Grafik terlihat lebih stabil dibandingkan dengan data aslinya, dan pola musiman yang ada juga tidak terlalu terlihat pada grafik ini. Namun, fluktuasi atau perubahan setiap bulannya tampak lebih jelas. Hal ini ditandai oleh adanya peningkatan dan penurunan jumlah penumpang yang signifikan.

3.3 Stasioneritas

> boxcox(lm(analts~1))

Nilai lambda tidak berada pada rentang 1, sehingga data perlu transformasi karena belum stasioner terhadap ragam.

> adf_a

    Augmented Dickey-Fuller Test

data:  analts
Dickey-Fuller = -7.3186, Lag order = 5, p-value = 0.01
alternative hypothesis: stationary
> 
> adf_d

    Augmented Dickey-Fuller Test

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

Hipotesis: \[ H_{0} : \text{Data memiliki unit root (tidak stasioner)} \\ H_{1} : \text{Data tidak memiliki unit root (stasioner)} \]

Uji ADF yang dilakukan memperoleh:

\[ p-value = 0.01 \\ \text{ dengan } \alpha = 0.05 \\ p-value < \alpha \rightarrow \text{ tolak }H_{0} \]

Sehingga, disimpulkan bahwa data “analts” dan “d_analts” sudah stasioner, yang mengartikan data tidak memiliki tren yang berubah seiring waktu.

3.4 Autokorelasi

> acf(d_analts)

Sumbu x merupakan jumlah lag yang dianalisis.

Sumbu y merupakan nilai korelasi.

Pada grafik ACF terdapat nilai lag 1 yang sangat tinggi dan signifikan, menunjukkan korelasi kuat antara nilai deret waktu saat ini dengan nilai satu periode sebelumnya.

> pacf(d_analts)

Sumbu x merupakan jumlah lag yang dianalisis.

Sumbu y merupakan nilai korelasi parsial.

Pada plot PACF diketahui nilai lag 1 yaitu 0.2 yang menunjukkan korelasi cukup kuat antara nilai deret waktu saat ini dengan nilai satu periode sebelumnya.


Sehingga dapat diperoleh:

Komponen AR (p) = 1 (PACF signifikan pada lag 1)

Komponen Dif (d) = 1 (dilakukan dofferencing 1 kali)

Komponen MA (q) = 2 (ACF signifikan pada lag 1 dan 2)

3.5 Estimasi ARIMA

> arima011 
Series: d_analts 
ARIMA(0,1,1) 

Coefficients:
         ma1
      -1.000
s.e.   0.018

sigma^2 = 1147:  log likelihood = -703.68
AIC=1411.37   AICc=1411.45   BIC=1417.28
> 
> arima012 
Series: d_analts 
ARIMA(0,1,2) 

Coefficients:
          ma1      ma2
      -0.5932  -0.4068
s.e.   0.0911   0.0896

sigma^2 = 1014:  log likelihood = -694.19
AIC=1394.37   AICc=1394.55   BIC=1403.24
> 
> arima110 
Series: d_analts 
ARIMA(1,1,0) 

Coefficients:
          ar1
      -0.2012
s.e.   0.0844

sigma^2 = 1527:  log likelihood = -721.51
AIC=1447.03   AICc=1447.11   BIC=1452.94
> 
> arima111
Series: d_analts 
ARIMA(1,1,1) 

Coefficients:
         ar1      ma1
      0.3130  -1.0000
s.e.  0.0805   0.0176

sigma^2 = 1049:  log likelihood = -696.46
AIC=1398.93   AICc=1399.1   BIC=1407.8
> 
> arima112 
Series: d_analts 
ARIMA(1,1,2) 

Coefficients:
          ar1      ma1      ma2
      -0.4710  -0.1369  -0.8631
s.e.   0.1163   0.0743   0.0738

sigma^2 = 986:  log likelihood = -691.96
AIC=1391.91   AICc=1392.2   BIC=1403.73

Model ARIMA (Autoregressive Integrated Moving Average) digunakan untuk melakukan analisis dan peramalan dengan menggunakan hasil nilai AIC.

3.6 Menduga Model

> aic.model
         Model      AIC
1 ARIMA(0,1,1) 1411.368
2 ARIMA(0,1,2) 1394.373
3 ARIMA(1,1,0) 1447.028
4 ARIMA(1,1,1) 1398.929
5 ARIMA(1,1,2) 1391.910

Memilih nilai AIC terkecil sebagai model ARIMA terbaik, yaitu ARIMA(1,1,2).

3.7 Menduga Model Terbaik

> terbaik

    Ljung-Box test

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

Diperoleh hasil:

\[ p-value = 2.2×10^{-16} \\ \text{ dengan } \alpha = 0.05 \\ p-value < \alpha \rightarrow \text{ tolak }H_{0} \]

Keputusan tersebut menunjukkan adanya autokorelasi residual antar lag. Sehingga model ARIMA(1,1,2) kurang mendefinisikan struktur data dengan baik.

3.8 Forecasting

> ramalan
         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
Jan 1961       332.6770 292.2963 373.0576 270.9201 394.4338
Feb 1961       255.7406 212.2653 299.2159 189.2509 322.2303
Mar 1961       291.9739 247.9292 336.0186 224.6134 359.3344
Apr 1961       274.9098 230.6986 319.1209 207.2947 342.5249
May 1961       282.9462 238.7176 327.1748 215.3043 350.5880
Jun 1961       279.1614 234.9198 323.4030 211.4997 346.8231
Jul 1961       280.9438 236.7037 325.1840 213.2843 348.6034
Aug 1961       280.1044 235.8625 324.3463 212.4423 347.7665
Sep 1961       280.4997 236.2584 324.7411 212.8385 348.1610
Oct 1961       280.3136 236.0719 324.5552 212.6518 347.9753
Nov 1961       280.4012 236.1597 324.6427 212.7397 348.0628
Dec 1961       280.3599 236.1184 324.6015 212.6983 348.0216
> plot(ramalan)

Hasil dari peramalan yaitu menunjukkan kemungkinan selanjutnya dari data penumpang pesawat pada satu tahun berikutnya (1961). Kolom “Point” menunjukkan perikraan penumpang pada bulan dan tahun tertentu. Kolom “Lo 80” dan “Hi 80” menunjukkan batas bawah dan atas penumpang dari interval kepercayaan 80%. Begitu pula dengan “Lo 95” dan “Hi 95” menunjukkan batas bawah dan atas dari interval kepercayaan 95%.

4 KESIMPULAN

Berdasarkan analisis deret waktu yang telah dilakukan, diperoleh hasil ramalan jumlah penumpang pesawat pada 12 bulan berikutnya yaitu, jumlah penumpang akan menunjukkan pada interval angka 200 hingga 400 penumpang.

5 DAFTAR PUSTAKA

kaggle.com, 06 Agustus 2021, Air Passenger Data for Time Series Analysis, 30 Mei 2024, https://www.kaggle.com/datasets/ashfakyeafi/air-passenger-data-for-time-series-analysis?resource=download


Terima Kasih!