library(TTR)
library(tseries)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(graphics)
library(forecast)
library(TSA)
## Registered S3 methods overwritten by 'TSA':
##   method       from    
##   fitted.Arima forecast
##   plot.Arima   forecast
## 
## Attaching package: 'TSA'
## The following objects are masked from 'package:stats':
## 
##     acf, arima
## The following object is masked from 'package:utils':
## 
##     tar
library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric

1. Database Daily Minimum Temperatures

setwd("c:/Users/Ilham Kurnia/Documents/SEMESTER 6/UTS/MPDW")
dt1<-read.csv("daily-minimum-temperatures-in-me.csv")
head(dt1)
##       Date Daily.minimum.temperatures
## 1 1/1/1990                       14.8
## 2 1/2/1990                       13.3
## 3 1/3/1990                       15.6
## 4 1/4/1990                       14.5
## 5 1/5/1990                       14.3
## 6 1/6/1990                       15.3

Membagi data training dan testing deret waktu

dt1.ts1<-ts(dt1$Daily.minimum.temperatures)

dt1.ts1.train <- dt1.ts1[1:292]
dt1.ts1.test <- dt1.ts1[293:365]

dt1.ts1.train.ts <- ts(dt1.ts1.train)
dt1.ts1.test.ts <- ts(dt1.ts1.test)

Membuat plot data deret waktu

ts.plot(dt1.ts1.train.ts, xlab="Time Period ", ylab="Temperature", col = "purple", main= "Plot Data Deret Waktu Training Daily Minimum Temperatures")

ts.plot(dt1.ts1.test.ts, xlab="Time Period ", ylab="Temperature", col = "purple", main= "Plot Data Deret Waktu Testing Daily Minimum Temperatures")

Plot ACF dan PACF

acf(dt1.ts1.train.ts, lag.max = 50, main = "Plot ACF Daily Minimum Temperatures")

pacf(dt1.ts1.train.ts, lag.max = 20, main = "Plot PACF Daily Minimum Temperatures")

Berdasarkan plot ACF terlihat tails off atau menurun secara perlahan menunjukan data tidak tidak stationer dalam rataan. Sedangkan plot PACF terlihat cuts off setelah lag ke-1 menunjukan stationer dengan model tentatif AR(1). Selanjutnya melakukan Uji Augmented Fuller untuk uji lebih lanjut.

Uji Augmented Fuller

adf.test(dt1.ts1.train.ts)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  dt1.ts1.train.ts
## Dickey-Fuller = -2.894, Lag order = 6, p-value = 0.1995
## alternative hypothesis: stationary

Berdasarkan Uji Augmented Fuller di atas kita mendapatkan p-value = 0.1995 dengan H1 data stationer sehingga tak tolak H0. Artinya belum cukup bukti menyatakan bahwa data stationer pada taraf nyata 5%.

Melakukan differencing pertama dan Plot differrencing pertama

dif1 <- diff(dt1.ts1.train.ts, differences = 1)

plot.ts(dif1, lty=1, ylab = expression(Ydif[t]), col = "red", main="Plot Data Time Series Daily Minimum Temperatures Setelah Differencing Pertama")

Berdasarkan plot di atas terlihat data sudah stationer karena rataan sudah konstan di satu titik.

Plot ACF dan PACF setelah Differencing pertama

acf(dif1, lag.max = 20, main="Plot ACF Daily Minimum Temperatures Setelah Differencing Pertama")

Pacf(dif1, lag.max = 20, main="Plot PACF Daily Minimum Temperatures Setelah Differencing Pertama")

Plot ACF terlihat stationer dengan cuts off setelah lag ke-3. Sedangkan Plot PACF terlihat tails off dengan model tentatif MA(3).

Membuat Plot EACF Setelah Pembedaan Pertama untuk Menentukan Model Dugaan

eacf(dif1)
## AR/MA
##   0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x x x o o o o o o o o  o  o  o 
## 1 x x x o o o o o o o o  o  o  o 
## 2 x x x o o o o o o o o  o  o  o 
## 3 x x x x o o o o o o o  o  o  o 
## 4 x o x o o o o o o o o  o  o  o 
## 5 x x o x o o o o o o o  o  o  o 
## 6 x x o x o o o o o o o  o  o  o 
## 7 x x x x o x o o o o o  o  o  o

Berdasarkan hasil plot EACF di atas, diperoleh 4 model dugaan yang dapat diduga dari data daily minimum temperatures sebagai model tentatifnya yaitu ARIMA(0,1,3), ARIMA(1,1,3) dan ARIMA(2,1,3). Untuk memastikan model tentatif dari keempat model dugaan tersebut, dilakukan uji lanjut yaitu Uji Signifikansi Parameter.

Melakukan uji signifikansi parameter setelah pembedaan pertama

dugaan1.model1 <- arima(dif1, order=c(0,1,3), method = "ML")
summary(dugaan1.model1)
## 
## Call:
## arima(x = dif1, order = c(0, 1, 3), method = "ML")
## 
## Coefficients:
##           ma1     ma2     ma3
##       -1.4477  0.0211  0.4310
## s.e.   0.0483  0.0887  0.0475
## 
## sigma^2 estimated as 5.02:  log likelihood = -649.59,  aic = 1305.19
## 
## Training set error measures:
## Warning in trainingaccuracy(object, test, d, D): test elements must be within
## sample
##               ME RMSE MAE MPE MAPE
## Training set NaN  NaN NaN NaN  NaN
coeftest(dugaan1.model1)
## 
## z test of coefficients:
## 
##      Estimate Std. Error  z value Pr(>|z|)    
## ma1 -1.447737   0.048306 -29.9702   <2e-16 ***
## ma2  0.021110   0.088679   0.2381   0.8118    
## ma3  0.430954   0.047528   9.0674   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Berdasarkan hasil uji signifikansi parameter tersebut, diperoleh nilai p-value < alpha = 0.05 pada seluruh parameter dan AIC sebesar 1305.19. Dengan demikian, seluruh parameter signifikan untuk dugaan model tentatif ARIMA(0,1,3).

dugaan1.model2 <- arima(dif1, order=c(1,1,3), method = "ML")
summary(dugaan1.model2)
## 
## Call:
## arima(x = dif1, order = c(1, 1, 3), method = "ML")
## 
## Coefficients:
##          ar1      ma1     ma2     ma3
##       0.1622  -1.5655  0.2316  0.3379
## s.e.  0.1087   0.0973  0.1784  0.0836
## 
## sigma^2 estimated as 4.982:  log likelihood = -648.44,  aic = 1304.87
## 
## Training set error measures:
## Warning in trainingaccuracy(object, test, d, D): test elements must be within
## sample
##               ME RMSE MAE MPE MAPE
## Training set NaN  NaN NaN NaN  NaN
coeftest(dugaan1.model2)
## 
## z test of coefficients:
## 
##      Estimate Std. Error  z value  Pr(>|z|)    
## ar1  0.162196   0.108749   1.4915    0.1358    
## ma1 -1.565464   0.097338 -16.0828 < 2.2e-16 ***
## ma2  0.231626   0.178418   1.2982    0.1942    
## ma3  0.337949   0.083625   4.0413 5.317e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Berdasarkan hasil uji signifikansi parameter tersebut, diperoleh nilai p-value < alpha = 0.05 pada parameter ma2 dan ma3 dan AIC sebesar 1304.87. Dengan demikian, hanya parameter ma2 dan ma3 yang signifikan untuk dugaan model tentatif ARIMA(1,1,3).

dugaan1.model3 <- Arima(dif1, order=c(2,1,3), method = "ML")
summary(dugaan1.model3)
## Series: dif1 
## ARIMA(2,1,3) 
## 
## Coefficients:
##          ar1      ar2      ma1     ma2      ma3
##       0.5089  -0.2509  -1.9054  0.9147  -0.0065
## s.e.  0.1776   0.1024   0.1757  0.3437   0.1702
## 
## sigma^2 = 5:  log likelihood = -646.48
## AIC=1304.97   AICc=1305.27   BIC=1326.99
## 
## Training set error measures:
##                      ME    RMSE      MAE MPE MAPE      MASE         ACF1
## Training set 0.03474445 2.21289 1.736195 NaN  Inf 0.5766767 -0.002809349
coeftest(dugaan1.model3)
## 
## z test of coefficients:
## 
##       Estimate Std. Error  z value  Pr(>|z|)    
## ar1  0.5089158  0.1775778   2.8659  0.004159 ** 
## ar2 -0.2509204  0.1023707  -2.4511  0.014242 *  
## ma1 -1.9054277  0.1756891 -10.8455 < 2.2e-16 ***
## ma2  0.9147289  0.3436920   2.6615  0.007780 ** 
## ma3 -0.0064637  0.1701782  -0.0380  0.969702    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
dugaan1.model3.1 = Arima(dif1, order=c(3,1,3), method="ML")
coeftest(dugaan1.model3.1)
## 
## z test of coefficients:
## 
##      Estimate Std. Error z value Pr(>|z|)    
## ar1 -0.113093   0.348807 -0.3242 0.745766    
## ar2  0.074835   0.186267  0.4018 0.687861    
## ar3 -0.189040   0.088668 -2.1320 0.033007 *  
## ma1 -1.285792   0.349169 -3.6824 0.000231 ***
## ma2 -0.254210   0.668512 -0.3803 0.703751    
## ma3  0.544358   0.323303  1.6837 0.092232 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(dugaan1.model3.1)
## Series: dif1 
## ARIMA(3,1,3) 
## 
## Coefficients:
##           ar1     ar2      ar3      ma1      ma2     ma3
##       -0.1131  0.0748  -0.1890  -1.2858  -0.2542  0.5444
## s.e.   0.3488  0.1863   0.0887   0.3492   0.6685  0.3233
## 
## sigma^2 = 5.007:  log likelihood = -646.2
## AIC=1306.4   AICc=1306.8   BIC=1332.09
## 
## Training set error measures:
##                      ME     RMSE      MAE MPE MAPE      MASE      ACF1
## Training set 0.03433772 2.210565 1.730503 NaN  Inf 0.5747864 0.0023556

Berdasarkan hasil uji signifikansi parameter tersebut, diperoleh nilai p-value > alpha = 0.05 pada seluruh parameter dan AIC sebesar 1302.97. Dengan demikian, tidak ada parameter yang signifikan untuk dugaan model tentatif ARIMA(2,1,3).

Berdasarkan ketiga dugaan model tentatif tersebut dapat disimpulkan bahwa model tentatif ARIMA(0,1,3) dan ARIMA(2,1,3) menjadi model tentatif yang paling cocok digunakan untuk tahapan analisis selanjutnya karena hanya 1 parameter yang tidak signifikan.Selanjutnya mencari nilai AIC terkecil yaitu ARIMA (2,1,3) dan menjadi model tentatif yang paling cocok digunakakan untuk tahapan analisis lanjutan

