Packages

library(dLagM)
## Warning: package 'dLagM' was built under R version 4.5.3
## Loading required package: nardl
## Warning: package 'nardl' was built under R version 4.5.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
## Loading required package: dynlm
## Warning: package 'dynlm' was built under R version 4.5.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.5.3
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(dynlm)
library(MLmetrics)
## Warning: package 'MLmetrics' was built under R version 4.5.3
## 
## Attaching package: 'MLmetrics'
## The following object is masked from 'package:dLagM':
## 
##     MAPE
## The following object is masked from 'package:base':
## 
##     Recall
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.5.3
library(car)
## Warning: package 'car' was built under R version 4.5.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.5.3
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.3

Import Data

Data ini terdiri atas jumlah penumpang transjakarta sebagai peubah dependen (Y) dan penyesuain rute sebagai peubah independen (X) Indonesia periode Januari 2023 - Juni 2024.

data <- read.csv("C:\\Users\\ASUS\\Downloads\\Data Jumlah Penumpang Transjakarta Harian Tahun 2023-2024.1 (2).csv")
data <- data[,c(-1,-4)]
data
##     jumlah_penumpang_transjakarta PenyesuaianRute
## 1                          363250               0
## 2                          730984               0
## 3                          783228               0
## 4                          798449               0
## 5                          807905               0
## 6                          807617               0
## 7                          533011               0
## 8                          462270               0
## 9                          813091               0
## 10                         813213               0
## 11                         813605               0
## 12                         814531               0
## 13                         819097               0
## 14                         535942               0
## 15                         466899               0
## 16                         811137               0
## 17                         815885               0
## 18                         812864               0
## 19                         811051               0
## 20                         806414               0
## 21                         526233               0
## 22                         472413               0
## 23                         505072               0
## 24                         818341               0
## 25                         811874               0
## 26                         810325               0
## 27                         813532               0
## 28                         487421               0
## 29                         459960               0
## 30                         816629               0
## 31                         816317               0
## 32                         814881               0
## 33                         818742               0
## 34                         819001               0
## 35                         556834               0
## 36                         488204               0
## 37                         825070               0
## 38                         832484               0
## 39                         833095               0
## 40                         831869               0
## 41                         828212               0
## 42                         510122               0
## 43                         422854               0
## 44                         835890               0
## 45                         840872               0
## 46                         846249               0
## 47                         827555               0
## 48                         831455               0
## 49                         510507               0
## 50                         472914               0
## 51                         849058               0
## 52                         847360               0
## 53                         857541               0
## 54                         839067               0
## 55                         796438               0
## 56                         538248               0
## 57                         434772               0
## 58                         816398               0
## 59                         851556               0
## 60                          55942               1
## 61                          24204               1
## 62                         251365               1
## 63                         264137               1
## 64                         230435               1
## 65                         414003               1
## 66                         407278               1
## 67                         411878               1
## 68                         430429               1
## 69                         394506               1
## 70                         270281               1
## 71                         234304               1
## 72                         419100               1
## 73                         437186               1
## 74                         403209               1
## 75                         411942               1
## 76                         392576               1
## 77                         281295               1
## 78                         246132               1
## 79                         413469               1
## 80                         425202               1
## 81                         237001               1
## 82                         217789               1
## 83                         331433               1
## 84                         190316               1
## 85                         188906               1
## 86                         420975               1
## 87                         387151               1
## 88                         392595               1
## 89                         377990               1
## 90                         385400               1
## 91                         217669               1
## 92                         175733               1
## 93                         390929               1
## 94                         390498               1
## 95                         392872               1
## 96                         385699               1
## 97                         187926               1
## 98                         204150               1
## 99                         181400               1
## 100                        373158               1
## 101                        364583               1
## 102                        379875               1
## 103                        381208               1
## 104                        375584               1
## 105                        246273               1
## 106                        195161               1
## 107                        368669               1
## 108                        335221               1
## 109                        227004               1
## 110                        181265               1
## 111                        131793               1
## 112                        122443               1
## 113                        183995               1
## 114                        202311               1
## 115                        214362               1
## 116                        293532               1
## 117                        322559               1
## 118                        313386               1
## 119                        243623               1
## 120                        241994               1
## 121                        189308               1
## 122                        389178               1
## 123                        391130               1
## 124                        382684               1
## 125                        380701               1
## 126                        255571               1
## 127                        217454               1
## 128                        396416               1
## 129                        398379               1
## 130                        400652               1
## 131                        393284               1
## 132                        383837               1
## 133                        261201               1
## 134                        235244               1
## 135                        396244               1
## 136                        399077               1
## 137                        404735               1
## 138                        220892               1
## 139                        378441               1
## 140                        267638               1
## 141                        244690               1
## 142                        398998               1
## 143                        401465               1
## 144                        400076               1
## 145                        393110               1
## 146                        391089               1
## 147                        266874               1
## 148                        234523               1
## 149                        402805               1
## 150                        404002               1
## 151                        409625               1
## 152                        248240               1
## 153                        280427               1
## 154                        265902               1
## 155                        232667               1
## 156                        399224               1
## 157                        399423               1
## 158                        406281               1
## 159                        403579               1
## 160                        400288               1
## 161                        271681               1
## 162                        237994               1
## 163                        409206               1
## 164                        410297               1
## 165                        412628               1
## 166                        403973               1
## 167                        372722               1
## 168                        272844               1
## 169                        245111               1
## 170                        406081               1
## 171                        423167               1
## 172                        414006               1
## 173                        471272               1
## 174                        403924               1
## 175                        296045               1
## 176                        255095               1
## 177                        405495               1
## 178                        404368               1
## 179                        282160               1
## 180                        162363               1
## 181                        268616               1
## 182                        266403               1
## 183                        262267               1
## 184                        410750               1
## 185                        422607               1
## 186                        425460               1
## 187                        407207               1
## 188                        397741               1
## 189                        305910               1
## 190                        283412               1
## 191                        420365               1
## 192                        424839               1
## 193                        420454               1
## 194                        417414               1
## 195                        406018               1
## 196                        279789               1
## 197                        241523               1
## 198                        408865               1
## 199                        410957               1
## 200                        213426               1
## 201                        411124               1
## 202                        401104               1
## 203                        267510               1
## 204                        228296               1
## 205                        405764               1
## 206                        409326               1
## 207                        410340               1
## 208                        404754               1
## 209                        401208               1
## 210                        286489               1
## 211                        252302               1
## 212                        411622               1
## 213                       1009442               0
## 214                       1000587               0
## 215                       1002236               0
## 216                        979014               0
## 217                        670806               0
## 218                        628885               0
## 219                       1006666               0
## 220                       1011406               0
## 221                       1000208               0
## 222                        991508               0
## 223                        982905               0
## 224                        676818               0
## 225                        597413               0
## 226                       1008471               0
## 227                       1011261               0
## 228                        989925               0
## 229                        535537               0
## 230                        941749               0
## 231                        625534               0
## 232                        498446               0
## 233                        433517               0
## 234                        418970               0
## 235                        416837               0
## 236                        409463               0
## 237                        408345               0
## 238                        282422               0
## 239                        246739               0
## 240                        420126               0
## 241                        422024               0
## 242                        430748               0
## 243                        417971               0
## 244                       1015361               0
## 245                        695963               0
## 246                        617558               0
## 247                       1026591               0
## 248                       1014345               0
## 249                       1014851               0
## 250                       1007231               0
## 251                       1032009               0
## 252                        700670               0
## 253                        621726               0
## 254                       1065550               0
## 255                       1078830               0
## 256                       1074826               0
## 257                       1070391               0
## 258                       1064895               0
## 259                        711037               0
## 260                        605562               0
## 261                       1080611               0
## 262                       1094329               0
## 263                       1101370               0
## 264                       1090495               0
## 265                       1081846               0
## 266                        742942               0
## 267                        611442               0
## 268                       1100966               0
## 269                       1105993               0
## 270                       1109120               0
## 271                        615710               0
## 272                       1043002               0
## 273                        730363               0
## 274                        650239               0
## 275                       1083284               0
## 276                       1105891               0
## 277                       1100992               0
## 278                       1102279               0
## 279                       1087623               0
## 280                        725319               0
## 281                        630556               0
## 282                       1100382               0
## 283                       1109216               0
## 284                       1107503               0
## 285                       1103250               0
## 286                       1093067               0
## 287                        727497               0
## 288                        635855               0
## 289                       1107316               0
## 290                       1128713               0
## 291                       1121625               0
## 292                       1110376               0
## 293                       1097821               0
## 294                        721052               0
## 295                        629687               0
## 296                       1104758               0
## 297                       1120393               0
## 298                       1107625               0
## 299                       1111359               0
## 300                       1097914               0
## 301                        748153               0
## 302                        633768               0
## 303                       1109764               0
## 304                       1121596               0
## 305                       1117922               0
## 306                       1121811               0
## 307                       1101969               0
## 308                        735079               0
## 309                        642921               0
## 310                       1121028               0
## 311                       1130181               0
## 312                       1128956               0
## 313                       1124007               0
## 314                       1101730               0
## 315                        748574               0
## 316                        653803               0
## 317                       1135364               0
## 318                       1146542               0
## 319                       1132691               0
## 320                       1131441               0
## 321                       1126115               0
## 322                        744568               0
## 323                        654569               0
## 324                       1146384               0
## 325                       1149804               0
## 326                       1171288               0
## 327                       1145343               0
## 328                       1118527               0
## 329                        698469               0
## 330                        642518               0
## 331                       1147858               0
## 332                       1153413               0
## 333                       1158450               0
## 334                       1140648               0
## 335                       1127659               0
## 336                        769649               0
## 337                        662120               0
## 338                       1149169               0
## 339                       1174098               0
## 340                       1167902               0
## 341                       1164122               0
## 342                       1123681               0
## 343                        781721               0
## 344                        674405               0
## 345                       1151083               0
## 346                       1156065               0
## 347                       1151501               0
## 348                       1143117               0
## 349                       1131174               0
## 350                        758456               0
## 351                        680941               0
## 352                       1083773               0
## 353                       1081461               0
## 354                       1089583               0
## 355                       1070707               0
## 356                       1027720               0
## 357                        749305               0
## 358                        708769               0
## 359                        609034               0
## 360                        735852               0
## 361                       1012112               0
## 362                       1010097               0
## 363                        974703               0
## 364                        748326               0
## 365                        660343               0
## 366                        632778               0
## 367                       1045214               0
## 368                       1041663               0
## 369                       1097752               0
## 370                       1105303               0
## 371                        716205               0
## 372                        624900               0
## 373                       1137742               0
## 374                       1150147               0
## 375                       1147436               0
## 376                       1125270               0
## 377                       1129099               0
## 378                        758105               0
## 379                        683688               0
## 380                       1154750               0
## 381                       1158105               0
## 382                       1131647               0
## 383                       1142880               0
## 384                       1066005               0
## 385                        781421               0
## 386                        651780               0
## 387                       1157462               0
## 388                       1165110               0
## 389                       1168437               0
## 390                       1152249               0
## 391                       1145915               0
## 392                        693411               0
## 393                        639808               0
## 394                       1114347               0
## 395                       1120316               0
## 396                       1095146               0
## 397                       1155322               0
## 398                       1152107               0
## 399                        801212               0
## 400                        670195               0
## 401                       1159398               0
## 402                       1168189               0
## 403                       1180123               0
## 404                        696518               0
## 405                        774403               0
## 406                        683082               0
## 407                        645873               0
## 408                       1147300               0
## 409                       1157441               0
## 410                        471864               0
## 411                       1111148               0
## 412                       1129816               0
## 413                        742067               0
## 414                        649062               0
## 415                       1173362               0
## 416                       1194157               0
## 417                       1200226               0
## 418                       1179609               0
## 419                       1172659               0
## 420                        769879               0
## 421                        667620               0
## 422                       1185213               0
## 423                       1197537               0
## 424                       1171695               0
## 425                       1099316               0
## 426                       1199898               0
## 427                        791038               0
## 428                        703924               0
## 429                       1209113               0
## 430                       1235499               0
## 431                       1235063               0
## 432                       1237464               0
## 433                       1221948               0
## 434                        747057               0
## 435                        704383               0
## 436                        593917               0
## 437                        714500               0
## 438                       1100220               0
## 439                       1148676               0
## 440                       1141872               0
## 441                        656466               0
## 442                        550347               0
## 443                       1193240               0
## 444                       1186975               0
## 445                       1186823               0
## 446                       1189852               0
## 447                       1070739               0
## 448                        738182               0
## 449                        602385               0
## 450                       1189677               0
## 451                       1187533               0
## 452                       1188138               0
## 453                       1164143               0
## 454                        662301               0
## 455                        713388               0
## 456                        621075               0
## 457                       1126121               0
## 458                       1159140               0
## 459                       1144574               0
## 460                       1097231               0
## 461                       1046450               0
## 462                        696891               0
## 463                        602737               0
## 464                        611444               0
## 465                        495614               0
## 466                        334789               0
## 467                        481280               0
## 468                        535906               0
## 469                        646987               0
## 470                        622202               0
## 471                        727403               0
## 472                       1016228               0
## 473                       1094937               0
## 474                       1126816               0
## 475                       1134568               0
## 476                        769162               0
## 477                        668100               0
## 478                       1179217               0
## 479                       1189935               0
## 480                       1202510               0
## 481                       1190370               0
## 482                       1173290               0
## 483                        783384               0
## 484                        687410               0
## 485                       1170658               0
## 486                       1185970               0
## 487                        685485               0
## 488                       1177299               0
## 489                       1155576               0
## 490                        801713               0
## 491                        701049               0
## 492                       1197302               0
## 493                       1223878               0
## 494                       1239648               0
## 495                        727872               0
## 496                        855915               0
## 497                        793188               0
## 498                        734457               0
## 499                       1231170               0
## 500                       1238837               0
## 501                       1241336               0
## 502                       1229401               0
## 503                       1221876               0
## 504                        848639               0
## 505                        730335               0
## 506                       1238643               0
## 507                       1253256               0
## 508                       1251442               0
## 509                        703835               0
## 510                        856274               0
## 511                        755342               0
## 512                        726615               0
## 513                       1230649               0
## 514                       1242030               0
## 515                       1246323               0
## 516                       1258449               0
## 517                       1224491               0
## 518                        817193               0
## 519                        730832               0
## 520                       1236594               0
## 521                       1266654               0
## 522                       1276021               0
## 523                       1261933               0
## 524                       1251558               0
## 525                        873156               0
## 526                        763276               0
## 527                       1246892               0
## 528                       1245940               0
## 529                       1252232               0
## 530                       1244140               0
## 531                       1210476               0
## 532                        792176               0
## 533                        650471               0
## 534                        424630               0
## 535                        834190               0
## 536                       1211872               0
## 537                       1221791               0
## 538                       1218522               0
## 539                       1061448               0
## 540                        839257               0
## 541                       1200013               0
## 542                       1199360               0
## 543                       1216516               0
## 544                       1197988               0
## 545                       1183472               0
## 546                        857366               0
# Membuat kolom tanggal yang dimulai dari 1 Januari 2023 dan memiliki 546 baris
dates <- seq(from = as.Date("2023-01-01"), by = "day", length.out = 546)
dates[546]
## [1] "2024-06-29"
# Menambahkan kolom tanggal ke dataset
data$Date <- dates

