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.