Melakukan uji kestasioneran setelah pembedaan pertama (Uji Augmented Dickey Fuller)

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

Berdasarkan Uji Augmented Fuller di atas kita mendapatkan p-value = 0.01 dengan H1 data stationer sehingga tolak H0. Artinya cukup bukti menyatakan bahwa data stationer pada taraf nyata 5%.

Baik secara uji eksploratif maupun uji formal, diperoleh hasil bahwa data tersebut stasioner. Artinya asumsi kestasioneran data telah terpenuhi. Sehingga pembedaan (differencing) dilakukan cukup sampai pembedaan pertama. Dengan model tentatif dari data daily minimum temperatures adalah ARIMA(2,1,3).

Diagnostik Model

sisaan1<-residuals(dugaan1.model1)

Uji Eksplorasi

par(mfrow=c(2,2))
qqnorm(sisaan1)
qqline(sisaan1, col = "blue", lwd = 2)
plot(c(1:length(sisaan1)),sisaan1)
acf(sisaan1)
pacf(sisaan1)

Berdasarkan output di atas, terlihat bahwa titik-titik sisaan berada di sepanjang garis lurus sehingga dapat dikatakan bahwa sisaan menyebar normal. Pada plot ACF tidak ada lag yang melewati garis biru sedangkan pada plot PACF terdapat lag yang melewati garis biru tetapi di lag ke-21 sehingga dapat dikatakan sisaan saling bebas. Pada plot sisaan, terlihat bahwa sebaran sisaan berada di sekitar nol dengan pola sisaan menyebar secara acak sehingga dapat dikatakan bahwa nilai tengah sisaan sama dengan nol. Namun tetap diperlukan uji lebih lanjut untuk memastikan bahwa ketiga asumsi tersebut benar terpenuhi dengan uji formal.

Uji Formal

jarque.bera.test(sisaan1)
## 
##  Jarque Bera Test
## 
## data:  sisaan1
## X-squared = 0.31444, df = 2, p-value = 0.8545
Box.test(sisaan1, type = "Ljung")
## 
##  Box-Ljung test
## 
## data:  sisaan1
## X-squared = 0.46241, df = 1, p-value = 0.4965
t.test(sisaan1, mu = 0, conf.level = 0.95)
## 
##  One Sample t-test
## 
## data:  sisaan1
## t = 0.26512, df = 290, p-value = 0.7911
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  -0.2236665  0.2933055
## sample estimates:
##  mean of x 
## 0.03481948

Bedasarkan Uji Formal di atas didapatkan hasil tak tolak H0. Artinya data menyebar normal, saling bebas atau tidak ada autokorelasi dan nilai sisaan sama dengan nol pada taraf nyata 5%.

Berdasarkan uji eksplorasi dan uji formal pada model ARIMA(2,1,3) terhadap ketiga asumsi tersebut, diperoleh bahwa seluruh asumsi terpenuhi.

Overfitting

Menaikan 1 ordo pada p dan q

dugaan1.model3.1 = Arima(dif1, order=c(3,1,3), method="ML")
coeftest(dugaan1.model3.1)
## 
## z test of coefficients:
## 
##      Estimate Std. Error z value Pr(>|z|)    
## ar1 -0.113093   0.348807 -0.3242 0.745766    
## ar2  0.074835   0.186267  0.4018 0.687861    
## ar3 -0.189040   0.088668 -2.1320 0.033007 *  
## ma1 -1.285792   0.349169 -3.6824 0.000231 ***
## ma2 -0.254210   0.668512 -0.3803 0.703751    
## ma3  0.544358   0.323303  1.6837 0.092232 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(dugaan1.model3.1)
## Series: dif1 
## ARIMA(3,1,3) 
## 
## Coefficients:
##           ar1     ar2      ar3      ma1      ma2     ma3
##       -0.1131  0.0748  -0.1890  -1.2858  -0.2542  0.5444
## s.e.   0.3488  0.1863   0.0887   0.3492   0.6685  0.3233
## 
## sigma^2 = 5.007:  log likelihood = -646.2
## AIC=1306.4   AICc=1306.8   BIC=1332.09
## 
## Training set error measures:
##                      ME     RMSE      MAE MPE MAPE      MASE      ACF1
## Training set 0.03433772 2.210565 1.730503 NaN  Inf 0.5747864 0.0023556
dugaan1.model3.2 = Arima(dif1, order=c(2,1,4), method="ML")
coeftest(dugaan1.model3.2)
## 
## z test of coefficients:
## 
##      Estimate Std. Error z value Pr(>|z|)   
## ar1 -0.345412   0.341928 -1.0102 0.312403   
## ar2 -0.130094   0.196345 -0.6626 0.507600   
## ma1 -1.046398   0.329969 -3.1712 0.001518 **
## ma2 -0.357510   0.599919 -0.5959 0.551222   
## ma3  0.066942   0.302596  0.2212 0.824918   
## ma4  0.341731   0.104303  3.2763 0.001052 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(dugaan1.model3.2)
## Series: dif1 
## ARIMA(2,1,4) 
## 
## Coefficients:
##           ar1      ar2      ma1      ma2     ma3     ma4
##       -0.3454  -0.1301  -1.0464  -0.3575  0.0669  0.3417
## s.e.   0.3419   0.1963   0.3300   0.5999  0.3026  0.1043
## 
## sigma^2 = 5.018:  log likelihood = -646.5
## AIC=1307   AICc=1307.4   BIC=1332.69
## 
## Training set error measures:
##                      ME     RMSE      MAE MPE MAPE      MASE         ACF1
## Training set 0.03678311 2.212873 1.726261 NaN  Inf 0.5733774 -0.006361198

Berdasarkan hasil uji signifikansi parameter tersebut, diperoleh nilai p-value < alpha = 0.05 pada parameter ma1 dan ma4 dengan nilai AIC untuk dugaan.model2 sebesar 1307. Dengan demikian, hanya parameter ma1 dan ma4 yang signifikan untuk dugaan model tentatif ARIMA(2,1,4). Berdasarkan hasil overfitting dengan menaikkan masing-masing satu ordo pada ordo p dan q secara berurutan, diperoleh bahwa hanya beberapa parameter saja yang signifikan. Dengan demikian, dugaan model tentatif pada overfitting tersebut tidak dapat dijadikan sebagai model tentatif. Sehingga model tentatif ARIMA(2,1,3) tetap menjadi model terbaik.

Forecasting

ramalan1 <-forecast(dugaan1.model3, h = 73)
ramalan1
##     Point Forecast     Lo 80    Hi 80     Lo 95    Hi 95
## 293    0.004567778 -2.861061 2.870197 -4.378033 4.387169
## 294    0.137636932 -2.945042 3.220315 -4.576913 4.852187
## 295    0.106411943 -3.227873 3.440697 -4.992937 5.205761
## 296    0.057131288 -3.295831 3.410094 -5.070783 5.185045
## 297    0.039886570 -3.316302 3.396075 -5.092960 5.172733
## 298    0.043475981 -3.317100 3.404052 -5.096081 5.183033
## 299    0.049629740 -3.311457 3.410716 -5.090709 5.189968
## 300    0.051860829 -3.309230 3.412951 -5.088483 5.192205
## 301    0.051452162 -3.309651 3.412555 -5.088911 5.191816
## 302    0.050684359 -3.310422 3.411791 -5.089684 5.191053
## 303    0.050396155 -3.310735 3.411527 -5.090010 5.190802
## 304    0.050442141 -3.310716 3.411600 -5.090005 5.190890
## 305    0.050537860 -3.310641 3.411716 -5.089941 5.191017
## 306    0.050575035 -3.310621 3.411771 -5.089930 5.191080
## 307    0.050569935 -3.310643 3.411782 -5.089961 5.191101
## 308    0.050558012 -3.310672 3.411788 -5.090000 5.191116
## 309    0.050553224 -3.310695 3.411801 -5.090032 5.191138
## 310    0.050553779 -3.310712 3.411820 -5.090059 5.191167
## 311    0.050555263 -3.310729 3.411839 -5.090085 5.191195
## 312    0.050555879 -3.310746 3.411858 -5.090112 5.191223
## 313    0.050555820 -3.310764 3.411875 -5.090139 5.191251
## 314    0.050555635 -3.310782 3.411893 -5.090166 5.191278
## 315    0.050555556 -3.310800 3.411911 -5.090194 5.191305
## 316    0.050555562 -3.310818 3.411929 -5.090221 5.191332
## 317    0.050555585 -3.310835 3.411947 -5.090248 5.191360
## 318    0.050555595 -3.310853 3.411965 -5.090276 5.191387
## 319    0.050555595 -3.310871 3.411982 -5.090303 5.191414
## 320    0.050555592 -3.310889 3.412000 -5.090330 5.191442
## 321    0.050555591 -3.310907 3.412018 -5.090358 5.191469
## 322    0.050555591 -3.310925 3.412036 -5.090385 5.191496
## 323    0.050555591 -3.310943 3.412054 -5.090412 5.191523
## 324    0.050555591 -3.310960 3.412072 -5.090440 5.191551
## 325    0.050555591 -3.310978 3.412090 -5.090467 5.191578
## 326    0.050555591 -3.310996 3.412107 -5.090494 5.191605
## 327    0.050555591 -3.311014 3.412125 -5.090522 5.191633
## 328    0.050555591 -3.311032 3.412143 -5.090549 5.191660
## 329    0.050555591 -3.311050 3.412161 -5.090576 5.191687
## 330    0.050555591 -3.311068 3.412179 -5.090604 5.191715
## 331    0.050555591 -3.311086 3.412197 -5.090631 5.191742
## 332    0.050555591 -3.311103 3.412215 -5.090658 5.191769
## 333    0.050555591 -3.311121 3.412232 -5.090685 5.191797
## 334    0.050555591 -3.311139 3.412250 -5.090713 5.191824
## 335    0.050555591 -3.311157 3.412268 -5.090740 5.191851
## 336    0.050555591 -3.311175 3.412286 -5.090767 5.191879
## 337    0.050555591 -3.311193 3.412304 -5.090795 5.191906
## 338    0.050555591 -3.311211 3.412322 -5.090822 5.191933
## 339    0.050555591 -3.311228 3.412340 -5.090849 5.191961
## 340    0.050555591 -3.311246 3.412357 -5.090877 5.191988
## 341    0.050555591 -3.311264 3.412375 -5.090904 5.192015
## 342    0.050555591 -3.311282 3.412393 -5.090931 5.192042
## 343    0.050555591 -3.311300 3.412411 -5.090959 5.192070
## 344    0.050555591 -3.311318 3.412429 -5.090986 5.192097
## 345    0.050555591 -3.311336 3.412447 -5.091013 5.192124
## 346    0.050555591 -3.311353 3.412465 -5.091041 5.192152
## 347    0.050555591 -3.311371 3.412482 -5.091068 5.192179
## 348    0.050555591 -3.311389 3.412500 -5.091095 5.192206
## 349    0.050555591 -3.311407 3.412518 -5.091122 5.192234
## 350    0.050555591 -3.311425 3.412536 -5.091150 5.192261
## 351    0.050555591 -3.311443 3.412554 -5.091177 5.192288
## 352    0.050555591 -3.311461 3.412572 -5.091204 5.192316
## 353    0.050555591 -3.311478 3.412590 -5.091232 5.192343
## 354    0.050555591 -3.311496 3.412607 -5.091259 5.192370
## 355    0.050555591 -3.311514 3.412625 -5.091286 5.192398
## 356    0.050555591 -3.311532 3.412643 -5.091314 5.192425
## 357    0.050555591 -3.311550 3.412661 -5.091341 5.192452
## 358    0.050555591 -3.311568 3.412679 -5.091368 5.192479
## 359    0.050555591 -3.311586 3.412697 -5.091396 5.192507
## 360    0.050555591 -3.311603 3.412715 -5.091423 5.192534
## 361    0.050555591 -3.311621 3.412732 -5.091450 5.192561
## 362    0.050555591 -3.311639 3.412750 -5.091478 5.192589
## 363    0.050555591 -3.311657 3.412768 -5.091505 5.192616
## 364    0.050555591 -3.311675 3.412786 -5.091532 5.192643
## 365    0.050555591 -3.311693 3.412804 -5.091559 5.192671
dt1.ramalan1 <- ramalan1$mean
dt1.ramalan1
## Time Series:
## Start = 293 
## End = 365 
## Frequency = 1 
##  [1] 0.004567778 0.137636932 0.106411943 0.057131288 0.039886570 0.043475981
##  [7] 0.049629740 0.051860829 0.051452162 0.050684359 0.050396155 0.050442141
## [13] 0.050537860 0.050575035 0.050569935 0.050558012 0.050553224 0.050553779
## [19] 0.050555263 0.050555879 0.050555820 0.050555635 0.050555556 0.050555562
## [25] 0.050555585 0.050555595 0.050555595 0.050555592 0.050555591 0.050555591
## [31] 0.050555591 0.050555591 0.050555591 0.050555591 0.050555591 0.050555591
## [37] 0.050555591 0.050555591 0.050555591 0.050555591 0.050555591 0.050555591
## [43] 0.050555591 0.050555591 0.050555591 0.050555591 0.050555591 0.050555591
## [49] 0.050555591 0.050555591 0.050555591 0.050555591 0.050555591 0.050555591
## [55] 0.050555591 0.050555591 0.050555591 0.050555591 0.050555591 0.050555591
## [61] 0.050555591 0.050555591 0.050555591 0.050555591 0.050555591 0.050555591
## [67] 0.050555591 0.050555591 0.050555591 0.050555591 0.050555591 0.050555591
## [73] 0.050555591
plot(ramalan1)