# Menampilkan data untuk memeriksa kolom baru
head(data)
##   jumlah_penumpang_transjakarta PenyesuaianRute       Date
## 1                        363250               0 2023-01-01
## 2                        730984               0 2023-01-02
## 3                        783228               0 2023-01-03
## 4                        798449               0 2023-01-04
## 5                        807905               0 2023-01-05
## 6                        807617               0 2023-01-06

Eksplorasi Data

# Plot time series jumlah penumpang dengan sumbu x berupa tanggal
plot(  data$Date, data$jumlah_penumpang_transjakarta, type = "l", xlab = "Date", ylab = "Number of Passengers", 
     col = "blue", xaxt = "n")

# Menambahkan tanggal pada sumbu x dengan format bulan dan tahun
axis(1, at = seq(from = min(data$Date), to = max(data$Date), by = "months"),
     labels = format(seq(from = min(data$Date), to = max(data$Date), by = "months"), "%b %Y"))

# Menambahkan titik untuk data penumpang
points(data[,1], pch = 20, col = "blue")

# Plot time series jumlah penumpang dengan sumbu x berupa tanggal
plot(data$Date, data$jumlah_penumpang_transjakarta, type = "l", xlab = "Date", ylab = "Number of Passengers", 
     col = "blue", xaxt = "n")

# Menambahkan tanggal pada sumbu x dengan format "YYYY-MM"
axis(1, at = seq(from = min(data$Date), to = max(data$Date), by = "month"),
     labels = format(seq(from = min(data$Date), to = max(data$Date), by = "month"), "%Y-%m"))

# Menambahkan titik untuk data penumpang
points(data$Date, pch = 20, col = "blue")

ts.plot(data[,1], type="l", xlab = "Day", ylab="Number of Passengers", col="blue")
points(data[,1], pch = 20, col = "blue")

Pembagian Data

Yt <- data$jumlah_penumpang_transjakarta
Xt <- as.factor(data$PenyesuaianRute)

data <- as.data.frame(cbind(Yt, Xt))
# Split Data
training <- data[1:477,]
testing <- data[478:546,]
# Data Time Series
training.ts <- ts(training)
testing.ts <- ts(testing)
data.ts <- ts(data)

Model Autoregressive

Peubah dependen dipengaruhi oleh peubah independen pada waktu sekarang, serta dipengaruhi juga oleh peubah dependen itu sendiri pada satu waktu yang lalu maka model tersebut disebut autoregressive (Gujarati 2004).

Pemodelan

Pemodelan Autoregressive dilakukan menggunakan fungsi dLagM::ardlDlm() . Fungsi tersebut akan menerapkan autoregressive berordo \((p,q)\) dengan satu prediktor. Fungsi umum dari ardlDlm() adalah sebagai berikut.

ardlDlm(formula = NULL , data = NULL , x = NULL , y = NULL , p = 1 , q = 1 , 
         remove = NULL )

Dengan \(p\) adalah integer yang mewakili panjang lag yang terbatas dan \(q\) adalah integer yang merepresentasikan ordo dari proses autoregressive.

Lag Optimum

modelardl <- ardlBoundOrders(data = data.frame(data), ic = "AIC", 
                                  formula = Yt ~ Xt )
min_p=c()
for(i in 1:5){
  min_p[i]=min(modelardl$Stat.table[[i]])
}
q_opt=which(min_p==min(min_p, na.rm = TRUE))
p_opt=which(modelardl$Stat.table[[q_opt]] == 
              min(modelardl$Stat.table[[q_opt]], na.rm = TRUE))
data.frame("q_optimum" = q_opt, "p_optimum" = p_opt, 
           "AIC"=modelardl$min.Stat)
##   q_optimum p_optimum      AIC
## 1         5        14 14007.38

Dari tabel di atas, dapat terlihat bahwa nilai AIC terendah didapat ketika \(p=14\) dan \(q=5\), yaitu sebesar 14007.38. Artinya, model autoregressive optimum didapat ketika \(p=14\) dan \(q=5\).

Selanjutnya dapat dilakukan pemodelan dengan nilai \(p\) dan \(q\) optimum.

Pemodelan dengan Lag Optimum

