Analisis Forecasting Data Time Series Pada Data Harian Sicepat
Forecasting Data Time Series
Penjelasan Time Series
Forecasting adalah suatu metode yang digunakan untuk perencanaan yang efektif dan efisien terhadap ketidakpastian masa depan. Data time series adalah data yang direkam pada interval waktu tertentu secara konsisten. Data time series dapat menunjukkan bagaimana perubahan pada variabel dari waktu ke waktu. Adapun frekuensi yang waktu yang membentuk data time series dapat berupa tahun, kuartal, bulan, hari, jam, menit, ataupun detik. Asalkan data tersebut terurut dan tersimpan dalam urutan waktu, maka data tersebut merupakan data time series. Perbedaan paling dasar antara time series dengan regresi yaitu, pada regresi untuk memprediksi suatu nilai Y dipengaruhi oleh faktor-faktor seperti x1,x2,..,xn. Sementara pada time series, dalam memprediksi suatu nilai Y dipengaruhi oleh nilai Y itu sendiri pada masa lampau (Yt−1). Dalam mendeskripsikan data time series, kita bisa mendecompose data.
Dekomposisi Data Time Series
Dekomposisi digunakan untuk menguraikan komponen-komponen yang ada pada data time series. Jika pada hasil decompose, trend masih membetuk sebuah pola maka dapat dicurigai masih ada seasonality yang belum ditangkap. Seharusnya trend cenderung naik atau cendurung turun. Terdapat 4 teknik dalam mendecompose data time series, yaitu: 1. Base (level) yaitu nilai-nilai data apabila jika serial data diubah ke dalam satu garis lurus. 2. Trend yaitu kemiringan yang terbentuk dari data time series, dapat berupa penurunan atau kenaikan. 3. Seasonality yaitu pola unik yang terbentuk di suatu interval waktu berdasarkan pola/faktor musiman. seasonality dapat terjadi karena suatu bulan di setiap tahunnya, suatu hari di setiap bulannya, atau bahkan suatu jam di dalam satu hari. 4. Residual/Noise (Error) yaitu variasi dari data yang tidak dapat dijelaskan. Namun, tidak semua time series memiliki 4 unsur di atas. Terdapat pula data time series yang tidak memiliki pola musiman (seasonality) dan trend. Komponen-komponen yang membentuk data time series dapat mengungkapkan sifat trend/seasonality. Yaitu:
- Additive model yaitu setiap data yang ada merupakan total dari komponen yang ada, dan dirumuskan sebagai: y = base + trend + seasonality + reasidual
- Multiplicative model yaitu setiap pengamatan data adalah adalah multiple/perkalian dari komponen yang ada. Dirumuskan sebagai: y = base x trend x seasonality x residual Time series data adalah tipe data yang memerlukan gabungan analisis menggunakan gambar. Oleh karena itu sewaktu kita memilih model time series (untuk analisis ataupun prediksi), kita perlu memplot data tersebut untuk mendapatkan pola kasar dari data yang ada.
Teks alternatif
Teks alternatif
Karakteristik Data Time Series
Syarat yang harus dipenuhi sebelum melakukan forecasting data time series, yaitu:
- Data harus terurut berdasarkan periode waktu
- Tidak boleh ada waktu atau periode yang terlewat/kosong
- Data tidak boleh ada yang null/missing
Jika terdapat waktu yang kosong/data yang null, maka data time series harus ditangani terlebih dahulu sebelum masuk ke pemodelan.
Membentuk Object Time Series
Membentuk data time series di R dapat dilakukan dengan menggunakan
fungsi ts() dengan parameter sebagai berikut:
ts(data,start,frequency)
datayaitu data yang akan dimodelkan/diprediksistartyaitu awal periode data yang akan dimodelkanfrequencyyaitu pola berulang dari data
Frekuensi dari data time series, dapat berupa: - data jam -> pola harian -> freq = 24 - data harian -> pola mingguan -> freq = 7 - data harian -> pola weekday -> freq = 5 - data jam -> pola mingguan -> freq = 247 - data bulanan -> pola tahunan -> freq = 12 - data bulanan -> pola kuartalan -> freq = 124 - data tahunan -> pola tahunan -> freq = 1
Teks alternatif
Pemodelan Time Series
Persiapan Data
data <- read.csv("D:/R/Time Series/Data Revenue & Package 2019-2022.csv", header = TRUE)
data_test <- read.csv("D:/R/Time Series/Data Testing Revenue & Package 2023.csv", header = TRUE)
head(data)## periode volume berat revenue
## 1 2019-01-01 6977 9944 170791867
## 2 2019-01-02 84942 107525 1871073643
## 3 2019-01-03 88100 113901 2010054726
## 4 2019-01-04 78848 104473 1885235390
## 5 2019-01-05 58016 78511 1471371663
## 6 2019-01-06 12541 15967 287919254
Terdapat 4 variabel dari data tersebut, yang terdiri dari variable
periode, volume, berat,
revenue. Namun pada pemodelan ini hanya akan digunakan
variable periode dan volume. Data yang
digunakan adalah data Volume Sicepat selama 4,1 tahun periode 01 Januari
2019 - 12 Januari 2023. Pertama, perlu dicek terlebih dahulu apakah
terdapat null pada variable volume dan tanggal yang kosong
pada variable periode.
data <- data %>%
mutate(date = ymd(periode))
range(data$date)## [1] "2019-01-01" "2023-01-12"
colSums(is.na(data))## periode volume berat revenue date
## 0 0 0 0 0
Hasil pengecekan menunjukan tidak terdapat NA pada data, dan tidak terdapat data dengan tanggal yang hilang. Sehingga data sudah memenuhi persayaratan dan dapat dilakukan pemodelan.
Pembentukan Data Time Series
Data yang akan dimodelkan terlebih dahulu harus diubah menjadi data dengan tipe time series.
# Membuat Data Time Series
volume_ts <- ts(data[,2], start = c(2019,1), frequency = 365)
volume_ts## Time Series:
## Start = c(2019, 1)
## End = c(2023, 9)
## Frequency = 365
## [1] 6977 84942 88100 78848 58016 12541 100160 83468 81068
## [10] 80450 74765 54728 11900 97486 84253 81269 80485 77976
## [19] 59595 10790 102764 91940 88321 83542 84689 62771 13867
## [28] 118678 97777 92492 87372 90727 68546 14891 116401 35375
## [37] 113507 98413 92473 69727 13762 127853 103463 95642 89724
## [46] 86388 64926 12187 116945 96469 88006 94530 83555 61969
## [55] 11963 114561 100399 98662 102777 102611 73013 12486 133697
## [64] 100998 92470 40279 115116 68397 13930 118701 94989 87292
## [73] 86636 83434 57334 10462 100362 84306 82114 79257 80141
## [82] 57758 10743 107600 89504 89871 94369 90542 65079 14256
## [91] 115703 102945 37030 123802 95866 67091 13159 123205 106367
## [100] 93989 94791 94791 68959 15671 125822 100686 20901 111530
## [109] 39891 81027 14326 123136 98675 97933 101359 100794 76941
## [118] 16840 144739 122295 45664 138251 114513 83706 19859 145957
## [127] 130240 134659 132134 137440 103237 31228 183795 151670 145972
## [136] 148130 173089 148037 41935 200706 169432 140283 168824 189594
## [145] 179448 67777 248281 207936 179075 113784 125536 52252 25420
## [154] 29383 14831 2512 5065 11866 16547 12535 88144 82327
## [163] 85978 86811 88384 71621 19122 142782 123080 115297 112625
## [172] 107831 86607 20546 165653 135831 143803 135683 125897 94038
## [181] 24092 171666 152952 147306 139865 129792 105803 28830 209770
## [190] 160461 150618 144197 143262 111054 25264 199446 155362 159042
## [199] 156631 147109 111777 26476 206794 157980 155292 154069 157753
## [208] 120715 27901 228660 181020 178055 184316 170865 132731 19102
## [217] 200182 183043 184006 193857 200328 140930 19477 220616 178180
## [226] 178427 172109 165099 56424 40452 293432 198469 176552 178410
## [235] 166749 125866 29475 257099 206453 198491 199049 199339 149561
## [244] 42466 285006 239398 223366 214875 192017 155441 36593 308560
## [253] 285427 248031 218704 193980 141364 33346 268145 208102 194030
## [262] 192227 190347 140120 34133 256621 198673 190979 189121 192630
## [271] 163034 45118 291797 240473 243232 236803 231300 173854 39443
## [280] 294300 229149 216680 265285 283935 196042 49435 308266 234409
## [289] 226631 212703 203292 162748 38228 303435 230902 211536 206320
## [298] 201098 179886 45133 353321 283083 286561 291029 276610 223634
## [307] 65309 416000 319552 310243 287047 270932 131401 63410 515525
## [316] 455045 344890 292547 263451 203668 48115 377619 281842 261370
## [325] 256344 238183 186207 43794 354673 295909 284885 279012 266672
## [334] 216303 58859 435112 341456 325399 308092 293664 238151 65572
## [343] 434031 338992 321375 532326 567470 372529 106441 466646 342447
## [352] 328601 300676 289658 236424 52497 402458 286177 105622 374971
## [361] 280385 244836 69399 373207 201418 33892 297430 314493 268185
## [370] 81364 457886 363439 322449 313095 303643 256561 66048 449597
## [379] 337501 309522 293682 288113 233991 57484 406616 319565 297219
## [388] 278276 261523 95894 73403 489141 372630 339366 318909 299144
## [397] 245768 79260 511174 368442 314985 340966 293217 223135 58551
## [406] 400017 338752 283054 262424 254769 194729 49380 365530 340480
## [415] 331686 307558 266173 207552 52631 389037 253838 329534 313311
## [424] 319264 256943 80322 518017 444911 442397 384943 347199 270874
## [433] 59531 483289 354138 347330 333325 322849 261334 75163 452734
## [442] 349057 334788 317442 322637 283584 83940 434535 348213 185135
## [451] 410721 370011 352261 113424 483465 367058 375375 368599 364919
## [460] 377562 142237 579417 436946 407679 397330 218311 437235 140094
## [469] 580983 455233 420606 398327 426034 374819 174418 546231 396166
## [478] 394713 379598 374305 363520 138665 608964 492897 469550 457833
## [487] 315621 527444 172012 696324 629698 650461 413863 624566 483779
## [496] 187997 809654 737866 638374 559126 593981 586605 235844 650501
## [505] 360700 260993 41799 32 3 376772 436841 450710 453962
## [514] 405042 152360 420704 634735 526092 494425 462471 634122 322478
## [523] 935423 665764 529337 486879 462184 397471 130647 641777 491441
## [532] 475585 457551 434765 381656 125590 621024 493999 461865 471305
## [541] 477866 427926 145818 691228 567827 569614 569752 544036 469710
## [550] 157083 735307 750531 754525 570852 514523 409921 129946 652992
## [559] 488984 460878 447443 429469 375510 130653 646362 475053 460949
## [568] 446404 435224 407872 154220 742100 631783 551857 529333 127646
## [577] 530591 156453 729158 566836 530040 477847 469937 486606 239383
## [586] 712022 575079 515930 511368 515871 449491 168653 370285 1060985
## [595] 720610 356316 658165 514728 173486 765451 684908 733474 657410
## [604] 657424 569145 200641 959600 791333 756073 703888 660387 561067
## [613] 201087 926025 730085 1055623 1167378 833189 606759 222713 851110
## [622] 682408 597141 550460 524634 456840 162613 739036 682810 634795
## [631] 594779 642809 615187 215770 1020911 842959 759422 738036 710903
## [640] 622317 231295 999520 784533 662832 577403 561022 706547 420650
## [649] 1034254 824007 728260 703958 693947 579282 212565 879160 713697
## [658] 682613 645404 595314 535680 248642 1000639 790738 738975 431411
## [667] 779685 607870 263238 941541 802319 758198 708950 676645 563237
## [676] 235921 881900 747683 1233426 1273118 851716 614101 254743 791579
## [685] 680055 632868 586653 557740 479219 203342 736741 656115 780884
## [694] 893330 724665 608192 262970 898254 794137 771677 746921 708496
## [703] 609621 281390 935254 806779 602980 778673 720742 1101739 895761
## [712] 1429174 1076055 944409 869737 803425 696093 307655 991244 848674
## [721] 789363 717816 421700 861145 352587 1037204 834262 757784 561891
## [730] 295356 975577 499267 1146288 950224 841867 797463 736725 635399
## [739] 303456 910933 812022 757813 717043 668372 581688 266651 844259
## [748] 744147 684104 650520 617262 540546 247270 864367 895022 796928
## [757] 730643 698813 613690 305719 925061 1048770 1214752 1032055 896867
## [766] 771929 355575 1120578 922310 758054 681918 358907 642541 308079
## [775] 912396 782985 739342 688078 640928 541555 265355 808547 742681
## [784] 693315 776497 879305 728950 352478 980479 920067 1064080 1103872
## [793] 941840 730930 357397 956739 872744 1297731 585693 980133 801272
## [802] 345061 1096289 986318 1015362 961785 905227 808509 344393 1195380
## [811] 967016 891502 959626 1006826 858287 365698 1276752 1075767 990304
## [820] 1004143 632286 1006198 682565 1907280 1471995 1190687 1025010 838756
## [829] 682404 280495 1027459 884693 900316 925437 906740 858149 407522
## [838] 1247149 1049735 950900 966121 1297264 1264089 479548 1307328 994483
## [847] 971919 969225 1179952 994836 580808 1549001 1300333 1663487 1796700
## [856] 1284632 1020410 486620 747305 169679 375 185427 214146 882596
## [865] 980515 1004593 976225 936562 822134 343901 1228799 1298009 907914
## [874] 1314877 1057727 907305 387541 1376045 747425 1177818 1005267 906495
## [883] 811823 718398 2083475 1468825 1113648 977444 893810 779627 312908
## [892] 1202388 991622 924885 885985 854243 770644 323296 1204929 979397
## [901] 919557 918969 1086595 1109492 463293 1292347 1032444 944357 1003876
## [910] 1023235 950621 466310 1370569 1140241 1511773 1607922 1271282 1046480
## [919] 485488 1335983 1111774 1055640 1004176 968068 888201 403484 1251373
## [928] 361661 1192722 967558 955746 896036 542434 1780158 1387680 1254763
## [937] 1132430 1101227 1013616 474444 1555471 1273476 1225239 1138438 1106695
## [946] 1022416 820475 2092926 1436549 918956 1520310 1276765 1091220 488643
## [955] 1452884 820497 1917608 1351770 1106087 985330 462604 1414111 1142851
## [964] 1293423 1452943 1111455 980006 470183 1443675 1234856 1236202 1229140
## [973] 1177996 1066321 533733 1484270 1293998 1140350 1720961 2262447 1595566
## [982] 688443 1476640 1215108 1055764 935569 863549 764652 352646 1055997
## [991] 827863 766933 714772 714910 802817 407304 1112268 856904 798707
## [1000] 765182 785140 834926 397102 1280669 1108685 1124492 1083719 1012679
## [1009] 863772 988221 2855074 2233044 1614965 1271757 1032425 841564 386753
## [1018] 1259832 1209846 734062 1131000 997144 851612 389665 1459769 1577478
## [1027] 1285069 1168725 1116403 970752 482061 1482688 1412909 1344744 1230958
## [1036] 1102714 942751 435667 1438671 1302261 1247890 2199741 2737430 1904688
## [1045] 816557 1542459 1280894 1138476 1069009 972335 862595 378600 1304898
## [1054] 1169321 1063613 1362095 1583737 1161636 519517 1629261 1397570 1279053
## [1063] 1123533 1002918 892441 368694 1285181 1217111 1032982 1049287 1108843
## [1072] 958747 1257984 2866347 2012707 1428141 1179481 1067390 927924 396965
## [1081] 1459055 1463272 1195444 1054098 960756 625687 567634 1822898 1425671
## [1090] 1148449 1085064 882334 540246 923880 2415893 1726081 1451365 1272631
## [1099] 1164157 1022667 421160 1681813 1391540 1260913 1182525 1066224 948329
## [1108] 393650 1573839 1186284 1065489 988366 892157 766749 325940 1229123
## [1117] 1333696 1406324 1167066 1018831 893348 413787 1384040 597902 1933184
## [1126] 1976083 1390536 1111800 494486 1584800 1268462 1213386 1223979 1161297
## [1135] 1025836 453766 1506816 1154819 1049932 1115868 1061161 956140 434286
## [1144] 1436906 1150085 1037847 1002591 1252733 1339851 597542 1097265 1656755
## [1153] 1304747 1225374 2086704 1377464 571159 1584544 1271782 1212212 1192617
## [1162] 1134684 991213 429837 1429205 1465431 1531519 1190573 966984 805395
## [1171] 330993 1204719 926190 918744 891675 1157275 1152096 488264 1444390
## [1180] 1074039 949948 938893 1114893 1046744 565182 2118964 2327167 1785661
## [1189] 1469411 1318898 1281063 707541 1791705 1580338 1463771 1353286 968496
## [1198] 1325783 658135 1704310 1548003 1769799 1799431 1440983 1303917 760207
## [1207] 2125111 1901126 1448882 1031088 644707 332951 101 49 1089
## [1216] 636929 960428 1272981 1111606 596139 1622097 1521775 1361682 1280618
## [1225] 1129210 908179 406592 847848 1365091 1254484 1091869 1025738 871283
## [1234] 420737 1305630 1140436 1415945 1058348 1446222 1138970 586566 1480800
## [1243] 1217182 749153 1227989 1069017 940800 473755 1814384 1968260 1551863
## [1252] 1207028 1130042 1005547 481723 1432373 1200816 1109742 1012743 948337
## [1261] 834408 383933 1277148 1124053 1020485 955206 898761 1115565 610698
## [1270] 1645647 1350407 1151868 1092409 1078460 926387 429296 1347226 1153283
## [1279] 1052858 1546437 1593051 964268 330376 1442770 1199560 1064534 960550
## [1288] 897645 782376 355946 1229844 1038676 942445 885975 826363 731518
## [1297] 330083 1405057 1292264 1034273 934155 910864 596895 382410 1436959
## [1306] 1175705 1074393 1008049 863181 804611 392344 1702147 1743448 1297191
## [1315] 1055749 927818 810261 357266 1174766 960890 484632 1348905 996840
## [1324] 753556 337041 1148665 944412 857058 1093168 1145046 891877 396890
## [1333] 1324236 1074295 980716 1002356 949182 782275 344931 1216781 1024612
## [1342] 906053 881980 1476555 1544580 634873 1463255 1083965 944619 863514
## [1351] 818538 711351 300588 1144445 876144 797693 743988 719104 661884
## [1360] 389332 1391123 1130636 1055095 975687 903591 788783 330245 1157734
## [1369] 915260 863978 782472 742173 487453 351077 1620735 1539816 1110807
## [1378] 909793 753869 621130 264736 1041173 831828 768613 743101 682869
## [1387] 585866 242023 979250 962507 965345 876658 797351 689104 301272
## [1396] 1138353 915147 794692 725172 677595 605226 253970 984420 773405
## [1405] 769177 761287 1110330 1061889 386990 1037747 761875 695665 633968
## [1414] 573818 495505 201424 813853 631748 588341 555523 695093 687018
## [1423] 290269 1023437 834355 773981 756184 763572 650713 290657 1054729
## [1432] 870612 796187 675026 672990 606972 249059 1358276 1238655 880731
## [1441] 673929 572577 482464 171566 753151 570820 533562 502364 497000
## [1450] 433156 190734 930048 761210 653428 596132 518991 351566 143666
## [1459] 1021083 857401 708520 655426 600668 505451 196722 852717 709323
## [1468] 654272 616674
data_test_ts <- ts(data_test[,1], start = c(2023,1), frequency = 365) # frequency yang digunakan adalah 365 karena akan digunakan forecasting data harian untuk melihat pola data dalam tahunan
data_test_ts## Time Series:
## Start = c(2023, 1)
## End = c(2023, 12)
## Frequency = 365
## [1] 1/1/2023 1/2/2023 1/3/2023 1/4/2023 1/5/2023 1/6/2023 1/7/2023
## [8] 1/8/2023 1/9/2023 1/10/2023 1/11/2023 1/12/2023
Cek Dekomposisi Data
Pertama akan dilakukan drop pada kolom yang tidak digunakan.
# Menghapus kolom revenue dan berat
data_clean <- within(data, {
berat <- NULL
revenue <- NULL
})
data_clean <- data_clean %>%
mutate(date = ymd(periode))
data_clean <- data_clean[,-1]
range(data_clean$date)## [1] "2019-01-01" "2023-01-12"
summary(data_clean$volume)## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3 240473 600668 656237 990304 2866347
sd(data_clean$volume)## [1] 476923.6
Selanjutnya adalah pembagian data training dan testing. Data training yang digunakan merupakan data 3 tahun 11 bulan. Sementara data bulan Desember sampai 12 Januari 2023 akan digunakan sebagai data testing.
# Membagi Data Training dan Data Testing
data_train <- head(volume_ts, 1426)
data_test <- tail(volume_ts, length(volume_ts)-length(data_train))
# Dekomposisi Time Series
data_train%>% decompose() %>% autoplot()
Dari hasil dekomposisi diketahui bahwa data memiliki pola additive dan
musiman. Metode peramalan deret waktu yang akan digunakan berdasarkan
pola data tersebut adalah Holt’s Winters Exponential (Triple Exponential
Smoothing) dan Seasonal Arima. Selain dengan kedua pemodelan tersebut,
akan pula diuji menggunakan pemodelan STLM (Seasonal Trend with Loess
Model).
Pemodelan
Holt’s Winters Exponential (Triple Exponential Smoothing)
Metode Holt’s Winters Exponential (Triple Exponential Smoothing) disebut sebagai metode forecasting yang tepat digunakan untuk data yang memiliki efek trend dan seasonal.
# Pemodelan Holt's Winter Exponential
model_hoW <- HoltWinters(data_train)# Evaluasi Model
model_how_forecast <- forecast(object = model_hoW, h = 43)
volume_ts %>% autoplot(series = "data_train")+
autolayer(data_test, series = "data_test") +
autolayer(model_how_forecast$mean, series = "forecast")accuracy(model_how_forecast$mean, x = data_test)## ME RMSE MAE MPE MAPE ACF1 Theil's U
## Test set -5740.13 202983.1 161562.1 -18.35968 35.08705 0.2321578 0.4624416
Seasonal ARIMA (SARIMA)
Sebelum dilakukan pemodelan menggunakan seasoanal Arima, perlu dilakukan pengujian untuk mengetahui kestasioneran data. Adapun hipotesis yang diberikan adalah:
H0 : data tidak stasioner H1 : data stasioner
# Cek Kestasioneran Data
acf(data_train,lag.max = 2000)#Cek kestasioneran data dengan ADF-Test dengan hipotesis sebagai berikut:
#H0 : Data tidak stasioner
#H1 : Data stasioner
adf.test(data_train) ##
## Augmented Dickey-Fuller Test
##
## data: data_train
## Dickey-Fuller = -5.946, Lag order = 11, p-value = 0.01
## alternative hypothesis: stationary
Hasil menunjukkan bahwa P−value hasil uji ADF-Test lebih kecil dari alpha=0.05, sehingga terima H0. Artinya, pada taraf nyata 5% cukup bukti untuk menyatakan bahwa data yang digunakan telah stasioner.
tsdisplay(data_train, lag.max = 36)
Fungsi tsdisplay digunakan untuk menentukan kemungkinan ordo ARIMA yang
dapat dibentuk, dimana: - tails off: garis saat lag ke-1 mengalami
penurunan yang lambat. - cuts off lag: garis saat lag ke-1 mengalami
penurunan yang cepat. Namun penentuan ordo ARIMA juga dapat dilakukan
dengan
auto.arima. Parameter yang dibutuhkan adalah peubah
yang digunakan untk pemodelan (y) dan tipe pemodelan yang digunakan,
Seasonal = TRUE untuk seasonal ARIMA.
# Model Arima
model_arima_auto <- auto.arima(y = data_train, seasonal = TRUE)
model_arima_auto## Series: data_train
## ARIMA(5,1,2) with drift
##
## Coefficients:
## ar1 ar2 ar3 ar4 ar5 ma1 ma2 drift
## -0.5371 0.2001 0.0123 -0.0938 0.1360 -0.1019 -0.8463 509.2655
## s.e. 0.0301 0.0310 0.0310 0.0307 0.0277 0.0155 0.0146 294.4678
##
## sigma^2 = 7.214e+10: log likelihood = -19833.38
## AIC=39684.75 AICc=39684.88 BIC=39732.11
Model Arima yang sesuai digunakan berdasarkan auto.arima adalah ARIMA(5,1,2)
arima_auto_forecast <- forecast(object = model_arima_auto, h = 43)
plot(arima_auto_forecast)volume_ts %>% autoplot(series = "Data Train")+
autolayer(data_test, series = "Data Test") +
autolayer(arima_auto_forecast$mean, series = "forecast")accuracy(arima_auto_forecast$mean, x = data_test)## ME RMSE MAE MPE MAPE ACF1 Theil's U
## Test set -152191 302428.8 244607.9 -59.85775 68.32563 0.2024243 0.4601618
Seasonal Trend with Loess Model (SLTM)
STL secara konsep akan melakukan smoothing terhadap data tetangga setiap masing-masing observasi dengan memberikan bobot yang lebih berat terhadap data yang dekat dengan observed data. Kekurangan dari STL hanya bisa melakukan decompose pada additive data, apabila terdapat multiplicative data dapat menggunakan transformasi log()[^12].
Untuk memodelkan hasil STL, kita bisa menerapkan STLM(Seasonal Trend with Loess Model) dimana kita bisa menerapkan metode exponential smoothing (ETS) dan ARIMA. Selain itu, STLM dapat digunakan sebagai alternative cara untuk menangkap seasonal yang belum bisa ditangkap oleh metode ETS dan ARIMA biasa.
# Model STLM
model_stlm <- stlm(y = data_train, s.window = 43, method = "ets")model_stlm_forecast <- forecast(model_stlm, h = 43)
volume_ts %>% autoplot(series = "Data Training")+
autolayer(data_test, series = "Data Testing") +
autolayer(model_stlm_forecast$mean, series = "forecast")accuracy(model_stlm_forecast$mean, x = data_test)## ME RMSE MAE MPE MAPE ACF1 Theil's U
## Test set -103697.3 268814.9 226974.1 -40.07887 52.79543 -0.009535782 0.5291987
Model Terbaik
Pemilihan model terbaik didasarkan pada akurasi. Akurasi yang digunakan adalah MAPE (Mean Absolut Percentage Error) dan RMSE (Root Mean Squared Error). RMSE dan MAPE sama-sama bagus. Alasan digunakan RMSE adalah karena RMSE lebih sensitif pada data pencilan (amatan yang nilainya jauh dari rata-rata) Alasan RMSE Lebih Baik dari MAE. Sementara itu, MAPE memberikan nilai presentase sehingga lebih mudah untuk diinterpretasikan Alasan RMSE dan MAPE bagus. Model yang memberikan nilai RMSE dan MAPE terkecil adalah model Holt’s Winters Exponential.
Hasil <- data.frame(
Forecast = model_how_forecast$mean,
Volume_Real = data_test
)
Selisih = with(Hasil, Volume_Real - Forecast)
Hasil_Forecast <- data.frame(Hasil, Selisih)
Hasil_Forecast## Forecast Volume_Real Selisih
## 1 673994.6 756184 82189.426
## 2 718787.1 763572 44784.941
## 3 647451.4 650713 3261.575
## 4 509398.0 290657 -218740.978
## 5 699605.1 1054729 355123.932
## 6 758801.8 870612 111810.241
## 7 720744.3 796187 75442.745
## 8 636086.5 675026 38939.489
## 9 706891.9 672990 -33901.871
## 10 654061.5 606972 -47089.506
## 11 476235.3 249059 -227176.320
## 12 806146.8 1358276 552129.170
## 13 960996.6 1238655 277658.377
## 14 863278.1 880731 17452.865
## 15 899705.9 673929 -225776.882
## 16 952378.0 572577 -379801.035
## 17 745461.5 482464 -262997.473
## 18 510638.3 171566 -339072.284
## 19 681743.8 753151 71407.246
## 20 736597.7 570820 -165777.740
## 21 709345.2 533562 -175783.241
## 22 597199.0 502364 -94834.982
## 23 651291.9 497000 -154291.946
## 24 576698.6 433156 -143542.573
## 25 382332.4 190734 -191598.354
## 26 616249.8 930048 313798.150
## 27 676053.5 761210 85156.454
## 28 536319.5 653428 117108.471
## 29 623446.7 596132 -27314.747
## 30 628470.4 518991 -109479.431
## 31 542964.3 351566 -191398.272
## 32 351727.6 143666 -208061.629
## 33 601135.3 1021083 419947.689
## 34 657879.7 857401 199521.347
## 35 529985.5 708520 178534.523
## 36 615819.8 655426 39606.151
## 37 679137.1 600668 -78469.136
## 38 599736.7 505451 -94285.693
## 39 424326.7 196722 -227604.700
## 40 600018.3 852717 252698.732
## 41 706011.9 709323 3311.100
## 42 616069.1 654272 38202.856
## 43 544586.3 616674 72087.715
Berdasarkan hasil