Berdasarkan plot tersebut, terlihat bahwa data menunjukkan adanya kenaikan di awal dan mulai konstan hingga akhir.

Membandingkan data aktual dengan hasil forecast

perbandingan1 <- matrix(data = c(dt1.ts1.test, dt1.ramalan1),
nrow = 73, ncol = 2)
colnames(perbandingan1) <- c("Aktual", "Hasil Forecast")
perbandingan1
##       Aktual Hasil Forecast
##  [1,]    6.4    0.004567778
##  [2,]   10.9    0.137636932
##  [3,]    9.0    0.106411943
##  [4,]   10.9    0.057131288
##  [5,]   12.4    0.039886570
##  [6,]   11.6    0.043475981
##  [7,]   13.3    0.049629740
##  [8,]   14.4    0.051860829
##  [9,]   18.4    0.051452162
## [10,]   13.6    0.050684359
## [11,]   14.9    0.050396155
## [12,]   14.8    0.050442141
## [13,]   15.4    0.050537860
## [14,]   11.8    0.050575035
## [15,]   13.0    0.050569935
## [16,]   11.1    0.050558012
## [17,]   12.5    0.050553224
## [18,]   18.3    0.050553779
## [19,]   19.2    0.050555263
## [20,]   15.4    0.050555879
## [21,]   13.1    0.050555820
## [22,]   11.5    0.050555635
## [23,]    8.6    0.050555556
## [24,]   12.6    0.050555562
## [25,]   13.8    0.050555585
## [26,]   14.6    0.050555595
## [27,]   13.2    0.050555595
## [28,]   12.3    0.050555592
## [29,]    8.8    0.050555591
## [30,]   10.7    0.050555591
## [31,]    9.9    0.050555591
## [32,]    8.3    0.050555591
## [33,]   15.0    0.050555591
## [34,]   12.2    0.050555591
## [35,]   10.5    0.050555591
## [36,]   11.1    0.050555591
## [37,]   13.0    0.050555591
## [38,]   12.9    0.050555591
## [39,]    8.8    0.050555591
## [40,]   14.7    0.050555591
## [41,]   14.7    0.050555591
## [42,]   12.7    0.050555591
## [43,]   13.3    0.050555591
## [44,]   13.2    0.050555591
## [45,]   16.2    0.050555591
## [46,]   17.3    0.050555591
## [47,]   20.5    0.050555591
## [48,]   20.2    0.050555591
## [49,]   19.4    0.050555591
## [50,]   15.5    0.050555591
## [51,]   14.1    0.050555591
## [52,]   11.0    0.050555591
## [53,]   11.1    0.050555591
## [54,]   14.0    0.050555591
## [55,]   11.4    0.050555591
## [56,]   12.5    0.050555591
## [57,]   13.4    0.050555591
## [58,]   13.6    0.050555591
## [59,]   13.9    0.050555591
## [60,]   17.2    0.050555591
## [61,]   14.7    0.050555591
## [62,]   15.4    0.050555591
## [63,]   13.1    0.050555591
## [64,]   13.2    0.050555591
## [65,]   13.9    0.050555591
## [66,]   10.0    0.050555591
## [67,]   12.9    0.050555591
## [68,]   14.6    0.050555591
## [69,]   14.0    0.050555591
## [70,]   13.6    0.050555591
## [71,]   13.5    0.050555591
## [72,]   15.7    0.050555591
## [73,]   13.0    0.050555591
accuracy(dt1.ramalan1, dt1.ts1.test)
##                ME     RMSE      MAE      MPE     MAPE
## Test set 13.31401 13.59243 13.31401 99.59589 99.59589

Setelah dilakukan perbandingan antara data aktual dengan hasil forecast sebanyak 73 (banyaknya data testing), diperoleh bahwa nilai MAPE sebesar 99.59589.

2. Database Electric Production

setwd("c:/Users/Ilham Kurnia/Documents/SEMESTER 6/UTS/MPDW")
dt2<-read.csv("Electric_Production.csv")
head(dt2)
##       DATE IPG2211A2N
## 1 1/1/1998    94.7920
## 2 2/1/1998    87.8200
## 3 3/1/1998    86.5549
## 4 4/1/1998    76.7521
## 5 5/1/1998    78.0303
## 6 6/1/1998    86.4579

Membagi data training dan testing deret waktu

dt2.ts2<-ts(dt2$IPG2211A2N)

dt2.ts2.train <- dt2.ts2[1:193]
dt2.ts2.test <- dt2.ts2[194:241]

dt2.ts2.train.ts <- ts(dt2.ts2.train)
dt2.ts2.test.ts <- ts(dt2.ts2.test)

Membuat plot data deret waktu

ts.plot(dt2.ts2.train.ts, xlab="Time Period ", ylab="Produksi",
col = "green",
main= "Plot Data Deret Waktu Training Electric Production")

ts.plot(dt2.ts2.test.ts, xlab="Time Period ", ylab="Produksi",
col = "green",
main= "Plot Data Deret Waktu Testing Electric Production")

Plot ACF dan PACF

acf(dt2.ts2.train, lag.max = 20, main = "Plot ACF Electric Production")

pacf(dt2.ts2.train, lag.max = 20, main = "Plot PACF Electric Production")

Plot ACF terlihat cuts off setelah lag ke-1 menunjukan data stationer. Sedangkan plot PACF terlihat tail off setelah lag ke-1 menunjukan stationer.Sehingga dugaan model tentatifnya yaitu ARIMA(0,0,1).

Membuat plot EACF untuk menentukan model dugaan

eacf(dt2.ts2)
## AR/MA
##   0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x o x o x x x o x o x  x  x  o 
## 1 x o x o x x x x x o x  x  x  x 
## 2 x x x x x x x x x x x  x  x  x 
## 3 x x o o o o o o o o o  x  x  x 
## 4 x x x o o o o o o o o  x  x  x 
## 5 x x x x o o o o o o o  x  o  o 
## 6 x x x x o o o o o o o  x  x  o 
## 7 x x o x x o o o o o o  x  o  o

Berdasarkan hasil plot EACF di atas, diperoleh 4 model dugaan yang dapat diduga dari data electric production sebagai model tentatifnya yaitu ARIMA(0,0,1), ARIMA(3,0,2), ARIMA(4,0,3), dan ARIMA(3,0,3). Untuk memastikan model tentatif dari keempat model dugaan tersebut, dilakukan uji lanjut yaitu Uji Signifikansi Parameter.

Melakukan uji signifikansi parameter

dugaan2.model1 <- Arima(dt2.ts2, order=c(0,0,1), method = "ML")
coeftest(dugaan2.model1)
## 
## z test of coefficients:
## 
##            Estimate Std. Error z value  Pr(>|z|)    
## ma1        0.784482   0.028321   27.70 < 2.2e-16 ***
## intercept 98.464776   0.798692  123.28 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(dugaan2.model1)
## Series: dt2.ts2 
## ARIMA(0,0,1) with non-zero mean 
## 
## Coefficients:
##          ma1     mean
##       0.7845  98.4648
## s.e.  0.0283   0.7987
## 
## sigma^2 = 48.86:  log likelihood = -810.05
## AIC=1626.11   AICc=1626.21   BIC=1636.56
## 
## Training set error measures:
##                        ME     RMSE      MAE        MPE     MAPE     MASE
## Training set -0.004316546 6.960815 5.613553 -0.6202745 5.728883 0.744417
##                   ACF1
## Training set 0.3050154

Berdasarkan hasil uji signifikansi parameter tersebut, diperoleh nilai p-value < alpha = 0.05 pada seluruh parameter dan nilai AIC sebesar 1289.17. Dengan demikian, seluruh parameter signifikan untuk dugaan model tentatif ARIMA(0,0,1).