modelardl <- ardlDlm(formula = Yt ~ Xt, data = training, p = 14, q = 5)
summary(modelardl)
## 
## Time series regression with "ts" data:
## Start = 15, End = 477
## 
## Call:
## dynlm(formula = as.formula(model.text), data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -482505  -98809   18070  106630  535656 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  6.223e+05  8.902e+04   6.991 1.01e-11 ***
## Xt.t        -6.849e+05  1.207e+05  -5.677 2.49e-08 ***
## Xt.1         4.240e+05  1.723e+05   2.461 0.014229 *  
## Xt.2        -7.546e+04  1.734e+05  -0.435 0.663563    
## Xt.3         6.435e+04  1.734e+05   0.371 0.710794    
## Xt.4         9.660e+04  1.734e+05   0.557 0.577856    
## Xt.5         5.754e+04  1.725e+05   0.333 0.738922    
## Xt.6        -2.171e+05  1.697e+05  -1.279 0.201581    
## Xt.7         1.342e+05  1.700e+05   0.789 0.430314    
## Xt.8        -6.105e+04  1.701e+05  -0.359 0.719744    
## Xt.9         1.827e+04  1.701e+05   0.107 0.914526    
## Xt.10       -7.352e+04  1.701e+05  -0.432 0.665765    
## Xt.11        1.849e+05  1.697e+05   1.090 0.276478    
## Xt.12        2.244e+04  1.697e+05   0.132 0.894858    
## Xt.13       -2.345e+05  1.697e+05  -1.382 0.167586    
## Xt.14        1.032e+05  1.204e+05   0.857 0.392032    
## Yt.1         7.038e-01  4.720e-02  14.911  < 2e-16 ***
## Yt.2        -3.322e-01  5.760e-02  -5.768 1.51e-08 ***
## Yt.3         2.217e-01  5.894e-02   3.761 0.000192 ***
## Yt.4        -1.055e-01  5.776e-02  -1.826 0.068543 .  
## Yt.5         8.843e-02  4.745e-02   1.864 0.063051 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 169500 on 442 degrees of freedom
## Multiple R-squared:  0.7632, Adjusted R-squared:  0.7524 
## F-statistic: 71.21 on 20 and 442 DF,  p-value: < 2.2e-16
AIC(modelardl)
## [1] 12485.82
BIC(modelardl)
## [1] 12576.85

Dari hasil tersebut, didapat bahwa peubah \(x_t\), \(x_{t-1}\), \(y_{t-1}\), \(y_{t-2}\), dan \(y_{t-3}\) memiliki nilai \(P-Value<0.05\). Hal ini menunjukkan bahwa peubah \(x_t\), \(x_{t-1}\), \(y_{t-1}\), \(y_{t-2}\), dan \(y_{t-3}\) berpengaruh signifikan terhadap \(y_t\) sementara yang lainnya tidak berpengaruh signifikan terhadap \(y_t\). Artinya, jumlah penumpang transjakarta satu periode sebelumnya, dua periode sebelumnya, tiga periode sebelumnya, dan penyesuaian rute pada periode sekarang dan satu periode sebelumnya berpengaruh signifikan terhadap jumlah penumpang periode sekarang. Adapun model keseluruhannya adalah sebagai berikut.

\[ \hat{Y_t}=(6.223e+0)+(-6.849e+05)X_t-...+(8.843e-02)Y_{t-5} \]

Pemodelan ARDL dengan Library dynlm

Pemodelan regresi dengan peubah lag tidak hanya dapat dilakukan dengan fungsi pada packages dLagM , tetapi terdapat packages dynlm yang dapat digunakan. Fungsi dynlm secara umum adalah sebagai berikut.

dynlm(formula, data, subset, weights, na.action, method = "qr",
  model = TRUE, x = FALSE, y = FALSE, qr = TRUE, singular.ok = TRUE,
  contrasts = NULL, offset, start = NULL, end = NULL, ...)

Untuk menentukan formula model yang akan digunakan, tersedia fungsi tambahan yang memungkinkan spesifikasi dinamika (melalui d() dan L()) atau pola linier/siklus dengan mudah (melalui trend(), season(), dan harmon()). Semua fungsi formula baru mengharuskan argumennya berupa objek deret waktu (yaitu, "ts" atau "zoo").

Pemodelan

#sama dengan model ardl p=14 q=5
cons_lm1 <- dynlm(Yt ~ Xt+L(Xt)+L(Xt,2)+L(Xt,3)+L(Xt,4)+L(Xt,5)+L(Xt,6)+L(Xt,7)+L(Xt,8)+L(Xt,9)+L(Xt,10)+L(Xt,11)+L(Xt,12)+L(Xt,13)+L(Xt,14)+L(Yt)+L(Yt,2)+L(Yt,3)+L(Yt,4)+L(Yt,5),data = training.ts)
cons_lm1
## 
## Time series regression with "ts" data:
## Start = 15, End = 477
## 
## Call:
## dynlm(formula = Yt ~ Xt + L(Xt) + L(Xt, 2) + L(Xt, 3) + L(Xt, 
##     4) + L(Xt, 5) + L(Xt, 6) + L(Xt, 7) + L(Xt, 8) + L(Xt, 9) + 
##     L(Xt, 10) + L(Xt, 11) + L(Xt, 12) + L(Xt, 13) + L(Xt, 14) + 
##     L(Yt) + L(Yt, 2) + L(Yt, 3) + L(Yt, 4) + L(Yt, 5), data = training.ts)
## 
## Coefficients:
## (Intercept)           Xt        L(Xt)     L(Xt, 2)     L(Xt, 3)     L(Xt, 4)  
##   6.223e+05   -6.849e+05    4.240e+05   -7.546e+04    6.435e+04    9.660e+04  
##    L(Xt, 5)     L(Xt, 6)     L(Xt, 7)     L(Xt, 8)     L(Xt, 9)    L(Xt, 10)  
##   5.754e+04   -2.171e+05    1.342e+05   -6.105e+04    1.827e+04   -7.352e+04  
##   L(Xt, 11)    L(Xt, 12)    L(Xt, 13)    L(Xt, 14)        L(Yt)     L(Yt, 2)  
##   1.849e+05    2.244e+04   -2.345e+05    1.032e+05    7.038e-01   -3.322e-01  
##    L(Yt, 3)     L(Yt, 4)     L(Yt, 5)  
##   2.217e-01   -1.055e-01    8.843e-02
summary(cons_lm1)
## 
## Time series regression with "ts" data:
## Start = 15, End = 477
## 
## Call:
## dynlm(formula = Yt ~ Xt + L(Xt) + L(Xt, 2) + L(Xt, 3) + L(Xt, 
##     4) + L(Xt, 5) + L(Xt, 6) + L(Xt, 7) + L(Xt, 8) + L(Xt, 9) + 
##     L(Xt, 10) + L(Xt, 11) + L(Xt, 12) + L(Xt, 13) + L(Xt, 14) + 
##     L(Yt) + L(Yt, 2) + L(Yt, 3) + L(Yt, 4) + L(Yt, 5), data = training.ts)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -482505  -98809   18070  106630  535656 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  6.223e+05  8.902e+04   6.991 1.01e-11 ***
## Xt          -6.849e+05  1.207e+05  -5.677 2.49e-08 ***
## L(Xt)        4.240e+05  1.723e+05   2.461 0.014229 *  
## L(Xt, 2)    -7.546e+04  1.734e+05  -0.435 0.663563    
## L(Xt, 3)     6.435e+04  1.734e+05   0.371 0.710794    
## L(Xt, 4)     9.660e+04  1.734e+05   0.557 0.577856    
## L(Xt, 5)     5.754e+04  1.725e+05   0.333 0.738922    
## L(Xt, 6)    -2.171e+05  1.697e+05  -1.279 0.201581    
## L(Xt, 7)     1.342e+05  1.700e+05   0.789 0.430314    
## L(Xt, 8)    -6.105e+04  1.701e+05  -0.359 0.719744    
## L(Xt, 9)     1.827e+04  1.701e+05   0.107 0.914526    
## L(Xt, 10)   -7.352e+04  1.701e+05  -0.432 0.665765    
## L(Xt, 11)    1.849e+05  1.697e+05   1.090 0.276478    
## L(Xt, 12)    2.244e+04  1.697e+05   0.132 0.894858    
## L(Xt, 13)   -2.345e+05  1.697e+05  -1.382 0.167586    
## L(Xt, 14)    1.032e+05  1.204e+05   0.857 0.392032    
## L(Yt)        7.038e-01  4.720e-02  14.911  < 2e-16 ***
## L(Yt, 2)    -3.322e-01  5.760e-02  -5.768 1.51e-08 ***
## L(Yt, 3)     2.217e-01  5.894e-02   3.761 0.000192 ***
## L(Yt, 4)    -1.055e-01  5.776e-02  -1.826 0.068543 .  
## L(Yt, 5)     8.843e-02  4.745e-02   1.864 0.063051 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 169500 on 442 degrees of freedom
## Multiple R-squared:  0.7632, Adjusted R-squared:  0.7524 
## F-statistic: 71.21 on 20 and 442 DF,  p-value: < 2.2e-16

SSE

deviance(cons_lm1)
## [1] 1.26926e+13

Uji Diagnostik

Autokorelasi

dwtest(cons_lm1)
## 
##  Durbin-Watson test
## 
## data:  cons_lm1
## DW = 2.0852, p-value = 0.794
## alternative hypothesis: true autocorrelation is greater than 0

Berdasarkan hasil uji diagnostik model yaitu autokorelasi diperoleh \(P-Value>0.05\) untuk model ARDL. Artinya, tidak terjadi autokorelasi pada model ardl.

Heterogenitas

Box.test((residuals(cons_lm1))^2, type = "Ljung")
## 
##  Box-Ljung test
## 
## data:  (residuals(cons_lm1))^2
## X-squared = 6.0445, df = 1, p-value = 0.01395

Berdasarkan hasil uji diagnostik model yaitu heterogenitas diperoleh \(P-Value<0.05\). Artinya, terjadi heterogenitas pada model ardl.

Normalitas

shapiro.test(residuals(cons_lm1))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(cons_lm1)
## W = 0.98715, p-value = 0.0004187
ks.test(residuals(cons_lm1), "pnorm", mean=mean(residuals(cons_lm1)), sd=sd(residuals(cons_lm1)))
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  residuals(cons_lm1)
## D = 0.066524, p-value = 0.03321
## alternative hypothesis: two-sided
nortest::ad.test(residuals(cons_lm1))
## 
##  Anderson-Darling normality test
## 
## data:  residuals(cons_lm1)
## A = 2.4683, p-value = 3.03e-06
tseries::jarque.bera.test(residuals(cons_lm1))
## 
##  Jarque Bera Test
## 
## data:  residuals(cons_lm1)
## X-squared = 2.593, df = 2, p-value = 0.2735

