Simulasi Model ARISMA

2022-06-01

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.