dugaan2.model2 <- Arima(dt2.ts2, order=c(3,0,2), method = "ML")
coeftest(dugaan2.model2)
## 
## z test of coefficients:
## 
##            Estimate Std. Error z value  Pr(>|z|)    
## ar1        1.957865   0.031671  61.820 < 2.2e-16 ***
## ar2       -1.860912   0.052258 -35.610 < 2.2e-16 ***
## ar3        0.893386   0.029550  30.233 < 2.2e-16 ***
## ma1       -1.078578   0.030680 -35.156 < 2.2e-16 ***
## ma2        0.290811   0.020046  14.507 < 2.2e-16 ***
## intercept 97.569873   4.605480  21.186 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(dugaan2.model2)
## Series: dt2.ts2 
## ARIMA(3,0,2) with non-zero mean 
## 
## Coefficients:
##          ar1      ar2     ar3      ma1     ma2     mean
##       1.9579  -1.8609  0.8934  -1.0786  0.2908  97.5699
## s.e.  0.0317   0.0523  0.0296   0.0307  0.0200   4.6055
## 
## sigma^2 = 19.63:  log likelihood = -700.05
## AIC=1414.09   AICc=1414.58   BIC=1438.49
## 
## Training set error measures:
##                     ME     RMSE      MAE       MPE     MAPE      MASE
## Training set 0.3261258 4.374524 3.279576 0.1466437 3.311518 0.4349067
##                     ACF1
## Training set -0.06740882

Berdasarkan hasil uji signifikansi parameter tersebut, diperoleh nilai p-value < alpha = 0.05 pada seluruh parameter dan nilai AIC sebeasar 1049.95. Dengan demikian, seluruh parameter signifikan untuk dugaan model tentatif ARIMA(3,0,2).

dugaan2.model3 <- Arima(dt2.ts2, order=c(4,0,3), method = "ML")
coeftest(dugaan2.model3)
## 
## z test of coefficients:
## 
##            Estimate Std. Error  z value Pr(>|z|)    
## ar1        0.869205   0.045532  19.0898  < 2e-16 ***
## ar2       -0.028553   0.048342  -0.5906  0.55476    
## ar3       -0.970810   0.048340 -20.0830  < 2e-16 ***
## ar4        0.839695   0.042463  19.7749  < 2e-16 ***
## ma1       -0.074245   0.035658  -2.0822  0.03733 *  
## ma2       -0.030799   0.038380  -0.8025  0.42228    
## ma3        0.943979   0.037393  25.2450  < 2e-16 ***
## intercept 98.486976   1.442149  68.2918  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(dugaan2.model3)
## Series: dt2.ts2 
## ARIMA(4,0,3) with non-zero mean 
## 
## Coefficients:
##          ar1      ar2      ar3     ar4      ma1      ma2     ma3     mean
##       0.8692  -0.0286  -0.9708  0.8397  -0.0742  -0.0308  0.9440  98.4870
## s.e.  0.0455   0.0483   0.0483  0.0425   0.0357   0.0384  0.0374   1.4421
## 
## sigma^2 = 13.54:  log likelihood = -657.02
## AIC=1332.05   AICc=1332.83   BIC=1363.41
## 
## Training set error measures:
##                      ME     RMSE      MAE         MPE     MAPE      MASE
## Training set 0.06616651 3.618672 2.755634 -0.09613898 2.788301 0.3654265
##                    ACF1
## Training set -0.1074345

Berdasarkan hasil uji signifikansi parameter tersebut, diperoleh nilai p-value < alpha = 0.05 pada parameter ar1, ar3, ar4, ma1, dan ma3 dan nilai AIC sebeasar 1053.75. Dengan demikian, parameter ar1, ar3, ar4, ma1, dan ma3 signifikan untuk dugaan model tentatif ARIMA(4,0,3).

dugaan2.model4 <- arima(dt2.ts2, order=c(3,0,3), method = "ML")
coeftest(dugaan2.model4)
## 
## z test of coefficients:
## 
##            Estimate Std. Error  z value  Pr(>|z|)    
## ar1        1.936860   0.031856  60.8002 < 2.2e-16 ***
## ar2       -1.936596   0.031875 -60.7562 < 2.2e-16 ***
## ar3        0.936932   0.031937  29.3364 < 2.2e-16 ***
## ma1       -1.333769   0.084293 -15.8231 < 2.2e-16 ***
## ma2        1.283265   0.089064  14.4083 < 2.2e-16 ***
## ma3       -0.304591   0.088232  -3.4522 0.0005561 ***
## intercept 98.545667   2.221278  44.3644 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(dugaan2.model4)
## 
## Call:
## arima(x = dt2.ts2, order = c(3, 0, 3), method = "ML")
## 
## Coefficients:
##          ar1      ar2     ar3      ma1     ma2      ma3  intercept
##       1.9369  -1.9366  0.9369  -1.3338  1.2833  -0.3046    98.5457
## s.e.  0.0319   0.0319  0.0319   0.0843  0.0891   0.0882     2.2213
## 
## sigma^2 estimated as 12.6:  log likelihood = -652.35,  aic = 1318.7
## 
## Training set error measures:
## Warning in trainingaccuracy(object, test, d, D): test elements must be within
## sample
##               ME RMSE MAE MPE MAPE
## Training set NaN  NaN NaN NaN  NaN

Berdasarkan hasil uji signifikansi parameter tersebut, diperoleh nilai p-value < alpha = 0.05 pada seluruh parameter dan nilai AIC sebesar 1042.73. Dengan demikian, seluruh parameter signifikan untuk dugaan model tentatif ARIMA(3,0,3).

dugaan2.model5 <- arima(dt2.ts2, order=c(3,0,4), method = "ML")
coeftest(dugaan2.model5)
## 
## z test of coefficients:
## 
##             Estimate Std. Error   z value  Pr(>|z|)    
## ar1        1.9959188  0.0041246  483.9008 < 2.2e-16 ***
## ar2       -1.9959225  0.0041183 -484.6523 < 2.2e-16 ***
## ar3        0.9972801  0.0038233  260.8448 < 2.2e-16 ***
## ma1       -1.4349065  0.0622111  -23.0651 < 2.2e-16 ***
## ma2        1.0744451  0.1125850    9.5434 < 2.2e-16 ***
## ma3       -0.1287399  0.1122056   -1.1474    0.2512    
## ma4       -0.3391584  0.0625804   -5.4196 5.975e-08 ***
## intercept 96.7214925  7.0397596   13.7393 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(dugaan2.model5)
## 
## Call:
## arima(x = dt2.ts2, order = c(3, 0, 4), method = "ML")
## 
## Coefficients:
##          ar1      ar2     ar3      ma1     ma2      ma3      ma4  intercept
##       1.9959  -1.9959  0.9973  -1.4349  1.0744  -0.1287  -0.3392    96.7215
## s.e.  0.0041   0.0041  0.0038   0.0622  0.1126   0.1122   0.0626     7.0398
## 
## sigma^2 estimated as 11.88:  log likelihood = -645.1,  aic = 1306.19
## 
## Training set error measures:
## Warning in trainingaccuracy(object, test, d, D): test elements must be within
## sample
##               ME RMSE MAE MPE MAPE
## Training set NaN  NaN NaN NaN  NaN

Berdasarkan hasil uji signifikansi parameter tersebut, diperoleh nilai p-value > alpha = 0.05 pada parameter ma3 dengan nilai AIC sebesar 1034.67. Dengan demikian, hanya parameter ma3 yang tidak signifikan untuk dugaan model tentatif ARIMA(3,0,4).

Berdasarkan keempat dugaan model tentatif tersebut dapat disimpulkan bahwa model tentatif ARIMA(0,0,1), ARIMA(3,0,2), dan ARIMA(3,0,3) seluruh parameternya signifikan dengan nilai AIC terkecil dari ketiga model tersebut yaitu ARIMA(3,0,3) yaitu sebesar 1042.73. Sehingga

Berdasarkan uji eksploratif diperoleh hasil yang sama antara plot data deret waktu, plot ACF dan PACF yang menunjukkan bahwa data stasioner. Namun tetap perlu dilakukan uji lebih lanjut menggunakan Uji Formal yaitu Uji Augmented Dickey Fuller untuk lebih memastikan.

Uji Augmented Fuller

adf.test(dt2.ts2.train.ts)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  dt2.ts2.train.ts
## Dickey-Fuller = -3.8358, Lag order = 5, p-value = 0.01856
## alternative hypothesis: stationary

Berdasarkan Uji Augmented Fuller di atas kita mendapatkan p-value = 0.01856 H1 data stationer sehingga tolak H0. Artinya cukup bukti menyatakan bahwa data stationer pada taraf nyata 5%. Diagnostik Model

sisaan2<-residuals(dugaan2.model3)

Uji Eksplorasi

par(mfrow=c(2,2))
qqnorm(sisaan2)
qqline(sisaan2, col = "blue", lwd = 2)
plot(c(1:length(sisaan2)),sisaan2)
acf(sisaan2)
pacf(sisaan2)

Berdasarkan output di atas, terlihat bahwa titik-titik sisaan berada di sepanjang garis lurus sehingga dapat dikatakan bahwa sisaan menyebar normal. Pada plot ACF dan PACF terdapat lag yang melewati garis biru tetapi di lag ke-6, 11, dan 18 sehingga dapat dikatakan sisaan saling bebas. Pada plot sisaan, terlihat bahwa sebaran sisaan berada di sekitar nol dengan pola sisaan menyebar secara acak sehingga dapat dikatakan bahwa nilai tengah sisaan sama dengan nol. Namun tetap diperlukan uji lebih lanjut untuk memastikan bahwa ketiga asumsi tersebut benar terpenuhi dengan uji formal.

Uji Formal

jarque.bera.test(sisaan2)
## 
##  Jarque Bera Test
## 
## data:  sisaan2
## X-squared = 9.9558, df = 2, p-value = 0.006888
Box.test(sisaan2, type = "Ljung")
## 
##  Box-Ljung test
## 
## data:  sisaan2
## X-squared = 2.8164, df = 1, p-value = 0.0933
t.test(sisaan2, mu = 0, conf.level = 0.95)
## 
##  One Sample t-test
## 
## data:  sisaan2
## t = 0.28331, df = 240, p-value = 0.7772
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  -0.3938937  0.5262267
## sample estimates:
##  mean of x 
## 0.06616651

Bedasarkan Uji Formal di atas didapatkan hasil tak tolak H0. Artinya data menyebar normal, saling bebas atau tidak ada autokorelasi dan nilai sisaan sama dengan nol pada taraf nyata 5%.

Berdasarkan uji eksplorasi dan uji formal pada model ARIMA(3,0,3) terhadap ketiga asumsi tersebut, diperoleh bahwa seluruh asumsi terpenuhi.