Berdasarkan hasil uji diagnostik model yaitu normalitas dengan menggunakan uji shapiro-wilk, kolmogorov smirnov, dan anderson darling diperoleh \(P-Value<0.05\) untuk ardl. Artinya, normalitas tidak terpenuhi pada model ardl. Namun, berdasarkan hasil uji diagnostik model yaitu normalitas dengan menggunakan uji jarque bera diperoleh \(P-Value>0.05\) untuk model ardl. Artinya, normalitas terpenuhi pada model ardl.

Nilai Harapan Galat

t.test(residuals(cons_lm1), mu = 0, conf.level = 0.95)
## 
##  One Sample t-test
## 
## data:  residuals(cons_lm1)
## t = 9.1025e-16, df = 462, p-value = 1
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  -15137.39  15137.39
## sample estimates:
##    mean of x 
## 7.011691e-12

Berdasarkan hasil uji diagnostik model yaitu nilai harapan galat sama dengan 0 diperoleh \(P-Value > 0.05\) artinya nilai harapan galat = 0 terpenuhi.

Namun, akibat dari diagnostik model yaitu ragam homogen tidak terpenuhi maka peramalan belum dapat dilakukan. Dengan demikian perlu dilakukan penanganan terlebih dahulu agar mendapatkan model terbaik yang memenuhi diagnostik model.

CCF

Plot ccf digunaka untuk melakukan pengecekan terhadap lag. Kemudian lag signifikan atau melebihi batas saja yang akan dimasukkan ke dalam model.

ccf(data$Xt, data$Yt, main = "Cross-Correlation between Xt and Yt")

Berdasarkan plot ccf di atas diperoleh bahwa lag 0 hingga 24 signifikan sehingga plot ccf tidak membantu penanganan kasus ini.

Pemodelan dengan Lag Signifikan

Penanganan selanjutnya adalah dengan mencoba memasukkan satu per satu lag signifikan dan berhenti ketika lag tersebut tidak signifikan dimulai dari lag Xt dan dilanjutkan dengan lag Yt.

#sama dengan model ardl p=1 q=3
cons_lm2 <- dynlm(Yt ~ Xt+L(Xt)+L(Yt)+L(Yt,2)+L(Yt,3),data = training.ts)
cons_lm2
## 
## Time series regression with "ts" data:
## Start = 4, End = 477
## 
## Call:
## dynlm(formula = Yt ~ Xt + L(Xt) + L(Yt) + L(Yt, 2) + L(Yt, 3), 
##     data = training.ts)
## 
## Coefficients:
## (Intercept)           Xt        L(Xt)        L(Yt)     L(Yt, 2)     L(Yt, 3)  
##   6.459e+05   -6.818e+05    4.326e+05    6.944e-01   -2.984e-01    1.595e-01
summary(cons_lm2)
## 
## Time series regression with "ts" data:
## Start = 4, End = 477
## 
## Call:
## dynlm(formula = Yt ~ Xt + L(Xt) + L(Yt) + L(Yt, 2) + L(Yt, 3), 
##     data = training.ts)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -489310  -98758   15243  101581  549100 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  6.459e+05  7.381e+04   8.751  < 2e-16 ***
## Xt          -6.818e+05  1.198e+05  -5.690 2.24e-08 ***
## L(Xt)        4.326e+05  1.215e+05   3.559 0.000410 ***
## L(Yt)        6.944e-01  4.507e-02  15.408  < 2e-16 ***
## L(Yt, 2)    -2.984e-01  5.290e-02  -5.641 2.93e-08 ***
## L(Yt, 3)     1.595e-01  4.427e-02   3.603 0.000348 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 168400 on 468 degrees of freedom
## Multiple R-squared:  0.7532, Adjusted R-squared:  0.7505 
## F-statistic: 285.6 on 5 and 468 DF,  p-value: < 2.2e-16

SSE

deviance(cons_lm2)
## [1] 1.327812e+13

Uji Diagnostik

Autokorelasi

dwtest(cons_lm2)
## 
##  Durbin-Watson test
## 
## data:  cons_lm2
## DW = 1.9843, p-value = 0.4015
## alternative hypothesis: true autocorrelation is greater than 0

Berdasarkan hasil uji diagnostik model yaitu autokorelasi diperoleh \(P-Value>0.05\) untuk model ARDL. Artinya, tidak terjadi autokorelasi pada model ardl.

Heterogenitas

Box.test((residuals(cons_lm2))^2, type = "Ljung")
## 
##  Box-Ljung test
## 
## data:  (residuals(cons_lm2))^2
## X-squared = 1.1013, df = 1, p-value = 0.294

Berdasarkan hasil uji diagnostik model yaitu heterogenitas diperoleh \(P-Value>0.05\). Artinya, tidak terjadi heterogenitas pada model ardl.

Normalitas

shapiro.test(residuals(cons_lm2))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(cons_lm2)
## W = 0.98947, p-value = 0.001758
ks.test(residuals(cons_lm2), "pnorm", mean=mean(residuals(cons_lm2)), sd=sd(residuals(cons_lm2)))
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  residuals(cons_lm2)
## D = 0.050377, p-value = 0.1802
## alternative hypothesis: two-sided
nortest::ad.test(residuals(cons_lm2))
## 
##  Anderson-Darling normality test
## 
## data:  residuals(cons_lm2)
## A = 1.9953, p-value = 4.356e-05
tseries::jarque.bera.test(residuals(cons_lm2))
## 
##  Jarque Bera Test
## 
## data:  residuals(cons_lm2)
## X-squared = 0.94275, df = 2, p-value = 0.6241

Berdasarkan hasil uji diagnostik model yaitu normalitas dengan menggunakan uji shapiro-wilk dan anderson darling diperoleh \(P-Value<0.05\) untuk ardl. Artinya, normalitas tidak terpenuhi pada model ardl. Namun, berdasarkan hasil uji diagnostik model yaitu normalitas dengan menggunakan uji kolmogorov-smirnov dan jarque bera diperoleh \(P-Value>0.05\) untuk model ardl. Artinya, normalitas terpenuhi pada model ardl.

Nilai Harapan Galat

t.test(residuals(cons_lm2), mu = 0, conf.level = 0.95)
## 
##  One Sample t-test
## 
## data:  residuals(cons_lm2)
## t = 1.3821e-15, df = 473, p-value = 1
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  -15122  15122
## sample estimates:
##    mean of x 
## 1.063588e-11

Berdasarkan hasil uji diagnostik model yaitu nilai harapan galat sama dengan 0 diperoleh \(P-Value > 0.05\) artinya nilai harapan galat = 0 terpenuhi.

Akibat semua diagnostik model terpenuhi maka bisa dilanjutkan dengan peramalan.

Pemodelan untuk Peramalan

modelardl2 <- ardlDlm(formula = Yt ~ Xt, data = training, p = 1, q = 3)
summary(modelardl2)
## 
## Time series regression with "ts" data:
## Start = 4, End = 477
## 
## Call:
## dynlm(formula = as.formula(model.text), data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -489310  -98758   15243  101581  549100 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  6.459e+05  7.381e+04   8.751  < 2e-16 ***
## Xt.t        -6.818e+05  1.198e+05  -5.690 2.24e-08 ***
## Xt.1         4.326e+05  1.215e+05   3.559 0.000410 ***
## Yt.1         6.944e-01  4.507e-02  15.408  < 2e-16 ***
## Yt.2        -2.984e-01  5.290e-02  -5.641 2.93e-08 ***
## Yt.3         1.595e-01  4.427e-02   3.603 0.000348 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 168400 on 468 degrees of freedom
## Multiple R-squared:  0.7532, Adjusted R-squared:  0.7505 
## F-statistic: 285.6 on 5 and 468 DF,  p-value: < 2.2e-16
AIC(modelardl2)
## [1] 12761.67
BIC(modelardl2)
## [1] 12790.79

Peramalan

foreardl <- forecast(model = modelardl2, x = training$Xt, h = 69)
foreardl
## $forecasts
##  [1] 812143.6 884038.3 874863.7 870018.1 880859.1 888369.7 889577.6 889904.8
##  [9] 890969.6 891804.1 892118.1 892257.0 892392.9 892495.9 892549.0 892576.9
## [17] 892596.8 892610.8 892619.0 892623.7 892626.7 892628.8 892630.0 892630.8
## [25] 892631.2 892631.5 892631.7 892631.8 892631.9 892632.0 892632.0 892632.0
## [33] 892632.0 892632.0 892632.0 892632.0 892632.0 892632.0 892632.0 892632.0
## [41] 892632.0 892632.0 892632.0 892632.0 892632.0 892632.0 892632.0 892632.0
## [49] 892632.0 892632.0 892632.0 892632.0 892632.0 892632.0 892632.0 892632.0
## [57] 892632.0 892632.0 892632.0 210869.6 170014.0 345065.4 370064.5 328676.0
## [65] 320399.0 330988.4 334209.5 331966.4 331136.8
## 
## $call
## forecast.ardlDlm(model = modelardl2, x = training$Xt, h = 69)
## 
## attr(,"class")
## [1] "forecast.ardlDlm" "dLagM"

Akurasi

# Akurasi Data Testing
mapeardl <- MAPE(foreardl$forecasts, testing$Yt)
mapeardl
## [1] 0.3178813
# Akurasi Data Training
GoF(modelardl)
##             n    MAE         MPE      MAPE     sMAPE     MASE         MSE
## modelardl 463 126952 -0.06768397 0.2166388 0.1974668 1.053469 27413818385
##               MRAE    GMRAE
## modelardl 13.23198 2.323283

Fitted Values

