Kelompok 19 Analisis Runtun Waktu
Gaos Tipki Alpandi | 082011833009
Berlianti LArasati | 082011833086
Nur Laila Fauzia | 082011833038
Rayhan Samudra | 082811833046
Membaca Data “Jumlah Wisatawan Mancanegara ke Indonesia Berdasarkan Pintu Masuk Batam”
batam <- read.csv("batam.csv", col.names = "wisatawan")
str(batam)
## 'data.frame': 96 obs. of 1 variable:
## $ wisatawan: int 77656 87206 92174 78838 87079 98404 85560 94257 74690 82630 ...
rmarkdown::paged_table(batam)
Mengubah Tipe Data (integer menjadi time-series)
library(astsa)
tsbatam <- ts(batam)
str(tsbatam)
## Time-Series [1:108, 1] from 1 to 108: 77656 87206 92174 78838 87079 98404 85560 94257 74690 82630 ...
## - attr(*, "dimnames")=List of 2
## ..$ : NULL
## ..$ : chr "wisatawan"
Plot Data Asli
plot(tsbatam, type="b")
Uji Stasioneritas Dickey-Fuller Data Asli
library(tseries)
adf.test(tsbatam)
##
## Augmented Dickey-Fuller Test
##
## data: tsbatam
## Dickey-Fuller = -3.9996, Lag order = 4, p-value = 0.01185
## alternative hypothesis: stationary
Plot ACF dan PACF Data Asli
acf2(tsbatam)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
## ACF 0.55 0.51 0.56 0.49 0.55 0.71 0.53 0.45 0.50 0.42 0.45 0.75 0.42
## PACF 0.55 0.30 0.31 0.12 0.23 0.47 0.04 -0.11 -0.02 -0.09 -0.06 0.51 -0.22
## [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21]
## ACF 0.37 0.37 0.36 0.37 0.50 0.31 0.24 0.27
## PACF -0.18 -0.28 0.04 -0.07 -0.07 -0.16 -0.04 -0.03
Differencing 1 Data Asli, lalu Plot ACF dan PACF
diff1 = diff(tsbatam,1)
acf2(diff1, 48)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
## ACF -0.42 -0.11 0.13 -0.12 -0.13 0.39 -0.14 -0.16 0.16 -0.12 -0.29 0.65
## PACF -0.42 -0.35 -0.11 -0.19 -0.36 0.14 0.13 -0.06 0.00 -0.06 -0.50 0.24
## [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23] [,24]
## ACF -0.28 -0.04 0.01 -0.05 -0.11 0.35 -0.17 -0.10 0.15 -0.16 -0.18 0.54
## PACF 0.06 0.16 -0.12 -0.06 -0.04 0.02 -0.11 -0.03 0.05 -0.10 -0.18 0.11
## [,25] [,26] [,27] [,28] [,29] [,30] [,31] [,32] [,33] [,34] [,35] [,36]
## ACF -0.26 -0.05 0.07 -0.07 -0.12 0.38 -0.19 -0.11 0.15 -0.12 -0.16 0.41
## PACF 0.06 -0.10 0.03 0.07 -0.02 -0.04 0.01 -0.01 -0.08 -0.04 0.02 -0.05
## [,37] [,38] [,39] [,40] [,41] [,42] [,43] [,44] [,45] [,46] [,47] [,48]
## ACF -0.16 -0.06 0.01 -0.03 -0.05 0.23 -0.11 -0.10 0.06 -0.01 -0.14 0.32
## PACF 0.00 0.08 -0.02 -0.04 0.11 -0.05 0.02 -0.05 -0.10 0.10 0.00 0.08
Plot Differencing 1
plot(diff1, type="b")
Uji Stasioneritas Dickey-Fuller Data Differencing 1
adf.test(diff1)
## Warning in adf.test(diff1): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: diff1
## Dickey-Fuller = -11.351, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary
Analisis: Diperoleh nilai p-value sebesar 0.01, maka keputusannya yaitu menolak H0. Sehingga disimpulkan bahwa differencing data sudah stasioner.
Pengujian Model ARISMA
ARISMA_model <- sarima(tsbatam, 1,1,0,0,0,1,12) #opsi lain: sarima(diff1, 1,0,0,0,0,1,12)
## initial value 9.908632
## iter 2 value 9.601015
## iter 3 value 9.593610
## iter 4 value 9.591990
## iter 5 value 9.591969
## iter 6 value 9.591956
## iter 6 value 9.591956
## iter 6 value 9.591956
## final value 9.591956
## converged
## initial value 9.597258
## iter 2 value 9.597125
## iter 3 value 9.597055
## iter 4 value 9.597054
## iter 5 value 9.597054
## iter 5 value 9.597054
## iter 5 value 9.597054
## final value 9.597054
## converged
ARISMA_model
## $fit
##
## Call:
## arima(x = xdata, order = c(p, d, q), seasonal = list(order = c(P, D, Q), period = S),
## xreg = constant, transform.pars = trans, fixed = fixed, optim.control = list(trace = trc,
## REPORT = 1, reltol = tol))
##
## Coefficients:
## ar1 sma1 constant
## -0.4949 0.5638 478.903
## s.e. 0.0879 0.0791 1404.327
##
## sigma^2 estimated as 207073484: log likelihood = -1178.71, aic = 2365.42
##
## $degrees_of_freedom
## [1] 104
##
## $ttable
## Estimate SE t.value p.value
## ar1 -0.4949 0.0879 -5.6332 0.0000
## sma1 0.5638 0.0791 7.1291 0.0000
## constant 478.9030 1404.3273 0.3410 0.7338
##
## $AIC
## [1] 22.10675
##
## $AICc
## [1] 22.10893
##
## $BIC
## [1] 22.20667
Analisis: Diperoleh koefisien AR1 dan SMA1 dengan p-value 0.000 dan 0.000, maka model ARISMA sudah sesuai untuk diterapkan.
Forecasting dengan Model ARISMA
forecast_ARISMA_model <- sarima.for(tsbatam,12, 1,1,0,0,0,1,12)
forecast_ARISMA_model
## $pred
## Time Series:
## Start = 109
## End = 120
## Frequency = 1
## [1] 124581.9 133866.3 134098.0 136820.3 131326.2 134896.1 127543.2 118234.0
## [9] 133157.7 133880.9 127192.7 152668.5
##
## $se
## Time Series:
## Start = 109
## End = 120
## Frequency = 1
## [1] 14390.19 16121.82 19401.05 21407.57 23590.93 25426.27 27212.36 28853.29
## [9] 30422.16 31906.27 33328.01 34689.80
Mean Absolute Percentage Error (MAPE)
library(MLmetrics)
## Warning: package 'MLmetrics' was built under R version 4.1.3
##
## Attaching package: 'MLmetrics'
## The following object is masked from 'package:base':
##
## Recall
hasil_prediksi <- as.data.frame(forecast_ARISMA_model$pred) #Data prediksi tahun selanjutnya (2018)
data_test <- read.csv("data_test.csv") #Data asli 2018
MAPE(hasil_prediksi$x, data_test$ï..2018)*100
## [1] 12.88476
Analisis: Diperoleh nilai MAPE sebesar 25.66, sehingga didapat nilai akurasi sebesar 1-MAPE=74.34%. Maka dapat dikatakan model yang diperoleh cukup baik dalam memprediksi data jumlah wisatawan mancanegara ke Indonesia melalui pintu masuk Batam.