Overfitting

Menaikan 1 ordo pada p dan q

dugaan2.model3.1 = Arima(dt2.ts2.train.ts, order=c(4,0,3), method="ML")
coeftest(dugaan2.model3.1)
## 
## z test of coefficients:
## 
##            Estimate Std. Error z value Pr(>|z|)    
## ar1        0.881891   0.069128 12.7573   <2e-16 ***
## ar2       -0.052023   0.104861 -0.4961   0.6198    
## ar3       -0.946523   0.104846 -9.0277   <2e-16 ***
## ar4        0.830397   0.062144 13.3624   <2e-16 ***
## ma1       -0.095218   0.063951 -1.4889   0.1365    
## ma2       -0.018036   0.066818 -0.2699   0.7872    
## ma3        0.961979   0.069284 13.8847   <2e-16 ***
## intercept 97.261237   1.543906 62.9969   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(dugaan2.model3.1)
## Series: dt2.ts2.train.ts 
## ARIMA(4,0,3) with non-zero mean 
## 
## Coefficients:
##          ar1      ar2      ar3     ar4      ma1      ma2     ma3     mean
##       0.8819  -0.0520  -0.9465  0.8304  -0.0952  -0.0180  0.9620  97.2612
## s.e.  0.0691   0.1049   0.1048  0.0621   0.0640   0.0668  0.0693   1.5439
## 
## sigma^2 = 12.2:  log likelihood = -517.87
## AIC=1053.75   AICc=1054.73   BIC=1083.11
## 
## Training set error measures:
##                      ME     RMSE      MAE         MPE     MAPE      MASE
## Training set 0.07428448 3.419821 2.605774 -0.08654653 2.668959 0.3557078
##                    ACF1
## Training set -0.1114397
dugaan2.model3.2 = Arima(dt2.ts2.train.ts, order=c(3,0,4), method="ML")
coeftest(dugaan2.model3.2)
## 
## z test of coefficients:
## 
##             Estimate Std. Error   z value  Pr(>|z|)    
## ar1        1.9933700  0.0060675  328.5334 < 2.2e-16 ***
## ar2       -1.9929942  0.0061801 -322.4850 < 2.2e-16 ***
## ar3        0.9951325  0.0056013  177.6625 < 2.2e-16 ***
## ma1       -1.4444044  0.0753259  -19.1754 < 2.2e-16 ***
## ma2        1.1206018  0.1344285    8.3360 < 2.2e-16 ***
## ma3       -0.1848162  0.1451655   -1.2731 0.2029678    
## ma4       -0.2828545  0.0746846   -3.7873 0.0001523 ***
## intercept 96.0027780  6.1260603   15.6712 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(dugaan2.model3.2)
## Series: dt2.ts2.train.ts 
## ARIMA(3,0,4) with non-zero mean 
## 
## Coefficients:
##          ar1      ar2     ar3      ma1     ma2      ma3      ma4     mean
##       1.9934  -1.9930  0.9951  -1.4444  1.1206  -0.1848  -0.2829  96.0028
## s.e.  0.0061   0.0062  0.0056   0.0753  0.1344   0.1452   0.0747   6.1261
## 
## sigma^2 = 11.25:  log likelihood = -508.33
## AIC=1034.67   AICc=1035.65   BIC=1064.03
## 
## Training set error measures:
##                     ME     RMSE     MAE      MPE    MAPE      MASE       ACF1
## Training set 0.4215877 3.283919 2.47498 0.306042 2.49973 0.3378534 0.03457945

Berdasarkan hasil overfitting dengan menaikkan masing-masing satu ordo pada ordo p dan q secara berurutan, diperoleh bahwa hanya beberapa parameter saja yang signifikan. Dengan demikian, dugaan model tentatif pada overfitting tersebut tidak dapat dijadikan sebagai model tentatif. Sehingga model tentatif ARIMA(3,0,3) tetap menjadi model terbaik.

Forecasting

ramalan2 <-forecast(dugaan2.model3, h = 73)
ramalan2
##     Point Forecast     Lo 80     Hi 80     Lo 95     Hi 95
## 242      122.84707 118.13027 127.56387 115.63334 130.06079
## 243      108.81695 102.79111 114.84279  99.60122 118.03268
## 244       97.53938  90.81729 104.26147  87.25884 107.81993
## 245       99.68091  92.55814 106.80367  88.78758 110.57423
## 246      109.97842 102.49893 117.45790  98.53953 121.41730
## 247      118.03527 110.24650 125.82405 106.12337 129.94718
## 248      113.19558 105.14438 121.24678 100.88233 125.50882
## 249      100.56015  92.37546 108.74483  88.04275 113.07754
## 250       90.54064  82.29164  98.78964  77.92489 103.15640
## 251       93.65615  85.37775 101.93454  80.99543 106.31686
## 252      104.85297  96.53009 113.17585  92.12423 117.58171
## 253      113.61348 105.23484 121.99211 100.79946 126.42750
## 254      109.47056 101.03236 117.90877  96.56545 122.37568
## 255       97.36547  88.90642 105.82452  84.42847 110.30247
## 256       87.85908  79.39567  96.32250  74.91541 100.80276
## 257       91.31985  82.85625  99.78346  78.37588 104.26382
## 258      102.87237  94.40319 111.34154  89.91989 115.82485
## 259      111.87937 103.39548 120.36325  98.90438 124.85435
## 260      108.03622  99.53133 116.54110  95.02912 121.04332
## 261       96.12926  87.62053 104.63798  83.11628 109.14223
## 262       86.84590  78.33716  95.35465  73.83290  99.85891
## 263       90.41084  81.90005  98.92163  77.39471 103.42698
## 264      102.10689  93.59561 110.61818  89.09001 115.12378
## 265      111.18553 102.66820 119.70285  98.15940 124.21165
## 266      107.48670  98.95806 116.01535  94.44327 120.53014
## 267       95.65126  87.12167 104.18085  82.60638 108.69614
## 268       86.47694  77.94626  95.00762  73.43040  99.52349
## 269       90.05465  81.51939  98.58990  77.00110 103.10819
## 270      101.81044  93.27518 110.34569  88.75689 114.86399
## 271      110.89484 102.35584 119.43384  97.83557 123.95411
## 272      107.27848  98.73120 115.82576  94.20654 120.35042
## 273       95.46728  86.91963 104.01493  82.39478 108.53978
## 274       86.35624  77.80665  94.90583  73.28077  99.43171
## 275       89.91304  81.35770  98.46838  76.82878 102.99730
## 276      101.69457  93.13918 110.24995  88.61024 114.77889
## 277      110.76086 102.20244 119.31927  97.67190 123.84982
## 278      107.20145  98.63588 115.76702  94.10154 120.30136
## 279       95.39774  86.83194 103.96353  82.29748 108.49799
## 280       86.33076  77.76261  94.89891  73.22691  99.43462
## 281       89.85516  81.28084  98.42948  76.74187 102.96845
## 282      101.64782  93.07339 110.22224  88.53437 114.76127
## 283      110.68821 102.11099 119.26543  97.57049 123.80594
## 284      107.17444  98.59054 115.75834  94.04650 120.30238
## 285       95.37312  86.78903 103.95720  82.24490 108.50134
## 286       86.34140  77.75478  94.92803  73.20929  99.47352
## 287       89.83033  81.23744  98.42323  76.68864 102.97203
## 288      101.62716  93.03412 110.22019  88.48524 114.76907
## 289      110.63996 102.04419 119.23572  97.49387 123.78604
## 290      107.16613  98.56393 115.76832  94.01021 120.32205
## 291       95.36648  86.76410 103.96885  82.21028 108.52267
## 292       86.36537  77.76036  94.97038  73.20514  99.52560
## 293       89.81890  81.20765  98.43016  76.64913 102.98868
## 294      101.61600  93.00458 110.22742  88.44597 114.78603
## 295      110.60175 101.98761 119.21588  97.42756 123.77593
## 296      107.16445  98.54404 115.78486  93.98067 120.34823
## 297       95.36734  86.74675 103.98794  82.18328 108.55141
## 298       86.39390  77.77061  95.01718  73.20572  99.58207
## 299       89.81322  81.18376  98.44268  76.61560 103.01084
## 300      101.60800  92.97835 110.23764  88.41009 114.80590
## 301      110.56799 101.93562 119.20036  97.36591 123.77006
## 302      107.16480  98.52627 115.80334  93.95331 120.37630
## 303       95.37161  86.73289 104.01034  82.15982 108.58341
## 304       86.42365  77.78221  95.06510  73.20770  99.63960
## 305       89.81027  81.16273  98.45781  76.58499 103.03555
## 306      101.60073  92.95300 110.24847  88.37516 114.82631
## 307      110.53645 101.88598 119.18693  97.30669 123.76622
## 308      107.16546  98.50891 115.82200  93.92641 120.40450
## 309       95.37765  86.72091 104.03440  82.13830 108.61701
## 310       86.45340  77.79391  95.11289  73.20985  99.69695
## 311       89.80884  81.14333  98.47435  76.55609 103.06159
## 312      101.59333  92.92761 110.25904  88.34026 114.84639
## 313      110.50625 101.83778 119.17472  97.24897 123.76353
## 314      107.16578  98.49133 115.84023  93.89935 120.43221
dt2.ramalan2 <- ramalan2$mean
dt2.ramalan2
## Time Series:
## Start = 242 
## End = 314 
## Frequency = 1 
##  [1] 122.84707 108.81695  97.53938  99.68091 109.97842 118.03527 113.19558
##  [8] 100.56015  90.54064  93.65615 104.85297 113.61348 109.47056  97.36547
## [15]  87.85908  91.31985 102.87237 111.87937 108.03622  96.12926  86.84590
## [22]  90.41084 102.10689 111.18553 107.48670  95.65126  86.47694  90.05465
## [29] 101.81044 110.89484 107.27848  95.46728  86.35624  89.91304 101.69457
## [36] 110.76086 107.20145  95.39774  86.33076  89.85516 101.64782 110.68821
## [43] 107.17444  95.37312  86.34140  89.83033 101.62716 110.63996 107.16613
## [50]  95.36648  86.36537  89.81890 101.61600 110.60175 107.16445  95.36734
## [57]  86.39390  89.81322 101.60800 110.56799 107.16480  95.37161  86.42365
## [64]  89.81027 101.60073 110.53645 107.16546  95.37765  86.45340  89.80884
## [71] 101.59333 110.50625 107.16578
plot(ramalan2)

Membandingkan Data Aktual dengan Hasil Forecast