# 1. Syntax untuk fitted values pada data training
fitted_values_train <- fitted(modelardl2)
## Time Series:
## Start = 4 
## End = 477 
## Frequency = 1 
##   [1]  780445.49  834086.64  844445.36  843851.90  654751.37  687517.08
##   [7]  908441.30  792564.41  848762.00  849307.54  852264.55  654418.33
##  [13]  691688.30  906170.73  795741.36  847138.47  847538.25  844377.24
##  [19]  650905.31  696391.20  690435.79  889649.50  796895.71  847721.26
##  [25]  849378.89  621713.40  700459.53  904315.09  793295.78  849286.30
##  [31]  852346.20  851144.96  669626.74  700234.13  912821.92  806509.42
##  [37]  858457.27  858606.24  856529.99  636534.11  670260.21  932383.31
##  [43]  798681.45  866814.99  853023.63  862167.51  635145.67  705425.85
##  [49]  926652.19  807243.27  874821.14  858683.58  836216.96  666694.53
##  [55]  665075.78  919777.97  132055.46   62523.06  283485.17  323789.01
##  [61]  259815.72  268837.08  408405.62  343586.91  378070.03  388507.12
##  [67]  358759.66  286171.82  292523.97  411770.78  363452.28  363939.18
##  [73]  383026.64  361552.67  291447.17  297143.49  406088.14  358697.15
##  [79]  251196.75  295881.98  350511.12  215541.64  274796.80  413862.86
##  [85]  320905.24  371796.92  354634.90  365006.85  243988.57  266096.17
##  [91]  401291.78  330093.25  366197.77  360439.52  225618.82  294752.16
##  [97]  242564.89  385103.64  318303.54  362069.95  357064.97  355201.09
## [103]  267294.27  269486.95  384599.68  301448.19  263956.53  259148.02
## [109]  221178.24  222150.53  259792.36  252654.31  265376.38  319680.41
## [115]  318137.41  315735.31  274657.05  292878.31  245649.23  399905.59
## [121]  333220.03  358655.02  360109.44  272459.73  283009.82  398699.49
## [127]  340584.06  370124.19  364642.55  360643.29  277124.54  294184.12
## [133]  394169.99  343957.89  372723.85  243821.31  408985.41  255705.25
## [139]  297962.30  394290.78  346301.25  369215.28  365185.85  365639.34
## [145]  278872.45  293147.55  399846.22  345305.29  375696.69  262139.15
## [151]  333541.48  288107.39  274496.29  397758.20  342897.92  374169.56
## [157]  370278.68  369893.49  281135.78  295591.01  404022.39  348320.50
## [163]  376924.85  370393.06  351645.70  290231.34  295789.03  399914.26
## [169]  359325.53  373543.16  418769.37  353452.61  307768.15  300776.80
## [175]  400229.26  348038.39  287500.97  240594.65  330630.57  278280.63
## [181]  293017.90  397010.14  360280.19  382409.04  370773.71  370101.63
## [187]  306244.15  316511.20  403679.91  362334.24  379800.49  379711.49
## [193]  372005.35  287263.43  296536.44  404025.98  349443.50  238341.53
## [199]  434901.70  337445.30  279199.39  290231.12  403860.49  347126.23
## [205]  375076.66  371463.21  370829.25  291331.84  301255.30 1085555.46
## [211] 1015127.97  856016.67  955166.15  937135.53  730298.40  789445.34
## [217] 1015132.08  899015.08  950086.88  948142.67  942978.11  731601.03
## [223]  766417.05 1026735.09  893355.50  943277.24  634547.48 1048809.49
## [229]  635532.94  706428.27  648818.28  637817.13  630319.16  623514.38
## [235]  624597.99  536310.50  548925.44  659890.91  603782.05  636932.05
## [241]  625759.02 1045809.00  643723.08  779871.18 1036361.30  893303.98
## [247]  962556.86  955160.88  974721.84  736021.13  784016.73 1062922.83
## [253]  927124.71  991179.05  991412.34  988280.35  743482.90  774944.53
## [259] 1079858.35  930815.39 1007389.94  999925.38  998287.26  763787.83
## [265]  772212.01 1097328.40  933779.71 1012538.46  669768.25 1114214.41
## [271]  690906.68  796710.87 1071466.75  945173.56 1004103.99 1010065.67
## [277]  998722.60  751705.89  791665.20 1088408.49  939241.11 1010360.74
## [283] 1009327.61 1003251.97  751748.89  795563.53 1091990.00  951556.75
## [289] 1015456.10 1013172.53 1006679.75  746991.51  793961.67 1091025.96
## [295]  945558.44 1007808.53 1016705.27 1004217.79  765940.33  788724.13
## [301] 1097607.66  945551.15 1015398.68 1021082.96 1005557.61  757318.69
## [307]  799628.09 1100613.15  949611.96 1022296.24 1020685.08 1006496.51
## [313]  767111.64  803120.15 1109474.24  958431.86 1022295.01 1027342.88
## [319] 1021807.85  758239.65  808737.20 1116259.28  957531.16 1049882.52
## [325] 1026000.71 1018547.33  730708.78  812913.13 1113525.07  957675.21
## [331] 1040125.70 1027146.63 1024241.88  776664.64  806743.52 1119941.06
## [337]  974775.19 1040726.64 1043927.03 1015983.06  789979.25  811038.03
## [343] 1119530.31  963641.08 1035023.24 1031357.64 1024837.62  768236.93
## [349]  823713.85 1067126.82  932960.19 1003548.60  987648.30  964724.58
## [355]  781199.98  829266.29  727690.47  839049.35  977143.70  913544.11
## [361]  933634.72  786670.94  787472.81  758472.12 1039070.39  909145.59
## [367] 1014945.45 1002886.94  739379.40  793277.17 1114586.22  955615.23
## [373] 1031838.07 1019233.03 1028073.40  765765.42  825395.18 1115539.80
## [379]  965444.36 1021212.27 1037442.47  976485.94  803591.72  786215.77
## [385] 1130663.03  964409.79 1045102.85 1034088.69 1035051.01  720126.00
## [391]  816909.26 1090255.77  944258.29 1000695.31 1050945.70 1026742.88
## [397]  793628.96  806833.21 1129669.81  968907.78 1052608.09  714619.38
## [403]  914905.85  751107.54  764940.59 1109682.04  961174.05  562048.40
## [409] 1212165.57  925020.04  752161.51  806249.58 1136237.85  979403.15
## [415] 1061047.44 1048236.65 1050530.12  769612.28  817672.51 1143366.73
## [421]  981174.56 1042116.55 1001530.91 1088852.21  763370.16  840914.82
## [427] 1152506.52 1006196.39 1078606.66 1084613.09 1073052.35  748286.07
## [433]  857873.86  718142.85  828032.80 1042288.16  980082.15 1022427.79
## [439]  695106.64  765163.43 1165841.34  952737.91 1057053.81 1058203.22
## [445]  974559.46  779645.52  765571.07 1160875.15  962489.44 1057232.13
## [451] 1040046.74  698808.32  880195.68  720795.32 1107208.18  964717.55
## [457] 1025313.56 1002050.37  978589.07  743444.49  774261.34  752640.75
## [463]  654587.74  578855.94  710093.61  678663.65  762870.26  721228.43
## [469]  819397.80  984623.49  969883.74 1014608.85 1023035.48  772058.53
fitted_values_train
## Time Series:
## Start = 4 
## End = 477 
## Frequency = 1 
##   [1]  780445.49  834086.64  844445.36  843851.90  654751.37  687517.08
##   [7]  908441.30  792564.41  848762.00  849307.54  852264.55  654418.33
##  [13]  691688.30  906170.73  795741.36  847138.47  847538.25  844377.24
##  [19]  650905.31  696391.20  690435.79  889649.50  796895.71  847721.26
##  [25]  849378.89  621713.40  700459.53  904315.09  793295.78  849286.30
##  [31]  852346.20  851144.96  669626.74  700234.13  912821.92  806509.42
##  [37]  858457.27  858606.24  856529.99  636534.11  670260.21  932383.31
##  [43]  798681.45  866814.99  853023.63  862167.51  635145.67  705425.85
##  [49]  926652.19  807243.27  874821.14  858683.58  836216.96  666694.53
##  [55]  665075.78  919777.97  132055.46   62523.06  283485.17  323789.01
##  [61]  259815.72  268837.08  408405.62  343586.91  378070.03  388507.12
##  [67]  358759.66  286171.82  292523.97  411770.78  363452.28  363939.18
##  [73]  383026.64  361552.67  291447.17  297143.49  406088.14  358697.15
##  [79]  251196.75  295881.98  350511.12  215541.64  274796.80  413862.86
##  [85]  320905.24  371796.92  354634.90  365006.85  243988.57  266096.17
##  [91]  401291.78  330093.25  366197.77  360439.52  225618.82  294752.16
##  [97]  242564.89  385103.64  318303.54  362069.95  357064.97  355201.09
## [103]  267294.27  269486.95  384599.68  301448.19  263956.53  259148.02
## [109]  221178.24  222150.53  259792.36  252654.31  265376.38  319680.41
## [115]  318137.41  315735.31  274657.05  292878.31  245649.23  399905.59
## [121]  333220.03  358655.02  360109.44  272459.73  283009.82  398699.49
## [127]  340584.06  370124.19  364642.55  360643.29  277124.54  294184.12
## [133]  394169.99  343957.89  372723.85  243821.31  408985.41  255705.25
## [139]  297962.30  394290.78  346301.25  369215.28  365185.85  365639.34
## [145]  278872.45  293147.55  399846.22  345305.29  375696.69  262139.15
## [151]  333541.48  288107.39  274496.29  397758.20  342897.92  374169.56
## [157]  370278.68  369893.49  281135.78  295591.01  404022.39  348320.50
## [163]  376924.85  370393.06  351645.70  290231.34  295789.03  399914.26
## [169]  359325.53  373543.16  418769.37  353452.61  307768.15  300776.80
## [175]  400229.26  348038.39  287500.97  240594.65  330630.57  278280.63
## [181]  293017.90  397010.14  360280.19  382409.04  370773.71  370101.63
## [187]  306244.15  316511.20  403679.91  362334.24  379800.49  379711.49
## [193]  372005.35  287263.43  296536.44  404025.98  349443.50  238341.53
## [199]  434901.70  337445.30  279199.39  290231.12  403860.49  347126.23
## [205]  375076.66  371463.21  370829.25  291331.84  301255.30 1085555.46
## [211] 1015127.97  856016.67  955166.15  937135.53  730298.40  789445.34
## [217] 1015132.08  899015.08  950086.88  948142.67  942978.11  731601.03
## [223]  766417.05 1026735.09  893355.50  943277.24  634547.48 1048809.49
## [229]  635532.94  706428.27  648818.28  637817.13  630319.16  623514.38
## [235]  624597.99  536310.50  548925.44  659890.91  603782.05  636932.05
## [241]  625759.02 1045809.00  643723.08  779871.18 1036361.30  893303.98
## [247]  962556.86  955160.88  974721.84  736021.13  784016.73 1062922.83
## [253]  927124.71  991179.05  991412.34  988280.35  743482.90  774944.53
## [259] 1079858.35  930815.39 1007389.94  999925.38  998287.26  763787.83
## [265]  772212.01 1097328.40  933779.71 1012538.46  669768.25 1114214.41
## [271]  690906.68  796710.87 1071466.75  945173.56 1004103.99 1010065.67
## [277]  998722.60  751705.89  791665.20 1088408.49  939241.11 1010360.74
## [283] 1009327.61 1003251.97  751748.89  795563.53 1091990.00  951556.75
## [289] 1015456.10 1013172.53 1006679.75  746991.51  793961.67 1091025.96
## [295]  945558.44 1007808.53 1016705.27 1004217.79  765940.33  788724.13
## [301] 1097607.66  945551.15 1015398.68 1021082.96 1005557.61  757318.69
## [307]  799628.09 1100613.15  949611.96 1022296.24 1020685.08 1006496.51
## [313]  767111.64  803120.15 1109474.24  958431.86 1022295.01 1027342.88
## [319] 1021807.85  758239.65  808737.20 1116259.28  957531.16 1049882.52
## [325] 1026000.71 1018547.33  730708.78  812913.13 1113525.07  957675.21
## [331] 1040125.70 1027146.63 1024241.88  776664.64  806743.52 1119941.06
## [337]  974775.19 1040726.64 1043927.03 1015983.06  789979.25  811038.03
## [343] 1119530.31  963641.08 1035023.24 1031357.64 1024837.62  768236.93
## [349]  823713.85 1067126.82  932960.19 1003548.60  987648.30  964724.58
## [355]  781199.98  829266.29  727690.47  839049.35  977143.70  913544.11
## [361]  933634.72  786670.94  787472.81  758472.12 1039070.39  909145.59
## [367] 1014945.45 1002886.94  739379.40  793277.17 1114586.22  955615.23
## [373] 1031838.07 1019233.03 1028073.40  765765.42  825395.18 1115539.80
## [379]  965444.36 1021212.27 1037442.47  976485.94  803591.72  786215.77
## [385] 1130663.03  964409.79 1045102.85 1034088.69 1035051.01  720126.00
## [391]  816909.26 1090255.77  944258.29 1000695.31 1050945.70 1026742.88
## [397]  793628.96  806833.21 1129669.81  968907.78 1052608.09  714619.38
## [403]  914905.85  751107.54  764940.59 1109682.04  961174.05  562048.40
## [409] 1212165.57  925020.04  752161.51  806249.58 1136237.85  979403.15
## [415] 1061047.44 1048236.65 1050530.12  769612.28  817672.51 1143366.73
## [421]  981174.56 1042116.55 1001530.91 1088852.21  763370.16  840914.82
## [427] 1152506.52 1006196.39 1078606.66 1084613.09 1073052.35  748286.07
## [433]  857873.86  718142.85  828032.80 1042288.16  980082.15 1022427.79
## [439]  695106.64  765163.43 1165841.34  952737.91 1057053.81 1058203.22
## [445]  974559.46  779645.52  765571.07 1160875.15  962489.44 1057232.13
## [451] 1040046.74  698808.32  880195.68  720795.32 1107208.18  964717.55
## [457] 1025313.56 1002050.37  978589.07  743444.49  774261.34  752640.75
## [463]  654587.74  578855.94  710093.61  678663.65  762870.26  721228.43
## [469]  819397.80  984623.49  969883.74 1014608.85 1023035.48  772058.53