perbandingan2 <- matrix(data = c(dt2.ts2.test, dt2.ramalan2),
nrow = 121, ncol = 2)
colnames(perbandingan2) <- c("Aktual", "Hasil Forecast")
perbandingan2
##           Aktual Hasil Forecast
##   [1,] 112.88110      112.88110
##   [2,] 104.76310      104.76310
##   [3,]  90.28670       90.28670
##   [4,]  92.13400       92.13400
##   [5,] 101.87800      101.87800
##   [6,] 108.54970      108.54970
##   [7,] 108.19400      108.19400
##   [8,] 100.41720      100.41720
##   [9,]  92.38370       92.38370
##  [10,]  99.70330       99.70330
##  [11,] 109.34770      109.34770
##  [12,] 120.26960      120.26960
##  [13,] 116.37880      116.37880
##  [14,] 104.47060      104.47060
##  [15,]  89.74610       89.74610
##  [16,]  91.09300       91.09300
##  [17,] 102.64950      102.64950
##  [18,] 111.63540      111.63540
##  [19,] 110.59250      110.59250
##  [20,] 101.92040      101.92040
##  [21,]  91.59590       91.59590
##  [22,]  93.06280       93.06280
##  [23,] 103.22030      103.22030
##  [24,] 117.08370      117.08370
##  [25,] 106.66880      106.66880
##  [26,]  95.35480       95.35480
##  [27,]  89.32540       89.32540
##  [28,]  90.73690       90.73690
##  [29,] 104.03750      104.03750
##  [30,] 114.53970      114.53970
##  [31,] 115.51590      115.51590
##  [32,] 102.76370      102.76370
##  [33,]  91.48670       91.48670
##  [34,]  92.89000       92.89000
##  [35,] 112.76940      112.76940
##  [36,] 114.85050      114.85050
##  [37,]  99.49010       99.49010
##  [38,] 101.03960      101.03960
##  [39,]  88.35300       88.35300
##  [40,]  92.08050       92.08050
##  [41,] 102.15320      102.15320
##  [42,] 112.15380      112.15380
##  [43,] 108.93120      108.93120
##  [44,]  98.61540       98.61540
##  [45,]  93.61370       93.61370
##  [46,]  97.33590       97.33590
##  [47,] 114.72120      114.72120
##  [48,] 129.40480      129.40480
##  [49,] 122.84707      122.84707
##  [50,] 108.81695      108.81695
##  [51,]  97.53938       97.53938
##  [52,]  99.68091       99.68091
##  [53,] 109.97842      109.97842
##  [54,] 118.03527      118.03527
##  [55,] 113.19558      113.19558
##  [56,] 100.56015      100.56015
##  [57,]  90.54064       90.54064
##  [58,]  93.65615       93.65615
##  [59,] 104.85297      104.85297
##  [60,] 113.61348      113.61348
##  [61,] 109.47056      109.47056
##  [62,]  97.36547       97.36547
##  [63,]  87.85908       87.85908
##  [64,]  91.31985       91.31985
##  [65,] 102.87237      102.87237
##  [66,] 111.87937      111.87937
##  [67,] 108.03622      108.03622
##  [68,]  96.12926       96.12926
##  [69,]  86.84590       86.84590
##  [70,]  90.41084       90.41084
##  [71,] 102.10689      102.10689
##  [72,] 111.18553      111.18553
##  [73,] 107.48670      107.48670
##  [74,]  95.65126       95.65126
##  [75,]  86.47694       86.47694
##  [76,]  90.05465       90.05465
##  [77,] 101.81044      101.81044
##  [78,] 110.89484      110.89484
##  [79,] 107.27848      107.27848
##  [80,]  95.46728       95.46728
##  [81,]  86.35624       86.35624
##  [82,]  89.91304       89.91304
##  [83,] 101.69457      101.69457
##  [84,] 110.76086      110.76086
##  [85,] 107.20145      107.20145
##  [86,]  95.39774       95.39774
##  [87,]  86.33076       86.33076
##  [88,]  89.85516       89.85516
##  [89,] 101.64782      101.64782
##  [90,] 110.68821      110.68821
##  [91,] 107.17444      107.17444
##  [92,]  95.37312       95.37312
##  [93,]  86.34140       86.34140
##  [94,]  89.83033       89.83033
##  [95,] 101.62716      101.62716
##  [96,] 110.63996      110.63996
##  [97,] 107.16613      107.16613
##  [98,]  95.36648       95.36648
##  [99,]  86.36537       86.36537
## [100,]  89.81890       89.81890
## [101,] 101.61600      101.61600
## [102,] 110.60175      110.60175
## [103,] 107.16445      107.16445
## [104,]  95.36734       95.36734
## [105,]  86.39390       86.39390
## [106,]  89.81322       89.81322
## [107,] 101.60800      101.60800
## [108,] 110.56799      110.56799
## [109,] 107.16480      107.16480
## [110,]  95.37161       95.37161
## [111,]  86.42365       86.42365
## [112,]  89.81027       89.81027
## [113,] 101.60073      101.60073
## [114,] 110.53645      110.53645
## [115,] 107.16546      107.16546
## [116,]  95.37765       95.37765
## [117,]  86.45340       86.45340
## [118,]  89.80884       89.80884
## [119,] 101.59333      101.59333
## [120,] 110.50625      110.50625
## [121,] 107.16578      107.16578
accuracy(dt2.ramalan2,dt2.ts2.test)
##                ME     RMSE     MAE      MPE     MAPE
## Test set 2.257035 6.107377 4.80159 2.059875 4.555307

Setelah dilakukan perbandingan antara data aktual dengan hasil forecast sebanyak 48 (banyaknya data testing), diperoleh bahwa nilai MAPE sebesar 4.001951

3. Database Monthly Beer Production In Austr

setwd("c:/Users/Ilham Kurnia/Documents/SEMESTER 6/UTS/MPDW")
dt3<-read.csv("monthly-beer-production-in-austr.csv")
head(dt3)
##     Month Monthly.beer.production
## 1 1986-01                   161.2
## 2 1986-02                   155.5
## 3 1986-03                   141.9
## 4 1986-04                   164.6
## 5 1986-05                   136.2
## 6 1986-06                   126.8

Membagi data training dan testing data deret waktu

dt3.ts3<-ts(dt3$Monthly.beer.production)

dt3.ts3.train <- dt3.ts3[1:93]
dt3.ts3.test <- dt3.ts3[94:116]

dt3.ts3.train.ts <- ts(dt3.ts3.train)
dt3.ts3.test.ts <- ts(dt3.ts3.test)

Membuat Plot Data Deter Waktu

ts.plot(dt3.ts3.train.ts, xlab="Time Period ", ylab="Produksi",
col = "blue",
main= "Plot Data Deret Waktu Training Monthly Beer Production")

ts.plot(dt3.ts3.test.ts, xlab="Time Period ", ylab="Produksi",
col = "blue",
main= "Plot Data Deret Waktu Testing Monthly Beer Production")

Plot ACF dan PACF

acf(dt3.ts3.train.ts, lag.max = 20, main = "Plot ACF Electric Production")

pacf(dt3.ts3.train.ts, lag.max = 20, main = "Plot PACF Electric Production")

Berdasarkan plot ACF di atas, terlihat bahwa nilai ACF cuts off setelah lag ke-1 sehingga model tentatifnya adalah ARIMA(0,0,1). Pada plot PACF menunjukkan bahwa data terlihat stasioner, dengan adanya nilai PACF yang cuts off setelah lag ke-2 sehingga model tentatifnya adalah ARIMA(2,0,0).

Membuat plot EACF untuk menentukan model dugaan

eacf(dt3.ts3.train.ts)
## AR/MA
##   0 1 2 3 4 5 6 7 8 9 10 11 12 13
## 0 x o o x x x x o o o x  x  x  o 
## 1 o o o o o o o o o o o  x  o  o 
## 2 o o o o o o o o o o o  x  o  o 
## 3 o x o o o x o o o o o  x  x  o 
## 4 o x o o o x o o o o o  x  x  o 
## 5 o x o o x o o o o o o  x  o  o 
## 6 o x o o x o o o o o o  x  o  o 
## 7 x o o o x o o o o o o  x  o  o

Berdasarkan hasil plot EACF di atas, diperoleh 4 model dugaan yang dapat diduga dari data monthly beer production sebagai model tentatifnya yaitu ARIMA(0,0,3), ARIMA(1,0,3), ARIMA(3,0,1) dan ARIMA(3,0,2). Untuk memastikan model tentatif dari keempat model dugaan tersebut, dilakukan uji lanjut yaitu Uji Signifikansi Parameter.

Melakukan uji signifikansi parameter

dugaan3.model1 <- arima(dt3.ts3.train.ts, order=c(1,0,0), method = "ML")
coeftest(dugaan3.model1)
## 
## z test of coefficients:
## 
##             Estimate Std. Error z value  Pr(>|z|)    
## ar1         0.404374   0.094163  4.2944 1.751e-05 ***
## intercept 156.200961   3.425845 45.5949 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Berdasarkan hasil uji signifikansi parameter tersebut, diperoleh nilai p-value < alpha = 0.05 pada seluruh parameter dan nilai AIC sebesar 603.28. Dengan demikian, seluruh parameter signifikan untuk dugaan model tentatif ARIMA(1,0,0).

dugaan3.model2 <- arima(dt3.ts3.train.ts, order=c(1,0,3), method = "ML")
coeftest(dugaan3.model2)
## 
## z test of coefficients:
## 
##            Estimate Std. Error z value  Pr(>|z|)    
## ar1        -0.57718    0.18117 -3.1858  0.001443 ** 
## ma1         1.13358    0.20059  5.6513 1.592e-08 ***
## ma2         0.38489    0.18176  2.1176  0.034210 *  
## ma3         0.23037    0.11055  2.0839  0.037173 *  
## intercept 156.04799    3.34504 46.6506 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Berdasarkan hasil uji signifikansi parameter tersebut, diperoleh nilai p-value < alpha = 0.05 pada parameter ar1, ma2, dan ma4 dan nilai AIC sebesar 568.1. Dengan demikian, parameter ar1, ma2, dan ma4 signifikan untuk dugaan model tentatif ARIMA(1,0,3).

dugaan3.model3 <- arima(dt3.ts3.train.ts, order=c(3,0,1), method = "ML")
coeftest(dugaan3.model3)
## 
## z test of coefficients:
## 
##             Estimate Std. Error z value  Pr(>|z|)    
## ar1        -0.437524   0.108243 -4.0421 5.298e-05 ***
## ar2         0.257468   0.111221  2.3149   0.02062 *  
## ar3         0.066492   0.106560  0.6240   0.53264    
## ma1         0.983193   0.065491 15.0127 < 2.2e-16 ***
## intercept 156.002241   3.435115 45.4140 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Berdasarkan hasil uji signifikansi parameter tersebut, diperoleh nilai p-value < alpha = 0.05 pada seluruh parameter dan nilai AIC sebesar 572.08. Dengan demikian, seluruh parameter signifikan untuk dugaan model tentatif ARIMA(3,0,1).

dugaan3.model4 <- Arima(dt3.ts3.train.ts, order=c(3,0,2), method = "ML")
coeftest(dugaan3.model4)
## 
## z test of coefficients:
## 
##            Estimate Std. Error z value  Pr(>|z|)    
## ar1         0.37755    0.14707  2.5671  0.010255 *  
## ar2         0.53191    0.12014  4.4276 9.528e-06 ***
## ar3        -0.29778    0.10673 -2.7900  0.005271 ** 
## ma1         0.17460    0.12892  1.3544  0.175622    
## ma2        -0.79904    0.12027 -6.6436 3.061e-11 ***
## intercept 156.70666    1.94987 80.3678 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Berdasarkan hasil uji signifikansi parameter tersebut, diperoleh nilai p-value < alpha = 0.05 pada parameter ar1, ar2, ar3, ma1, dan ma2 dan nilai AIC sebesar 507.3. Dengan demikian, parameter ar1, ar2, ar3, ma1, dan ma2 signifikan untuk dugaan model tentatif ARIMA(3,0,2).

dugaan3.model5 <- arima(dt3.ts3.train.ts, order=c(0,0,3), method = "ML")
coeftest(dugaan3.model5)
## 
## z test of coefficients:
## 
##             Estimate Std. Error z value  Pr(>|z|)    
## ma1         0.553494   0.102040  5.4243 5.819e-08 ***
## ma2         0.063898   0.120294  0.5312   0.59529    
## ma3         0.283881   0.109211  2.5994   0.00934 ** 
## intercept 156.059485   3.714747 42.0108 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Berdasarkan hasil uji signifikansi parameter tersebut, diperoleh nilai p-value < alpha = 0.05 pada parameter ar1, ar2, ar3, ma1, dan ma2 dan nilai AIC sebesar 584.72. Dengan demikian, parameter ar1, ar2, ar3, ma1, dan ma2 signifikan untuk dugaan model tentatif ARIMA(0,0,3).

Berdasarkan keenam dugaan model tentatif tersebut dapat disimpulkan bahwa model tentatif ARIMA(0,0,1), ARIMA(2,0,0), ARIMA(0,0,3), dan ARIMA(3,0,2) seluruh parameternya signifikan dengan nilai AIC terkecil dari keempat model tersebut yaitu ARIMA(3,0,2) yaitu sebesar 507.3. Sehingga ARIMA(3,0,2) menjadi model tentatif yang paling cocok digunakan untuk tahapan analisis selanjutnya

Berdasarkan uji eksploratif diperoleh hasil yang sama antara plot data deret waktu, plot ACF dan PACF yang menunjukkan bahwa data stasioner. Namun tetap perlu dilakukan uji lebih lanjut menggunakan Uji Formal yaitu Uji Augmented Dickey Fuller untuk lebih memastikan.

Uji Augmented Fuller

adf.test(dt3.ts3.train.ts)
## Warning in adf.test(dt3.ts3.train.ts): p-value smaller than printed p-value
## 
##  Augmented Dickey-Fuller Test
## 
## data:  dt3.ts3.train.ts
## Dickey-Fuller = -4.7585, Lag order = 4, p-value = 0.01
## alternative hypothesis: stationary

Berdasarkan Uji Augmented Fuller di atas kita mendapatkan p-value = 0.01289 H1 data stationer sehingga tolak H0. Artinya cukup bukti menyatakan bahwa data stationer pada taraf nyata 5%

Diagnostik Model

sisaan3<-residuals(dugaan3.model4)

Uji Eksplorasi

par(mfrow=c(2,2))
qqnorm(sisaan3)
qqline(sisaan3, col = "blue", lwd = 2)
plot(c(1:length(sisaan3)),sisaan3)
acf(sisaan3)
pacf(sisaan3)

Berdasarkan output di atas, terlihat bahwa titik-titik sisaan berada di sepanjang garis lurus sehingga dapat dikatakan bahwa sisaan menyebar normal. Pada plot ACF terdapat lag yang melewati garis biru yaitu di lag ke-12 dan 18 sedangkan pada plot PACF terdapat lag yang melewati garis biru tetapi di lag ke-6 dan 18 sehingga dapat dikatakan sisaan saling bebas. Pada plot sisaan, terlihat bahwa sebaran sisaan berada di sekitar nol dengan pola sisaan menyebar secara acak sehingga dapat dikatakan bahwa nilai tengah sisaan sama dengan nol. Namun tetap diperlukan uji lebih lanjut untuk memastikan bahwa ketiga asumsi tersebut benar terpenuhi dengan uji formal

Uji Formal

jarque.bera.test(sisaan3)
## 
##  Jarque Bera Test
## 
## data:  sisaan3
## X-squared = 3.2562, df = 2, p-value = 0.1963
Box.test(sisaan3, type = "Ljung")
## 
##  Box-Ljung test
## 
## data:  sisaan3
## X-squared = 0.31434, df = 1, p-value = 0.575
t.test(sisaan3, mu = 0, conf.level = 0.95)
## 
##  One Sample t-test
## 
## data:  sisaan3
## t = -0.058138, df = 92, p-value = 0.9538
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  -3.944932  3.720542
## sample estimates:
##  mean of x 
## -0.1121948

Bedasarkan Uji Formal di atas didapatkan hasil tak tolak H0. Artinya data menyebar normal, saling bebas atau tidak ada autokorelasi dan nilai sisaan sama dengan nol pada taraf nyata 5%.

Berdasarkan uji eksplorasi dan uji formal pada model ARIMA(3,0,2) terhadap ketiga asumsi tersebut, diperoleh bahwa seluruh asumsi terpenuhi.

Overfitting

Menaikan 1 ordo pada p dan q

dugaan3.model4.1 = Arima(dt3.ts3.train.ts, order=c(4,0,2), method="ML")
coeftest(dugaan3.model4.1)
## 
## z test of coefficients:
## 
##            Estimate Std. Error z value  Pr(>|z|)    
## ar1         0.24909    0.15459  1.6112 0.1071260    
## ar2         0.57500    0.15682  3.6666 0.0002458 ***
## ar3        -0.18406    0.12603 -1.4604 0.1441866    
## ar4        -0.26387    0.10920 -2.4163 0.0156783 *  
## ma1         0.23643    0.15788  1.4975 0.1342638    
## ma2        -0.69197    0.14194 -4.8750 1.088e-06 ***
## intercept 156.81526    1.69324 92.6126 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(dugaan3.model4.1)
## Series: dt3.ts3.train.ts 
## ARIMA(4,0,2) with non-zero mean 
## 
## Coefficients:
##          ar1     ar2      ar3      ar4     ma1      ma2      mean
##       0.2491  0.5750  -0.1841  -0.2639  0.2364  -0.6920  156.8153
## s.e.  0.1546  0.1568   0.1260   0.1092  0.1579   0.1419    1.6932
## 
## sigma^2 = 349.1:  log likelihood = -401.52
## AIC=819.03   AICc=820.75   BIC=839.29
## 
## Training set error measures:
##                      ME     RMSE      MAE       MPE     MAPE      MASE
## Training set -0.1429084 17.96749 14.64968 -1.352568 9.349876 0.7969315
##                     ACF1
## Training set -0.01848407
dugaan3.model4.2 = Arima(dt2.ts2.train.ts, order=c(3,0,3), method="ML")
coeftest(dugaan3.model4.2)
## 
## z test of coefficients:
## 
##            Estimate Std. Error  z value  Pr(>|z|)    
## ar1        1.945140   0.034637  56.1580 < 2.2e-16 ***
## ar2       -1.944894   0.034610 -56.1944 < 2.2e-16 ***
## ar3        0.945792   0.034581  27.3500 < 2.2e-16 ***
## ma1       -1.372404   0.098729 -13.9007 < 2.2e-16 ***
## ma2        1.321182   0.105273  12.5500 < 2.2e-16 ***
## ma3       -0.331892   0.103448  -3.2083  0.001335 ** 
## intercept 97.293003   2.553074  38.1082 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(dugaan3.model4.2)
## Series: dt2.ts2.train.ts 
## ARIMA(3,0,3) with non-zero mean 
## 
## Coefficients:
##          ar1      ar2     ar3      ma1     ma2      ma3     mean
##       1.9451  -1.9449  0.9458  -1.3724  1.3212  -0.3319  97.2930
## s.e.  0.0346   0.0346  0.0346   0.0987  0.1053   0.1034   2.5531
## 
## sigma^2 = 11.74:  log likelihood = -513.36
## AIC=1042.73   AICc=1043.51   BIC=1068.83
## 
## Training set error measures:
##                     ME    RMSE      MAE        MPE     MAPE      MASE      ACF1
## Training set 0.1326372 3.36316 2.631148 -0.0202115 2.673519 0.3591715 0.0561121

Berdasarkan hasil overfitting dengan menaikkan masing-masing satu ordo pada ordo p dan q secara berurutan, diperoleh bahwa hanya beberapa parameter saja yang signifikan. Dengan demikian, dugaan model tentatif pada overfitting tersebut tidak dapat dijadikan sebagai model tentatif. Sehingga model tentatif ARIMA(3,0,2) tetap menjadi model terbaik.

Forecasting