Forecast 28 hari kedepan

# 2. Forecast 28 hari ke depan setelah data testing (bukan data testing)
forecast_28 <- forecast(model = modelardl2, x = data$Xt, h = 14)
forecast_28
## $forecasts
##  [1] 812143.6 884038.3 874863.7 870018.1 880859.1 888369.7 889577.6 889904.8
##  [9] 890969.6 891804.1 892118.1 892257.0 892392.9 892495.9
## 
## $call
## forecast.ardlDlm(model = modelardl2, x = data$Xt, h = 14)
## 
## attr(,"class")
## [1] "forecast.ardlDlm" "dLagM"

MAPE manual

# 3. Menghitung MAPE untuk data training dan testing secara manual
# MAPE untuk Training
actual_train <- training$Yt
mape_train <- mean(abs((actual_train[1:474] - fitted_values_train) / actual_train[1:474])) * 100
mape_train
## [1] 33.92546
# MAPE untuk Testing
actual_test <- testing$Yt
pred_test <- foreardl$forecasts  # Forecast hasil pada testing
mape_test <- mean(abs((actual_test - pred_test) / actual_test)) * 100
mape_test
## [1] 31.78813

Plot

par(mfrow=c(1,1))
plot(testing$Xt, testing$Yt, type="b", col="black")
points(testing$Xt, foreardl$forecasts,col="green")
lines(testing$Xt, foreardl$forecasts,col="green")
legend("topleft",c("aktual", "autoregressive"), lty=1, col=c("black","green"), cex=0.8)

Multistep forecast

# Initialize vectors to store forecasts and actuals
forecasts <- numeric(length(testing$Yt))
actuals <- testing$Yt

model2 <- ardlDlm(formula = Yt ~ Xt, data = training, p = 1, q = 3)
# Iterative forecasting loop
for (i in 1:length(testing$Yt)) {
  # Define training data up to the i-th test point
  updated_training <- rbind(training, testing[1:i, ])
  
  # Fit the ARDL model to the updated training data
  model <- ardlDlm(formula = Yt ~ Xt, data = updated_training, p = 1, q = 3)
  
  # Forecast the next time step (i-th point in the test set)
  next_forecast <- forecast(model = model, x = testing$Xt[i], h = 1)$forecasts
  
  # Store the forecasted value
  forecasts[i] <- next_forecast
}

MAPE Multistep

# Calculate MAPE for testing data
mape_testing <- MAPE(forecasts, actuals)
cat("MAPE for testing data:", mape_testing, "\n")
## MAPE for testing data: 0.1119063
# Create a data frame for plotting
forecast_data <- data.frame(
  Date = 478:546,
  Actual = actuals,
  Forecast = forecasts
)
Forecast = forecasts
forecast_testing = forecasts

Plot

# Inisialisasi tanggal dari 21 April 2024 hingga 30 Juni 2024
forecast_data$Date <- seq(from = as.Date("2024-04-21"), to = as.Date("2024-06-28"), by = "day")


# Plot actual vs. forecasted values dengan rentang tanggal yang disesuaikan
ggplot(forecast_data, aes(x = Date)) +
  geom_line(aes(y = Actual, color = "Actual"), size = 0.5) +
  geom_line(aes(y = Forecast, color = "Forecast"), size = 0.5, linetype = "dashed") +
  labs(
    title = "Actual vs Forecasted Passenger Numbers",
    x = "Date",
    y = "Number of Passengers"
  ) +
  scale_color_manual(
    name = "Legend",
    values = c("Actual" = "black", "Forecast" = "blue")
  ) +
  theme_minimal()

Date <- seq(from = as.Date("2024-04-22"), to = as.Date("2024-06-29"), by = "day")
# Plot the actual vs. forecasted values
ggplot(forecast_data, aes(x = Date)) +
  geom_line(aes(y = Actual, color = "Actual"), size = 0.5) +
  geom_line(aes(y = Forecast, color = "Forecast"), size = 0.5, linetype = "dashed") +
  labs(
    title = "Actual vs Forecasted Passenger Numbers",
    x = "Date",
    y = "Number of Passengers"
  ) +
  scale_color_manual(
    name = "Legend",
    values = c("Actual" = "black", "Forecast" = "blue")
  ) +
  theme_minimal()

model2.1 <-  dynlm(Yt ~ Xt+L(Xt)+L(Yt)+L(Yt,2)+L(Yt,3),data = training.ts)

dwtest(model2.1)
## 
##  Durbin-Watson test
## 
## data:  model2.1
## DW = 1.9843, p-value = 0.4015
## alternative hypothesis: true autocorrelation is greater than 0
Box.test((residuals(model2.1))^2, type = "Ljung")
## 
##  Box-Ljung test
## 
## data:  (residuals(model2.1))^2
## X-squared = 1.1013, df = 1, p-value = 0.294
tseries::jarque.bera.test(residuals(model2))
## Time Series:
## Start = 4 
## End = 477 
## Frequency = 1 
##            4            5            6            7            8            9 
##   18003.5138  -26181.6431  -36828.3558 -310840.9004 -192481.3742  125573.9214 
##           10           11           12           13           14           15 
##  -95228.2991   21040.5895  -34231.0039  -30210.5437 -316322.5470 -187519.3292 
##           16           17           18           19           20           21 
##  119448.6965  -90285.7332   17122.6377  -36087.4694  -41124.2511 -318144.2353 
##           22           23           24           25           26           27 
## -178492.3106 -191319.1967  127905.2144  -77775.5004   13429.2862  -34189.2614 
##           28           29           30           31           32           33 
## -361957.8942 -161753.4015  116169.4658  -87998.0856   21585.2210  -30544.3022 
##           34           35           36           37           38           39 
##  -33345.2008 -294310.9554 -181422.7450  124835.8749  -80337.9160   26585.5800 
##           40           41           42           43           44           45 
##  -26588.2675  -30394.2427 -346407.9855 -213680.1117  165629.7864  -91511.3143 
##           46           47           48           49           50           51 
##   47567.5550  -39259.9852  -21568.6305 -351660.5083 -162231.6732  143632.1466 
##           52           53           54           55           56           57 
##  -79292.1929   50297.7272  -35754.1359  -62245.5774 -297968.9619 -231922.5317 
##           58           59           60           61           62           63 
##  151322.2194  -68221.9664  -76113.4567  -38319.0642  -32120.1658  -59652.0135 
##           64           65           66           67           68           69 
##  -29380.7153  145165.9185   -1127.6231   68291.0927   52358.9736    5998.8766 
##           70           71           72           73           74           75 
##  -88478.6553  -51867.8196  126576.0320   25415.2175   39756.7206   48002.8247 
##           76           77           78           79           80           81 
##    9549.3565  -80257.6672  -45315.1655  116325.5068   19113.8552 -121696.1500 
##           82           83           84           85           86           87 
##  -33407.7538   35551.0162 -160195.1212  -26635.6435  146178.1991  -26711.8552 
##           88           89           90           91           92           93 
##   71689.7567    6193.0791   30765.0995 -147337.8504  -68255.5671  124832.8336 
##           94           95           96           97           98           99 
##  -10793.7797   62778.7461   19501.2290 -172513.5185  -21468.8248 -113352.1551 
##          100          101          102          103          104          105 
##  130593.1075  -20520.6381   61571.4639   19138.0510   18519.0251 -108928.0867 
##          106          107          108          109          110          111 
##  -72133.2662   99182.0506  -49378.6782  -74444.1874  -82691.5299 -127355.0150 
##          112          113          114          115          116          117 
##  -98735.2360  -38155.5311  -57481.3597  -38292.3144   28155.6242    2878.5885 
##          118          119          120          121          122          123 
##   -4751.4065  -72112.3076  -32663.0453 -103570.3114  143528.7667   -8775.5927 
##          124          125          126          127          128          129 
##   49463.9680   22045.9778 -104538.4425  -55005.7299  113406.1776    -320.4942 
##          130          131          132          133          134          135 
##   60067.9444   23159.8066   19194.4542  -99442.2884  -41880.5379  102059.8783 
##          136          137          138          139          140          141 
##    4907.0127   60777.1101 -151831.8495  134619.6931 -141347.4148  -11015.2475 
##          142          143          144          145          146          147 
##  101035.6959    7174.2199   53774.7484   23894.7211   25903.1512  -98765.3364 
##          148          149          150          151          152          153 
##  -44349.4509  109657.4464    4155.7844   64319.7078 -127456.6930   18287.8499 
##          154          155          156          157          158          159 
##  -67639.4767  -55440.3907  124727.7142    1664.8015   63383.0776   29409.4399 
##          160          161          162          163          164          165 
##   30009.3238  -98212.4868  -43141.7803  113614.9866    6274.6066   64307.5013 
##          166          167          168          169          170          171 
##   27048.1547    2328.9391  -78801.7000  -45120.3389  110291.9716   23252.7406 
##          172          173          174          175          176          177 
##   54680.4668   97728.8425  -14845.3694  -57407.6055  -52673.1470  104718.2040 
##          178          179          180          181          182          183 
##    4138.7373  -65878.3930 -125137.9719   28021.3526  -64227.5714  -16013.6338 
##          184          185          186          187          188          189 
##  117732.1024   25596.8618   65179.8075   24797.9581   26967.2862  -64191.6257 
##          190          191          192          193          194          195 
##  -22832.1450  103853.7983   21159.0886   58119.7631   37613.5057   26306.5106 
##          196          197          198          199          200          201 
##  -92216.3453  -45740.4316  112328.5586    6931.0225 -136017.5040  172782.4718 
##          202          203          204          205          206          207 
##  -33797.6968  -69935.3038  -50903.3862  115532.8761    5465.5118   63213.7688 
##          208          209          210          211          212          213 
##   29677.3435   29744.7906  -84340.2469  -39029.8351  110366.6967  -76113.4567 
##          214          215          216          217          218          219 
##  -14540.9653  146219.3265   23847.8504 -266329.5341 -101413.3994  217220.6611 
##          220          221          222          223          224          225 
##   -3726.0829  101192.9247   41421.1249   34762.3275 -266160.1058 -134188.0342 
##          226          227          228          229          230          231 
##  242053.9544  -15474.0945   96569.4962 -407740.2361  307201.5167 -423275.4885 
##          232          233          234          235          236          237 
## -137086.9394 -272911.2664 -229848.2807 -220980.1297 -220856.1584 -215169.3780 
##          238          239          240          241          242          243 
## -342175.9944 -289571.5031 -128799.4357 -237866.9075 -173034.0513 -218961.0512 
##          244          245          246          247          248          249 
##  389601.9769 -349846.0014  -26165.0754  246719.8213  -22016.3017  121547.0177 
##          250          251          252          253          254          255 
##   44674.1397   76848.1217 -274051.8385 -114295.1261  281533.2663   15907.1655 
##          256          257          258          259          260          261 
##  147701.2919   79211.9491   73482.6635 -277243.3467 -137920.9024  305666.4654 
##          262          263          264          265          266          267 
##   14470.6545  170554.6065   83105.0593   81920.6237 -255345.2613 -152345.8329 
##          268          269          270          271          272          273 
##  328753.9944    8664.6014  175340.2914 -396828.4595  373233.7503 -383851.4135 
##          274          275          276          277          278          279 
##  -40667.6846  286573.1323   34424.2538  155818.4386   98175.0118   77557.3338 
##          280          281          282          283          284          285 
## -273403.6049 -121149.8945  308716.8034   20807.5060  168261.8878   92889.2648 
##          286          287          288          289          290          291 
##   83739.3876 -275754.9736 -115893.8858  311752.4736   36723.0007  170068.2457 
##          292          293          294          295          296          297 
##   94919.9002   84648.4718 -285627.7498 -117304.5064  310796.3346   29367.0441 
##          298          299          300          301          302          303 
##  162066.5572  103550.4697   81208.7336 -256064.7938 -132172.3296  321039.8680 
##          304          305          306          307          308          309 
##   23988.3443  172370.8496  106412.3248   80886.0425 -270478.6069 -114397.6872 
##          310          311          312          313          314          315 
##  321399.9105   29567.8499  179344.0351  101710.7554   81044.9246 -257922.5063 
##          316          317          318          319          320          321 
## -113308.6409  332243.8498   37067.7627  174259.1400  109145.9877   98772.1167 
##          322          323          324          325          326          327 
## -277239.8530 -103670.6520  337646.8012   33544.7170  213756.8420   95460.4801 
##          328          329          330          331          332          333 
##   92526.2903 -320078.3253  -88190.7810  334944.8739   39887.9301  200774.7852 
##          334          335          336          337          338          339 
##  100522.3004  100512.3713 -254592.8769 -114544.6434  342425.4779   54156.9429 
##          340          341          342          343          344          345 
##  193126.8141  123395.3623   79753.9711 -234262.0589 -115574.2518  340044.9718 
##          346          347          348          349          350          351 
##   36534.6907  187859.9174  108093.7568   99816.3555 -266381.6249  -87295.9282 
##          352          353          354          355          356          357 
##  260059.1519   14334.1762  156622.8093   67158.3957   40071.6983 -215419.5832 
##          358          359          360          361          362          363 
##  -72430.9848 -220232.2913    8161.5295  173062.6543   32953.2998   61158.8869 
##          364          365          366          367          368          369 
## -185308.7233 -126327.9378 -154694.8078  286741.8830    2592.6085  188606.4081 
##          370          371          372          373          374          375 
##   90357.5472 -286681.9360 -114479.3991  344464.8334   35560.7824  191820.7686 
##          376          377          378          379          380          381 
##   93431.9283  109865.9740 -269968.3970  -82077.4242  329354.8169   42565.1999 
##          382          383          384          385          386          387 
##  166202.6378  121667.7283   28562.5262 -195064.9406 -151811.7161  371246.2342 
##          388          389          390          391          392          393 
##   34446.9713  204027.2076  107146.1497  111826.3148 -341640.0146  -80317.9973 
##          394          395          396          397          398          399 
##  297437.7446   30060.2295  150887.7067  154626.6910  101161.2995 -225530.8821 
##          400          401          402          403          404          405 
## -123433.9640  352564.7901   38519.1897  211215.2166 -356090.0865   59783.6238 
##          406          407          408          409          410          411 
## -231823.8452 -105234.5373  382359.4134   47758.9626 -489310.0549  549099.6019 
##          412          413          414          415          416          417 
##  -82349.5651 -182953.0379 -103099.5133  367112.4171   57919.1482  220822.8531 
##          418          419          420          421          422          423 
##  118561.5604  124422.3466 -280651.1239 -101992.2824  367540.4881   54170.2710 
##          424          425          426          427          428          429 
##  190520.4448   57199.4499  198367.0872 -297814.2135  -59446.1584  368198.1800 
##          430          431          432          433          434          435 
##   82992.4767  228866.6063  158857.3386  137334.9122 -325995.3458  -43903.0680 
##          436          437          438          439          440          441 
## -263956.8649   -3642.8533  272187.2002  106387.8432  161789.8507 -365961.7905 
##          442          443          444          445          446          447 
## -144759.6427  428076.5661   21133.6583  234085.0940  132798.1940   12535.7815 
##          448          449          450          451          452          453 
## -236377.4564 -177260.5187  424105.9257   26657.8460  225648.5554  106910.8702 
##          454          455          456          457          458          459 
## -377745.7419   14579.6842 -259120.6757  405325.6802   51931.8247  179856.4541 
##          460          461          462          463          464          465 
##   71917.4445   44399.6270 -281698.0729 -140707.4920 -162817.3380 -257026.7535 
##          466          467          468          469          470          471 
## -319798.7367  -97575.9397 -174187.6146  -31676.6470 -140668.2638    6174.5664 
##          472          473          474          475          476          477 
##  196830.1958  110313.5130  156932.2623  119959.1467 -253873.4837 -103958.5287
## 
##  Jarque Bera Test
## 
## data:  residuals(model2)
## X-squared = 0.94275, df = 2, p-value = 0.6241
ks.test(residuals(model2.1), "pnorm",mean=mean(residuals(model2.1)),sd=sd(residuals(model2.1)))
## 
##  Asymptotic one-sample Kolmogorov-Smirnov test
## 
## data:  residuals(model2.1)
## D = 0.050377, p-value = 0.1802
## alternative hypothesis: two-sided
y1 <- training$Yt
y1 <- y1[-c(1:3)]
y1 <- matrix(nrow=474, ncol=1, y1)