ramalan3 <-forecast(dugaan3.model4, h = 73)
ramalan3
##     Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
##  94       147.1816 122.6358 171.7273 109.6421 184.7211
##  95       169.9583 141.9384 197.9781 127.1057 212.8109
##  96       160.7249 132.6691 188.7808 117.8172 203.6326
##  97       168.1089 140.0454 196.1724 125.1895 211.0283
##  98       159.2029 130.6923 187.7135 115.5997 202.8061
##  99       162.5175 133.9486 191.0865 118.8251 206.2100
## 100       156.8329 128.0888 185.5770 112.8726 200.7932
## 101       159.1019 130.3500 187.8538 115.1296 203.0741
## 102       155.9478 127.1621 184.7335 111.9238 199.9717
## 103       157.6566 128.8708 186.4423 113.6326 201.6806
## 104       155.9484 127.1579 184.7388 111.9172 199.9796
## 105       157.1516 128.3601 185.9432 113.1188 201.1845
## 106       156.1885 127.3962 184.9807 112.1545 200.2224
## 107       156.9735 128.1805 185.7665 112.9384 201.0086
## 108       156.3993 127.6061 185.1924 112.3639 200.4346
## 109       156.8868 128.0933 185.6804 112.8510 200.9227
## 110       156.5317 127.7381 185.3253 112.4957 200.5677
## 111       156.8280 128.0343 185.6217 112.7919 200.8641
## 112       156.6058 127.8120 185.3995 112.5696 200.6420
## 113       156.7852 127.9914 185.5789 112.7490 200.8214
## 114       156.6465 127.8527 185.4403 112.6102 200.6828
## 115       156.7558 127.9620 185.5496 112.7195 200.7921
## 116       156.6698 127.8760 185.4636 112.6335 200.7061
## 117       156.7368 127.9430 185.5306 112.7005 200.7731
## 118       156.6838 127.8900 185.4776 112.6475 200.7201
## 119       156.7250 127.9312 185.5188 112.6887 200.7613
## 120       156.6925 127.8987 185.4863 112.6562 200.7288
## 121       156.7179 127.9241 185.5117 112.6816 200.7542
## 122       156.6979 127.9041 185.4917 112.6616 200.7342
## 123       156.7135 127.9197 185.5073 112.6772 200.7498
## 124       156.7012 127.9075 185.4950 112.6649 200.7376
## 125       156.7109 127.9171 185.5047 112.6746 200.7472
## 126       156.7033 127.9095 185.4971 112.6670 200.7396
## 127       156.7093 127.9155 185.5031 112.6730 200.7456
## 128       156.7046 127.9108 185.4984 112.6683 200.7409
## 129       156.7083 127.9145 185.5021 112.6720 200.7446
## 130       156.7054 127.9116 185.4992 112.6691 200.7417
## 131       156.7076 127.9139 185.5014 112.6713 200.7440
## 132       156.7059 127.9121 185.4997 112.6696 200.7422
## 133       156.7073 127.9135 185.5011 112.6710 200.7436
## 134       156.7062 127.9124 185.5000 112.6699 200.7425
## 135       156.7070 127.9132 185.5008 112.6707 200.7433
## 136       156.7064 127.9126 185.5002 112.6701 200.7427
## 137       156.7069 127.9131 185.5007 112.6706 200.7432
## 138       156.7065 127.9127 185.5003 112.6702 200.7428
## 139       156.7068 127.9130 185.5006 112.6705 200.7431
## 140       156.7065 127.9128 185.5003 112.6702 200.7429
## 141       156.7067 127.9130 185.5005 112.6704 200.7431
## 142       156.7066 127.9128 185.5004 112.6703 200.7429
## 143       156.7067 127.9129 185.5005 112.6704 200.7430
## 144       156.7066 127.9128 185.5004 112.6703 200.7429
## 145       156.7067 127.9129 185.5005 112.6704 200.7430
## 146       156.7066 127.9128 185.5004 112.6703 200.7429
## 147       156.7067 127.9129 185.5005 112.6704 200.7430
## 148       156.7066 127.9128 185.5004 112.6703 200.7430
## 149       156.7067 127.9129 185.5005 112.6704 200.7430
## 150       156.7067 127.9129 185.5004 112.6703 200.7430
## 151       156.7067 127.9129 185.5005 112.6704 200.7430
## 152       156.7067 127.9129 185.5004 112.6703 200.7430
## 153       156.7067 127.9129 185.5005 112.6704 200.7430
## 154       156.7067 127.9129 185.5005 112.6703 200.7430
## 155       156.7067 127.9129 185.5005 112.6704 200.7430
## 156       156.7067 127.9129 185.5005 112.6703 200.7430
## 157       156.7067 127.9129 185.5005 112.6704 200.7430
## 158       156.7067 127.9129 185.5005 112.6703 200.7430
## 159       156.7067 127.9129 185.5005 112.6704 200.7430
## 160       156.7067 127.9129 185.5005 112.6703 200.7430
## 161       156.7067 127.9129 185.5005 112.6704 200.7430
## 162       156.7067 127.9129 185.5005 112.6704 200.7430
## 163       156.7067 127.9129 185.5005 112.6704 200.7430
## 164       156.7067 127.9129 185.5005 112.6704 200.7430
## 165       156.7067 127.9129 185.5005 112.6704 200.7430
## 166       156.7067 127.9129 185.5005 112.6704 200.7430
dt3.ramalan3 <- ramalan3$mean
dt3.ramalan3
## Time Series:
## Start = 94 
## End = 166 
## Frequency = 1 
##  [1] 147.1816 169.9583 160.7249 168.1089 159.2029 162.5175 156.8329 159.1019
##  [9] 155.9478 157.6566 155.9484 157.1516 156.1885 156.9735 156.3993 156.8868
## [17] 156.5317 156.8280 156.6058 156.7852 156.6465 156.7558 156.6698 156.7368
## [25] 156.6838 156.7250 156.6925 156.7179 156.6979 156.7135 156.7012 156.7109
## [33] 156.7033 156.7093 156.7046 156.7083 156.7054 156.7076 156.7059 156.7073
## [41] 156.7062 156.7070 156.7064 156.7069 156.7065 156.7068 156.7065 156.7067
## [49] 156.7066 156.7067 156.7066 156.7067 156.7066 156.7067 156.7066 156.7067
## [57] 156.7067 156.7067 156.7067 156.7067 156.7067 156.7067 156.7067 156.7067
## [65] 156.7067 156.7067 156.7067 156.7067 156.7067 156.7067 156.7067 156.7067
## [73] 156.7067
plot(ramalan3)

Membandingkan Data Aktual dengan Hasil Forecast

perbandingan3 <- matrix(data = c(dt3.ts3.test, dt3.ramalan3),
nrow = 96, ncol = 2)
colnames(perbandingan3) <- c("Aktual", "Hasil Forecast")
perbandingan3
##         Aktual Hasil Forecast
##  [1,] 151.0000       151.0000
##  [2,] 177.0000       177.0000
##  [3,] 184.0000       184.0000
##  [4,] 151.0000       151.0000
##  [5,] 134.0000       134.0000
##  [6,] 164.0000       164.0000
##  [7,] 126.0000       126.0000
##  [8,] 131.0000       131.0000
##  [9,] 125.0000       125.0000
## [10,] 127.0000       127.0000
## [11,] 143.0000       143.0000
## [12,] 143.0000       143.0000
## [13,] 160.0000       160.0000
## [14,] 190.0000       190.0000
## [15,] 182.0000       182.0000
## [16,] 138.0000       138.0000
## [17,] 136.0000       136.0000
## [18,] 152.0000       152.0000
## [19,] 127.0000       127.0000
## [20,] 151.0000       151.0000
## [21,] 130.0000       130.0000
## [22,] 119.0000       119.0000
## [23,] 153.0000       153.0000
## [24,] 147.1816       147.1816
## [25,] 169.9583       169.9583
## [26,] 160.7249       160.7249
## [27,] 168.1089       168.1089
## [28,] 159.2029       159.2029
## [29,] 162.5175       162.5175
## [30,] 156.8329       156.8329
## [31,] 159.1019       159.1019
## [32,] 155.9478       155.9478
## [33,] 157.6566       157.6566
## [34,] 155.9484       155.9484
## [35,] 157.1516       157.1516
## [36,] 156.1885       156.1885
## [37,] 156.9735       156.9735
## [38,] 156.3993       156.3993
## [39,] 156.8868       156.8868
## [40,] 156.5317       156.5317
## [41,] 156.8280       156.8280
## [42,] 156.6058       156.6058
## [43,] 156.7852       156.7852
## [44,] 156.6465       156.6465
## [45,] 156.7558       156.7558
## [46,] 156.6698       156.6698
## [47,] 156.7368       156.7368
## [48,] 156.6838       156.6838
## [49,] 156.7250       156.7250
## [50,] 156.6925       156.6925
## [51,] 156.7179       156.7179
## [52,] 156.6979       156.6979
## [53,] 156.7135       156.7135
## [54,] 156.7012       156.7012
## [55,] 156.7109       156.7109
## [56,] 156.7033       156.7033
## [57,] 156.7093       156.7093
## [58,] 156.7046       156.7046
## [59,] 156.7083       156.7083
## [60,] 156.7054       156.7054
## [61,] 156.7076       156.7076
## [62,] 156.7059       156.7059
## [63,] 156.7073       156.7073
## [64,] 156.7062       156.7062
## [65,] 156.7070       156.7070
## [66,] 156.7064       156.7064
## [67,] 156.7069       156.7069
## [68,] 156.7065       156.7065
## [69,] 156.7068       156.7068
## [70,] 156.7065       156.7065
## [71,] 156.7067       156.7067
## [72,] 156.7066       156.7066
## [73,] 156.7067       156.7067
## [74,] 156.7066       156.7066
## [75,] 156.7067       156.7067
## [76,] 156.7066       156.7066
## [77,] 156.7067       156.7067
## [78,] 156.7066       156.7066
## [79,] 156.7067       156.7067
## [80,] 156.7067       156.7067
## [81,] 156.7067       156.7067
## [82,] 156.7067       156.7067
## [83,] 156.7067       156.7067
## [84,] 156.7067       156.7067
## [85,] 156.7067       156.7067
## [86,] 156.7067       156.7067
## [87,] 156.7067       156.7067
## [88,] 156.7067       156.7067
## [89,] 156.7067       156.7067
## [90,] 156.7067       156.7067
## [91,] 156.7067       156.7067
## [92,] 156.7067       156.7067
## [93,] 156.7067       156.7067
## [94,] 156.7067       156.7067
## [95,] 156.7067       156.7067
## [96,] 156.7067       156.7067
accuracy(dt3.ramalan3,dt3.ts3.test)
##                 ME     RMSE      MAE       MPE     MAPE
## Test set -10.41757 22.03073 18.94422 -8.858403 13.54462

Setelah dilakukan perbandingan antara data aktual dengan hasil forecast sebanyak 48 (banyaknya data testing), diperoleh bahwa nilai MAPE sebesar 5.78584.

###Kesimpulan

Berdasarkan uji eksplorasi (plot data deret waktu serta plot ACF dan PACF) maupun uji formal (Uji Augmented Dickey Fuller), diperoleh hasil bahwa pada dataset pertama, data tidak stasioner sehingga perlu dilakukan pembedaan (differencing) sebanyak satu kali terhadap data hingga data menjadi stasioner. Pada dataset kedua dan ketiga diperoleh data yang stasioner sehingga tidak perlu dilakukan pembedaan (differencing) terhadap data tersebut. Dengan menggunakan Uji Signifikansi Parameter pada setiap dugaan model tentatif yang diperoleh, ketiga data tersebut memiliki model tentatif yang berbeda-beda yaitu : 1) Daily Minimum Temperatures dengan model tentatifnya adalah ARIMA(2,1,3). 2) Electric Production dengan model tentatifnya ARIMA(3,0,3). 3) Monthly Beer Production dengan model tentatifnya adalah ARIMA(3,0,2).

Ketiga model tentatif dari masing-masing data tersebut telah memenuhi asumsi sisaan yaitu sisaan menyebar normal, sisaan saling bebas (tidak ada autokorelasi), dan nilai tengah sisaan sama dengan nol.