y2 <- model2.1$fitted.values
y2 <- matrix(nrow=474, ncol=1, y2)

mape <- function(y1, y2) {
  mean(abs((y1 - y2) / y1)) * 100
}

mape(y1,y2) #mape testing
## [1] 21.69295

Plot akhir

library(ggplot2)
# Inisialisasi vector untuk menyimpan prediksi
forecasts <- numeric(14)  # Menyimpan prediksi 14 hari ke depan

# Salin data training dan testing sebagai data awal
updated_training <- training

# Multistep forecasting loop untuk 14 hari ke depan
for (i in 1:14) {
  # Fit the ARDL model ke data training yang diperbarui
  model <- ardlDlm(formula = Yt ~ Xt, data = updated_training, p = 1, q = 3)
  
  # Forecast untuk langkah ke-i
  # Ambil Xt dari data testing atau sebelumnya jika di luar data testing
  if (i <= nrow(testing)) {
    next_Xt <- testing$Xt[i]
  } else {
    next_Xt <- tail(updated_training$Xt, 1) # Gunakan Xt terakhir dari data yang diperbarui
  }
  
  # Prediksi nilai Yt berikutnya
  next_forecast <- forecast(model = model, x = next_Xt, h = 1)$forecasts
  
  # Simpan hasil prediksi
  forecasts[i] <- next_forecast
  
  # Perbarui data training dengan prediksi baru
  new_data <- data.frame(Yt = next_forecast, Xt = next_Xt)
  updated_training <- rbind(updated_training, new_data)
}

# Hasil prediksi
forecasts
##  [1] 812143.6 884038.3 874863.7 870018.1 880859.1 888369.7 889577.6 889904.8
##  [9] 890969.6 891804.1 892118.1 892257.0 892392.9 892495.9
# Buat vektor hari untuk sumbu X
days <- seq(from = as.Date("2024-06-30"), to = as.Date("2024-07-13"), by = "day")

# Buat plot sederhana
plot(
  x = days, 
  y = forecasts, 
  type = "b",  # Menggunakan garis dan titik
  col = "blue",  # Warna garis biru
  pch = 16,  # Bentuk titik bulat
  xlab = "Date", 
  ylab = "Number of Passengers"
)

# Tambahkan grid agar lebih mudah dibaca
grid()

# Initialize a vector to store forecasts
forecasts <- numeric(14)

# Gunakan data training awal
updated_data <- training

# Iteratif forecast untuk 14 hari ke depan
for (i in 1:14) {
  # Fit ARDL model ke data yang telah diperbarui
  model <- ardlDlm(formula = Yt ~ Xt, data = updated_data, p = 1, q = 3)
  
  # Forecast untuk hari berikutnya
  next_forecast <- forecast(model = model, x = tail(updated_data$Xt, 1), h = 1)$forecasts
  
  # Simpan hasil forecast
  forecasts[i] <- next_forecast
  
  # Update data dengan forecast sebagai nilai terbaru
  new_row <- data.frame(Yt = next_forecast, Xt = tail(updated_data$Xt, 1)) # Xt dapat disesuaikan sesuai skenario
  updated_data <- rbind(updated_data, new_row)
}

# Buat vektor hari untuk plot
days <- 1:14

# Plot hasil forecast
plot(
  x = days, 
  y = forecasts, 
  type = "b",  # Menggunakan garis dan titik
  col = "blue",  # Warna garis biru
  pch = 16,  # Bentuk titik bulat
  xlab = "Hari", 
  ylab = "Number of Passengers",
)

# Tambahkan grid agar lebih mudah dibaca
grid()

Date =seq(from = as.Date("2023-01-01"), to = as.Date("2024-07-13"), by = "day")
length(Date)
## [1] 560
Forecast = c(data$Yt,  forecasts)
length(Forecast)
## [1] 560
# Extend the data frame
combined_data <- data.frame(Date, Forecast
)

ggplot(combined_data, aes(x = Date)) +
  geom_line(aes(y = Forecast), color = "black", size = 0.5) + # Garis prediksi hitam
  labs(
    x = "Date",
    y = "Number of Passengers"
  ) +
  theme_minimal(base_size = 15) + # Tema minimalis yang mirip
  theme(
    plot.title = element_text(hjust = 0.5), # Judul tengah dan tebal
    panel.grid.major = element_blank(), # Menghapus grid utama
    panel.grid.minor = element_blank()  # Menghapus grid minor
  )

# Extend the data frame
combined_data <- data.frame(
  Date = Date,
  Forecast = Forecast
)

# Panjang data aktual
actual_length <- length(data$Yt)

# Plot data aktual dan prediksi dengan warna berbeda
ggplot() +
  # Garis data aktual (hitam)
  geom_line(data = combined_data[1:actual_length, ], aes(x = Date, y = Forecast), color = "black", size = 0.5) +
  # Garis data prediksi (biru)
  geom_line(data = combined_data[(actual_length + 1):nrow(combined_data), ], aes(x = Date, y = Forecast), color = "blue", size = 0.5) +
  labs(
    x = "Date",
    y = "Number of Passengers",
    title = "Actual vs Forecasted Passenger Numbers"
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5), # Judul tengah
    panel.grid.major = element_blank(), # Menghapus grid utama
    panel.grid.minor = element_blank()  # Menghapus grid minor
  )

# Extend the data frame dengan label untuk Actual dan Forecast
combined_data <- data.frame(
  Date = Date,
  Value = Forecast,
  Type = c(rep("Actual", length(data$Yt)), rep("Forecast", length(forecasts)))
)

# Plot gabungan
ggplot(combined_data, aes(x = Date, y = Value, color = Type)) +
  geom_line(size = 0.5) + # Garis untuk masing-masing tipe
  labs(
    x = "Date",
    y = "Number of Passengers",
    title = "Actual vs Forecasted Passenger Numbers"
  ) +
  scale_color_manual(
    values = c("Actual" = "black", "Forecast" = "blue") # Hitam untuk Actual, Biru untuk Forecast
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5), # Judul tengah
    panel.grid.major = element_blank(), # Menghapus grid utama
    panel.grid.minor = element_blank()  # Menghapus grid minor
  )

# Panjang data aktual
actual_length <- length(data$Yt)

# Extend data frame untuk kompatibilitas plot
combined_data <- data.frame(
  Date = Date,
  Value = Forecast
)

# Plot data aktual (hitam) dan timpa dengan prediksi (biru)
ggplot(combined_data, aes(x = Date, y = Value)) +
  # Garis data aktual (hitam)
  geom_line(data = combined_data[1:actual_length, ], aes(x = Date, y = Value), color = "black", size = 0.5) +
  # Garis data prediksi (biru) menimpa garis hitam
  geom_line(data = combined_data[(actual_length + 1):nrow(combined_data), ], aes(x = Date, y = Value), color = "blue", size = 0.5) +
  labs(
    x = "Date",
    y = "Number of Passengers",
    title = "Actual vs Forecasted Passenger Numbers"
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5), # Judul tengah
    panel.grid.major = element_blank(), # Menghapus grid utama
    panel.grid.minor = element_blank()  # Menghapus grid minor
  )

# Extend data frame dengan prediksi dan actual yang terhubung
combined_data <- data.frame(
  Date = Date,
  Value = Forecast,
  Type = c(rep("Actual", length(data$Yt)), rep("Forecast", length(forecasts)))
)

# Gabungkan data terakhir dari aktual ke prediksi
connection_point <- data.frame(
  Date = Date[length(data$Yt)],
  Value = Forecast[length(data$Yt)],
  Type = "Forecast"
)

# Tambahkan connection_point ke data prediksi
connected_data <- rbind(combined_data, connection_point)

# Plot data
ggplot() +
  # Garis data aktual (hitam)
  geom_line(data = combined_data[combined_data$Type == "Actual", ], 
            aes(x = Date, y = Value), color = "black", size = 0.5) +
  # Garis data prediksi (biru), termasuk connection_point
  geom_line(data = connected_data[connected_data$Type == "Forecast", ], 
            aes(x = Date, y = Value), color = "blue", size = 0.5) +
  labs(
    x = "Date",
    y = "Number of Passengers",
    title = "Actual vs Forecasted Passenger Numbers (Connected)"
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5), # Judul tengah
    panel.grid.major = element_blank(), # Menghapus grid utama
    panel.grid.minor = element_blank()  # Menghapus grid minor
  )

library(ggplot2)

# Konversi kolom Date menjadi tipe Date
combined_data$Date <- as.Date(combined_data$Date)
connected_data$Date <- as.Date(connected_data$Date)

# Plot data dengan sumbu x diformat
ggplot() +
  # Garis data aktual (hitam)
  geom_line(data = combined_data[combined_data$Type == "Actual", ], 
            aes(x = Date, y = Value), color = "black", size = 0.5) +
  # Garis data prediksi (biru), termasuk connection_point
  geom_line(data = connected_data[connected_data$Type == "Forecast", ], 
            aes(x = Date, y = Value), color = "blue", size = 0.5) +
  labs(
    x = "Date",
    y = "Number of Passengers",
    title = "Actual vs Forecasted Passenger Numbers (Connected)"
  ) +
  scale_x_date(
    date_labels = "%b %Y", # Format label sumbu x
    date_breaks = "1 month" # Jarak antar label
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(hjust = 0.5), # Judul tengah
    panel.grid.major = element_blank(), # Menghapus grid utama
    panel.grid.minor = element_blank()  # Menghapus grid minor
  )