Packages yang diperlukan

library("forecast")
## Warning: package 'forecast' was built under R version 4.3.3
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library("graphics")
library("TTR")
## Warning: package 'TTR' was built under R version 4.3.3
library("TSA")
## Warning: package 'TSA' was built under R version 4.3.3
## Registered S3 methods overwritten by 'TSA':
##   method       from    
##   fitted.Arima forecast
##   plot.Arima   forecast
## 
## Attaching package: 'TSA'
## The following objects are masked from 'package:stats':
## 
##     acf, arima
## The following object is masked from 'package:utils':
## 
##     tar

Import Data

library(rio)
Penumpang <- read.csv("C:\\## SEMESTER 5 IPB UNIVERSITY\\## MATA KULIAH\\METODE PERAMAL DERET WAKTU [MPDW]\\TUGAS\\Pertemuan 2\\Data Jumlah Penumpang Transjakarta Harian Tahun 2023-2024.csv", sep=";")
Penumpang
##     periode_data Jumlah_Penumpang tanggal Periode
## 1         202311          1118527      24       1
## 2         202311           698469      25       2
## 3         202311           642518      26       3
## 4         202311          1147858      27       4
## 5         202311          1153413      28       5
## 6         202311          1158450      29       6
## 7         202311          1140648      30       7
## 8         202312          1127659       1       8
## 9         202312           769649       2       9
## 10        202312           662120       3      10
## 11        202312          1149169       4      11
## 12        202312          1174098       5      12
## 13        202312          1167902       6      13
## 14        202312          1164122       7      14
## 15        202312          1123681       8      15
## 16        202312           781721       9      16
## 17        202312           674405      10      17
## 18        202312          1151083      11      18
## 19        202312          1156065      12      19
## 20        202312          1151501      13      20
## 21        202312          1143117      14      21
## 22        202312          1131174      15      22
## 23        202312           758456      16      23
## 24        202312           680941      17      24
## 25        202312          1083773      18      25
## 26        202312          1081461      19      26
## 27        202312          1089583      20      27
## 28        202312          1070707      21      28
## 29        202312          1027720      22      29
## 30        202312           749305      23      30
## 31        202312           708769      24      31
## 32        202312           609034      25      32
## 33        202312           735852      26      33
## 34        202312          1012112      27      34
## 35        202312          1010097      28      35
## 36        202312           974703      29      36
## 37        202312           748326      30      37
## 38        202312           660343      31      38
## 39        202401           632778       1      39
## 40        202401          1045214       2      40
## 41        202401          1041663       3      41
## 42        202401          1097752       4      42
## 43        202401          1105303       5      43
## 44        202401           716205       6      44
## 45        202401           624900       7      45
## 46        202401          1137742       8      46
## 47        202401          1150147       9      47
## 48        202401          1147436      10      48
## 49        202401          1125270      11      49
## 50        202401          1129099      12      50
## 51        202401           758105      13      51
## 52        202401           683688      14      52
## 53        202401          1154750      15      53
## 54        202401          1158105      16      54
## 55        202401          1131647      17      55
## 56        202401          1142880      18      56
## 57        202401          1066005      19      57
## 58        202401           781421      20      58
## 59        202401           651780      21      59
## 60        202401          1157462      22      60
## 61        202401          1165110      23      61
## 62        202401          1168437      24      62
## 63        202401          1152249      25      63
## 64        202401          1145915      26      64
## 65        202401           693411      27      65
## 66        202401           639808      28      66
## 67        202401          1114347      29      67
## 68        202401          1120316      30      68
## 69        202401          1095146      31      69
## 70        202402          1155322       1      70
## 71        202402          1152107       2      71
## 72        202402           801212       3      72
## 73        202402           670195       4      73
## 74        202402          1159398       5      74
## 75        202402          1168189       6      75
## 76        202402          1180123       7      76
## 77        202402           696518       8      77
## 78        202402           774403       9      78
## 79        202402           683082      10      79
## 80        202402           645873      11      80
## 81        202402          1147300      12      81
## 82        202402          1157441      13      82
## 83        202402           471864      14      83
## 84        202402          1111148      15      84
## 85        202402          1129816      16      85
## 86        202402           742067      17      86
## 87        202402           649062      18      87
## 88        202402          1173362      19      88
## 89        202402          1194157      20      89
## 90        202402          1200226      21      90
## 91        202402          1179609      22      91
## 92        202402          1172659      23      92
## 93        202402           769879      24      93
## 94        202402           667620      25      94
## 95        202402          1185213      26      95
## 96        202402          1197537      27      96
## 97        202402          1171695      28      97
## 98        202402          1099316      29      98
## 99        202403          1199898       1      99
## 100       202403           791038       2     100
## 101       202403           703924       3     101
## 102       202403          1209113       4     102
## 103       202403          1235499       5     103
## 104       202403          1235063       6     104
## 105       202403          1237464       7     105
## 106       202403          1221948       8     106
## 107       202403           747057       9     107
## 108       202403           704383      10     108
## 109       202403           593917      11     109

Eksplorasi Data

Melihat data menggunakan fungsi View(), struktur data menggunakan fungsi str(), dan dimensi data menggunakan fungsi dim().

View(Penumpang)
str(Penumpang)
## 'data.frame':    109 obs. of  4 variables:
##  $ periode_data    : int  202311 202311 202311 202311 202311 202311 202311 202312 202312 202312 ...
##  $ Jumlah_Penumpang: int  1118527 698469 642518 1147858 1153413 1158450 1140648 1127659 769649 662120 ...
##  $ tanggal         : int  24 25 26 27 28 29 30 1 2 3 ...
##  $ Periode         : int  1 2 3 4 5 6 7 8 9 10 ...
dim(Penumpang)
## [1] 109   4
Penumpang1 <- Penumpang[,-c(1,3)]
Penumpang1
##     Jumlah_Penumpang Periode
## 1            1118527       1
## 2             698469       2
## 3             642518       3
## 4            1147858       4
## 5            1153413       5
## 6            1158450       6
## 7            1140648       7
## 8            1127659       8
## 9             769649       9
## 10            662120      10
## 11           1149169      11
## 12           1174098      12
## 13           1167902      13
## 14           1164122      14
## 15           1123681      15
## 16            781721      16
## 17            674405      17
## 18           1151083      18
## 19           1156065      19
## 20           1151501      20
## 21           1143117      21
## 22           1131174      22
## 23            758456      23
## 24            680941      24
## 25           1083773      25
## 26           1081461      26
## 27           1089583      27
## 28           1070707      28
## 29           1027720      29
## 30            749305      30
## 31            708769      31
## 32            609034      32
## 33            735852      33
## 34           1012112      34
## 35           1010097      35
## 36            974703      36
## 37            748326      37
## 38            660343      38
## 39            632778      39
## 40           1045214      40
## 41           1041663      41
## 42           1097752      42
## 43           1105303      43
## 44            716205      44
## 45            624900      45
## 46           1137742      46
## 47           1150147      47
## 48           1147436      48
## 49           1125270      49
## 50           1129099      50
## 51            758105      51
## 52            683688      52
## 53           1154750      53
## 54           1158105      54
## 55           1131647      55
## 56           1142880      56
## 57           1066005      57
## 58            781421      58
## 59            651780      59
## 60           1157462      60
## 61           1165110      61
## 62           1168437      62
## 63           1152249      63
## 64           1145915      64
## 65            693411      65
## 66            639808      66
## 67           1114347      67
## 68           1120316      68
## 69           1095146      69
## 70           1155322      70
## 71           1152107      71
## 72            801212      72
## 73            670195      73
## 74           1159398      74
## 75           1168189      75
## 76           1180123      76
## 77            696518      77
## 78            774403      78
## 79            683082      79
## 80            645873      80
## 81           1147300      81
## 82           1157441      82
## 83            471864      83
## 84           1111148      84
## 85           1129816      85
## 86            742067      86
## 87            649062      87
## 88           1173362      88
## 89           1194157      89
## 90           1200226      90
## 91           1179609      91
## 92           1172659      92
## 93            769879      93
## 94            667620      94
## 95           1185213      95
## 96           1197537      96
## 97           1171695      97
## 98           1099316      98
## 99           1199898      99
## 100           791038     100
## 101           703924     101
## 102          1209113     102
## 103          1235499     103
## 104          1235063     104
## 105          1237464     105
## 106          1221948     106
## 107           747057     107
## 108           704383     108
## 109           593917     109

Mengubah data agar terbaca sebagai data deret waktu dengan fungsi ts() .

Penumpang1.ts <- ts(Penumpang1$Jumlah_Penumpang)
Penumpang1.ts
## Time Series:
## Start = 1 
## End = 109 
## Frequency = 1 
##   [1] 1118527  698469  642518 1147858 1153413 1158450 1140648 1127659  769649
##  [10]  662120 1149169 1174098 1167902 1164122 1123681  781721  674405 1151083
##  [19] 1156065 1151501 1143117 1131174  758456  680941 1083773 1081461 1089583
##  [28] 1070707 1027720  749305  708769  609034  735852 1012112 1010097  974703
##  [37]  748326  660343  632778 1045214 1041663 1097752 1105303  716205  624900
##  [46] 1137742 1150147 1147436 1125270 1129099  758105  683688 1154750 1158105
##  [55] 1131647 1142880 1066005  781421  651780 1157462 1165110 1168437 1152249
##  [64] 1145915  693411  639808 1114347 1120316 1095146 1155322 1152107  801212
##  [73]  670195 1159398 1168189 1180123  696518  774403  683082  645873 1147300
##  [82] 1157441  471864 1111148 1129816  742067  649062 1173362 1194157 1200226
##  [91] 1179609 1172659  769879  667620 1185213 1197537 1171695 1099316 1199898
## [100]  791038  703924 1209113 1235499 1235063 1237464 1221948  747057  704383
## [109]  593917

Ringkasan Data

summary(Penumpang1.ts)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  471864  747057 1111148  980810 1155322 1237464

Plot Data Deret Waktu

ts.plot(Penumpang1.ts, xlab="Time Periode", ylab="Jumlah Penumpang", 
        main = "Time Series Plot of Jumlah Penumpang")
points(Penumpang1.ts)

Single Moving Average & Double Moving Average

Pembagian Data

Pembagian data latih dan data uji dilakukan dengan perbandingan 80% data latih dan 20% data uji.Dalam penentuan data uji dan data latih, untuk mempotong datanya tidak boleh saat pola naik maupun pola turun

#membagi data latih dan data uji
training_ma1 <- Penumpang1[1:87,]
testing_ma1 <- Penumpang1[88:109,]
train_ma1.ts <- ts(training_ma1$Jumlah_Penumpang)
test_ma1.ts <- ts(testing_ma1$Jumlah_Penumpang)

Eksplorasi Data

Eksplorasi data dilakukan pada keseluruhan data, data latih serta data uji menggunakan plot data deret waktu.

#eksplorasi keseluruhan data
plot(Penumpang1.ts, col="red",main="Plot semua data")
points(Penumpang1.ts)

#eksplorasi data latih
plot(train_ma1.ts, col="blue",main="Plot data latih")
points(train_ma1.ts)

#eksplorasi data uji
plot(test_ma1.ts, col="blue",main="Plot data uji")
points(test_ma1.ts)

Eksplorasi data juga dapat dilakukan menggunakan package ggplot2 dengan terlebih dahulu memanggil library package ggplot2.

#Eksplorasi dengan GGPLOT
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.2
ggplot() + 
  geom_line(data = Penumpang1, aes(x =Periode, y =Jumlah_Penumpang, col = "Data Latih")) +
  geom_line(data = testing_ma1, aes(x =Periode, y =Jumlah_Penumpang, col = "Data Uji")) +
  labs(x = "Periode Waktu", y = "Jumlah Penumpang", color = "Legend") +
  scale_colour_manual(name="Keterangan:", breaks = c("Data Latih", "Data Uji"),
                      values = c("blue", "red")) + 
  theme_bw() + theme(legend.position = "bottom",
                     plot.caption = element_text(hjust=0.5, size=12))

Single Moving Average (SMA)

Ide dasar dari Single Moving Average (SMA) adalah data suatu periode dipengaruhi oleh data periode sebelumnya. Metode pemulusan ini cocok digunakan untuk pola data stasioner atau konstan. Prinsip dasar metode pemulusan ini adalah data pemulusan pada periode ke-t merupakan rata rata dari m buah data pada periode ke-t hingga periode ke (t-m+1). Data pemulusan pada periode ke-t selanjutnya digunakan sebagai nilai peramalan pada periode ke t+1

Pemulusan menggunakan metode SMA dilakukan dengan fungsi SMA(). Dalam hal ini akan dilakukan pemulusan dengan parameter m=3

data.sma1<-SMA(train_ma1.ts, n=3)
data.sma1
## Time Series:
## Start = 1 
## End = 87 
## Frequency = 1 
##  [1]        NA        NA  819838.0  829615.0  981263.0 1153240.3 1150837.0
##  [8] 1142252.3 1012652.0  853142.7  860312.7  995129.0 1163723.0 1168707.3
## [15] 1151901.7 1023174.7  859935.7  869069.7  993851.0 1152883.0 1150227.7
## [22] 1141930.7 1010915.7  856857.0  841056.7  948725.0 1084939.0 1080583.7
## [29] 1062670.0  949244.0  828598.0  689036.0  684551.7  785666.0  919353.7
## [36]  998970.7  911042.0  794457.3  680482.3  779445.0  906551.7 1061543.0
## [43] 1081572.7  973086.7  815469.3  826282.3  970929.7 1145108.3 1140951.0
## [50] 1133935.0 1004158.0  856964.0  865514.3  998847.7 1148167.3 1144210.7
## [57] 1113510.7  996768.7  833068.7  863554.3  991450.7 1163669.7 1161932.0
## [64] 1155533.7  997191.7  826378.0  815855.3  958157.0 1109936.3 1123594.7
## [71] 1134191.7 1036213.7  874504.7  876935.0  999260.7 1169236.7 1014943.3
## [78]  883681.3  718001.0  701119.3  825418.3  983538.0  925535.0  913484.3
## [85]  904276.0  994343.7  840315.0

Data pemulusan pada periode ke-t selanjutnya digunakan sebagai nilai peramalan pada periode ke t+1 sehingga hasil peramalan 1 periode kedepan adalah sebagai berikut.

data.ramal1<-c(NA,data.sma1)
data.ramal1 #forecast 1 periode ke depan
##  [1]        NA        NA        NA  819838.0  829615.0  981263.0 1153240.3
##  [8] 1150837.0 1142252.3 1012652.0  853142.7  860312.7  995129.0 1163723.0
## [15] 1168707.3 1151901.7 1023174.7  859935.7  869069.7  993851.0 1152883.0
## [22] 1150227.7 1141930.7 1010915.7  856857.0  841056.7  948725.0 1084939.0
## [29] 1080583.7 1062670.0  949244.0  828598.0  689036.0  684551.7  785666.0
## [36]  919353.7  998970.7  911042.0  794457.3  680482.3  779445.0  906551.7
## [43] 1061543.0 1081572.7  973086.7  815469.3  826282.3  970929.7 1145108.3
## [50] 1140951.0 1133935.0 1004158.0  856964.0  865514.3  998847.7 1148167.3
## [57] 1144210.7 1113510.7  996768.7  833068.7  863554.3  991450.7 1163669.7
## [64] 1161932.0 1155533.7  997191.7  826378.0  815855.3  958157.0 1109936.3
## [71] 1123594.7 1134191.7 1036213.7  874504.7  876935.0  999260.7 1169236.7
## [78] 1014943.3  883681.3  718001.0  701119.3  825418.3  983538.0  925535.0
## [85]  913484.3  904276.0  994343.7  840315.0

Selanjutnya akan dilakukan peramalan sejumlah data uji yaitu 24 periode. Pada metode SMA, hasil peramalan 24 periode ke depan akan bernilai sama dengan hasil peramalan 1 periode kedepan. Dalam hal ini akan dilakukan penggabungan data aktual train, data hasil pemulusan dan data hasil ramalan 15 periode kedepan.

data.gab1<-cbind(aktual=c(train_ma1.ts,rep(NA,24)),pemulusan=c(data.sma1,rep(NA,24)),ramalan=c(data.ramal1,rep(data.ramal1[length(data.ramal1)],23)))
data.gab1 #forecast 24 periode ke depan
##         aktual pemulusan   ramalan
##   [1,] 1118527        NA        NA
##   [2,]  698469        NA        NA
##   [3,]  642518  819838.0        NA
##   [4,] 1147858  829615.0  819838.0
##   [5,] 1153413  981263.0  829615.0
##   [6,] 1158450 1153240.3  981263.0
##   [7,] 1140648 1150837.0 1153240.3
##   [8,] 1127659 1142252.3 1150837.0
##   [9,]  769649 1012652.0 1142252.3
##  [10,]  662120  853142.7 1012652.0
##  [11,] 1149169  860312.7  853142.7
##  [12,] 1174098  995129.0  860312.7
##  [13,] 1167902 1163723.0  995129.0
##  [14,] 1164122 1168707.3 1163723.0
##  [15,] 1123681 1151901.7 1168707.3
##  [16,]  781721 1023174.7 1151901.7
##  [17,]  674405  859935.7 1023174.7
##  [18,] 1151083  869069.7  859935.7
##  [19,] 1156065  993851.0  869069.7
##  [20,] 1151501 1152883.0  993851.0
##  [21,] 1143117 1150227.7 1152883.0
##  [22,] 1131174 1141930.7 1150227.7
##  [23,]  758456 1010915.7 1141930.7
##  [24,]  680941  856857.0 1010915.7
##  [25,] 1083773  841056.7  856857.0
##  [26,] 1081461  948725.0  841056.7
##  [27,] 1089583 1084939.0  948725.0
##  [28,] 1070707 1080583.7 1084939.0
##  [29,] 1027720 1062670.0 1080583.7
##  [30,]  749305  949244.0 1062670.0
##  [31,]  708769  828598.0  949244.0
##  [32,]  609034  689036.0  828598.0
##  [33,]  735852  684551.7  689036.0
##  [34,] 1012112  785666.0  684551.7
##  [35,] 1010097  919353.7  785666.0
##  [36,]  974703  998970.7  919353.7
##  [37,]  748326  911042.0  998970.7
##  [38,]  660343  794457.3  911042.0
##  [39,]  632778  680482.3  794457.3
##  [40,] 1045214  779445.0  680482.3
##  [41,] 1041663  906551.7  779445.0
##  [42,] 1097752 1061543.0  906551.7
##  [43,] 1105303 1081572.7 1061543.0
##  [44,]  716205  973086.7 1081572.7
##  [45,]  624900  815469.3  973086.7
##  [46,] 1137742  826282.3  815469.3
##  [47,] 1150147  970929.7  826282.3
##  [48,] 1147436 1145108.3  970929.7
##  [49,] 1125270 1140951.0 1145108.3
##  [50,] 1129099 1133935.0 1140951.0
##  [51,]  758105 1004158.0 1133935.0
##  [52,]  683688  856964.0 1004158.0
##  [53,] 1154750  865514.3  856964.0
##  [54,] 1158105  998847.7  865514.3
##  [55,] 1131647 1148167.3  998847.7
##  [56,] 1142880 1144210.7 1148167.3
##  [57,] 1066005 1113510.7 1144210.7
##  [58,]  781421  996768.7 1113510.7
##  [59,]  651780  833068.7  996768.7
##  [60,] 1157462  863554.3  833068.7
##  [61,] 1165110  991450.7  863554.3
##  [62,] 1168437 1163669.7  991450.7
##  [63,] 1152249 1161932.0 1163669.7
##  [64,] 1145915 1155533.7 1161932.0
##  [65,]  693411  997191.7 1155533.7
##  [66,]  639808  826378.0  997191.7
##  [67,] 1114347  815855.3  826378.0
##  [68,] 1120316  958157.0  815855.3
##  [69,] 1095146 1109936.3  958157.0
##  [70,] 1155322 1123594.7 1109936.3
##  [71,] 1152107 1134191.7 1123594.7
##  [72,]  801212 1036213.7 1134191.7
##  [73,]  670195  874504.7 1036213.7
##  [74,] 1159398  876935.0  874504.7
##  [75,] 1168189  999260.7  876935.0
##  [76,] 1180123 1169236.7  999260.7
##  [77,]  696518 1014943.3 1169236.7
##  [78,]  774403  883681.3 1014943.3
##  [79,]  683082  718001.0  883681.3
##  [80,]  645873  701119.3  718001.0
##  [81,] 1147300  825418.3  701119.3
##  [82,] 1157441  983538.0  825418.3
##  [83,]  471864  925535.0  983538.0
##  [84,] 1111148  913484.3  925535.0
##  [85,] 1129816  904276.0  913484.3
##  [86,]  742067  994343.7  904276.0
##  [87,]  649062  840315.0  994343.7
##  [88,]      NA        NA  840315.0
##  [89,]      NA        NA  840315.0
##  [90,]      NA        NA  840315.0
##  [91,]      NA        NA  840315.0
##  [92,]      NA        NA  840315.0
##  [93,]      NA        NA  840315.0
##  [94,]      NA        NA  840315.0
##  [95,]      NA        NA  840315.0
##  [96,]      NA        NA  840315.0
##  [97,]      NA        NA  840315.0
##  [98,]      NA        NA  840315.0
##  [99,]      NA        NA  840315.0
## [100,]      NA        NA  840315.0
## [101,]      NA        NA  840315.0
## [102,]      NA        NA  840315.0
## [103,]      NA        NA  840315.0
## [104,]      NA        NA  840315.0
## [105,]      NA        NA  840315.0
## [106,]      NA        NA  840315.0
## [107,]      NA        NA  840315.0
## [108,]      NA        NA  840315.0
## [109,]      NA        NA  840315.0
## [110,]      NA        NA  840315.0
## [111,]      NA        NA  840315.0

Adapun plot data deret waktu dari hasil peramalan yang dilakukan adalah sebagai berikut.

ts.plot(Penumpang1.ts, xlab="Time Period ", ylab="Jumlah Penumpang", main= "SMA N=3 Data Jumlah Penumpang Transjakarta")
points(Penumpang1.ts)
lines(data.gab1[,2],col="yellow",lwd=2)
lines(data.gab1[,3],col="blue",lwd=2)
legend("topleft",c("data aktual","data pemulusan","data peramalan"), lty=8, col=c("black","yellow","blue"), cex=0.5)

Selanjutnya perhitungan akurasi dilakukan dengan ukuran akurasi Sum Squares Error (SSE), Mean Square Error (MSE) dan Mean Absolute Percentage Error (MAPE). Perhitungan akurasi dilakukan baik pada data latih maupun pada data uji.

#Menghitung nilai keakuratan data latih
error_train.sma1 = train_ma1.ts-data.ramal1[1:length(train_ma1.ts)]
SSE_train.sma1 = sum(error_train.sma1[5:length(train_ma1.ts)]^2)
MSE_train.sma1 = mean(error_train.sma1[5:length(train_ma1.ts)]^2)
MAPE_train.sma1 = mean(abs((error_train.sma1[5:length(train_ma1.ts)]/train_ma1.ts[5:length(train_ma1.ts)])*100))

akurasi_train.sma1 <- matrix(c(SSE_train.sma1, MSE_train.sma1, MAPE_train.sma1))
row.names(akurasi_train.sma1)<- c("SSE", "MSE", "MAPE")
colnames(akurasi_train.sma1) <- c("Akurasi m = 3")
akurasi_train.sma1
##      Akurasi m = 3
## SSE   5.716142e+12
## MSE   6.886918e+10
## MAPE  2.650875e+01

Dalam hal ini nilai MAPE data latih pada metode pemulusan SMA kurang dari 2%, nilai ini dapat dikategorikan sebagai nilai akurasi yang sangat baik. Selanjutnya dilakukan perhitungan nilai MAPE data uji pada metde pemulusan SMA

#Menghitung nilai keakuratan data uji
error_test.sma1 = test_ma1.ts-data.gab1[88:109,3]
SSE_test.sma1 = sum(error_test.sma1^2)
MSE_test.sma1 = mean(error_test.sma1^2)
MAPE_test.sma1 = mean(abs((error_test.sma1/test_ma1.ts*100)))

akurasi_test.sma1 <- matrix(c(SSE_test.sma1, MSE_test.sma1, MAPE_test.sma1))
row.names(akurasi_test.sma1)<- c("SSE", "MSE", "MAPE")
colnames(akurasi_test.sma1) <- c("Akurasi m = 4")
akurasi_test.sma1
##      Akurasi m = 4
## SSE   2.039071e+12
## MSE   9.268505e+10
## MAPE  2.625048e+01

Perhitungan akurasi menggunakan data latih menghasilkan nilai MAPE yang kurang dari 10% sehingga nilai akurasi ini dapat dikategorikan sebagai sangat baik.

Double Moving Average (DMA)

Metode pemulusan Double Moving Average (DMA) pada dasarnya mirip dengan SMA. Namun demikian, metode ini lebih cocok digunakan untuk pola data trend. Proses pemulusan dengan rata rata dalam metode ini dilakukan sebanyak 2 kali.

dma1 <- SMA(data.sma1, n = 3)
At1 <- 2*data.sma1 - dma1
Bt1 <- 2/(3-1)*(data.sma1 - dma1)
data.dma1<- At1+Bt1
data.ramal22<- c(NA, data.dma1)

t = 1:24
f = c()

for (i in t) {
  f[i] = At1[length(At1)] + Bt1[length(Bt1)]*(i)
}

data.gab22 <- cbind(aktual = c(train_ma1.ts,rep(NA,24)), pemulusan1 = c(data.sma1,rep(NA,24)),pemulusan2 = c(data.dma1, rep(NA,24)),At1 = c(At1, rep(NA,24)), Bt1 = c(Bt1,rep(NA,24)),ramalan = c(data.ramal22, f[-1]))
data.gab22
##         aktual pemulusan1 pemulusan2       At1         Bt1    ramalan
##   [1,] 1118527         NA         NA        NA          NA         NA
##   [2,]  698469         NA         NA        NA          NA         NA
##   [3,]  642518   819838.0         NA        NA          NA         NA
##   [4,] 1147858   829615.0         NA        NA          NA         NA
##   [5,] 1153413   981263.0  1189978.3 1085620.7  104357.667         NA
##   [6,] 1158450  1153240.3  1483642.1 1318441.2  165200.889 1189978.33
##   [7,] 1140648  1150837.0  1262284.1 1206560.6   55723.556 1483642.11
##   [8,] 1127659  1142252.3  1129203.9 1135728.1   -6524.222 1262284.11
##   [9,]  769649  1012652.0   834128.4  923390.2  -89261.778 1129203.89
##  [10,]  662120   853142.7   554063.3  703603.0 -149539.667  834128.44
##  [11,] 1149169   860312.7   763533.1  811922.9  -48389.778  554063.33
##  [12,] 1174098   995129.0  1179664.1 1087396.6   92267.556  763533.11
##  [13,] 1167902  1163723.0  1478392.6 1321057.8  157334.778 1179664.11
##  [14,] 1164122  1168707.3  1287749.1 1228228.2   59520.889 1478392.56
##  [15,] 1123681  1151901.7  1132817.0 1142359.3   -9542.333 1287749.11
##  [16,]  781721  1023174.7   840334.9  931754.8  -91419.889 1132817.00
##  [17,]  674405   859935.7   556465.7  708200.7 -151735.000  840334.89
##  [18,] 1151083   869069.7   772422.3  820746.0  -48323.667  556465.67
##  [19,] 1156065   993851.0  1166315.4 1080083.2   86232.222  772422.33
##  [20,] 1151501  1152883.0  1448113.2 1300498.1  147615.111 1166315.44
##  [21,] 1143117  1150227.7  1252708.6 1201468.1   51240.444 1448113.22
##  [22,] 1131174  1141930.7  1129097.8 1135514.2   -6416.444 1252708.56
##  [23,]  758456  1010915.7   830697.7  920806.7  -90109.000 1129097.78
##  [24,]  680941   856857.0   564102.1  710479.6 -146377.444  830697.67
##  [25,] 1083773   841056.7   717283.8  779170.2  -61886.444  564102.11
##  [26,] 1081461   948725.0  1081749.2 1015237.1   66512.111  717283.78
##  [27,] 1089583  1084939.0  1338336.6 1211637.8  126698.778 1081749.22
##  [28,] 1070707  1080583.7  1165585.9 1123084.8   42501.111 1338336.56
##  [29,] 1027720  1062670.0  1035881.6 1049275.8  -13394.222 1165585.89
##  [30,]  749305   949244.0   786066.9  867655.4  -81588.556 1035881.56
##  [31,]  708769   828598.0   592119.3  710358.7 -118239.333  786066.89
##  [32,]  609034   689036.0   422522.7  555779.3 -133256.667  592119.33
##  [33,]  735852   684551.7   585531.2  635041.4  -49510.222  422522.67
##  [34,] 1012112   785666.0   917495.6  851580.8   65914.778  585531.22
##  [35,] 1010097   919353.7  1165013.4 1042183.6  122829.889  917495.56
##  [36,]  974703   998970.7  1194251.8 1096611.2   97640.556 1165013.44
##  [37,]  748326   911042.0   846881.8  878961.9  -32080.111 1194251.78
##  [38,]  660343   794457.3   580392.0  687424.7 -107032.667  846881.78
##  [39,]  632778   680482.3   450792.6  565637.4 -114844.889  580392.00
##  [40,] 1045214   779445.0   835411.9  807428.4   27983.444  450792.56
##  [41,] 1041663   906551.7  1142002.3 1024277.0  117725.333  835411.89
##  [42,] 1097752  1061543.0  1352935.9 1207239.4  145696.444 1142002.33
##  [43,] 1105303  1081572.7  1211606.4 1146589.6   65016.889 1352935.89
##  [44,]  716205   973086.7   841791.8  907439.2  -65647.444 1211606.44
##  [45,]  624900   815469.3   532988.9  674229.1 -141240.222  841791.78
##  [46,] 1137742   826282.3   735621.4  780951.9  -45330.444  532988.89
##  [47,] 1150147   970929.7  1171001.4 1070965.6  100035.889  735621.44
##  [48,] 1147436  1145108.3  1473778.1 1309443.2  164334.889 1171001.44
##  [49,] 1125270  1140951.0  1251527.0 1196239.0   55288.000 1473778.11
##  [50,] 1129099  1133935.0  1121808.8 1127871.9   -6063.111 1251527.00
##  [51,]  758105  1004158.0   826444.7  915301.3  -88856.667 1121808.78
##  [52,]  683688   856964.0   574187.3  715575.7 -141388.333  826444.67
##  [53,] 1154750   865514.3   778785.4  822149.9  -43364.444  574187.33
##  [54,] 1158105   998847.7  1182325.7 1090586.7   91739.000  778785.44
##  [55,] 1131647  1148167.3  1436149.1 1292158.2  143990.889 1182325.67
##  [56,] 1142880  1144210.7  1238481.6 1191346.1   47135.444 1436149.11
##  [57,] 1066005  1113510.7  1069939.6 1091725.1  -21785.556 1238481.56
##  [58,]  781421   996768.7   820646.0  908707.3  -88061.333 1069939.56
##  [59,]  651780   833068.7   536974.0  685021.3 -148047.333  820646.00
##  [60,] 1157462   863554.3   795068.6  829311.4  -34242.889  536974.00
##  [61,] 1165110   991450.7  1182302.9 1086876.8   95426.111  795068.56
##  [62,] 1168437  1163669.7  1478559.2 1321114.4  157444.778 1182302.89
##  [63,] 1152249  1161932.0  1274427.8 1218179.9   56247.889 1478559.22
##  [64,] 1145915  1155533.7  1145844.1 1150688.9   -4844.778 1274427.78
##  [65,]  693411   997191.7   781803.4  889497.6 -107694.111 1145844.11
##  [66,]  639808   826378.0   493065.1  659721.6 -166656.444  781803.44
##  [67,] 1114347   815855.3   687949.3  751902.3  -63953.000  493065.11
##  [68,] 1120316   958157.0  1140877.4 1049517.2   91360.222  687949.33
##  [69,] 1095146  1109936.3  1407176.6 1258556.4  148620.111 1140877.44
##  [70,] 1155322  1123594.7  1242992.0 1183293.3   59698.667 1407176.56
##  [71,] 1152107  1134191.7  1157426.6 1145809.1   11617.444 1242992.00
##  [72,]  801212  1036213.7   912641.0  974427.3  -61786.333 1157426.56
##  [73,]  670195   874504.7   593574.0  734039.3 -140465.333  912641.00
##  [74,] 1159398   876935.0   772369.4  824652.2  -52282.778  593574.00
##  [75,] 1168189   999260.7  1163981.8 1081621.2   82360.556  772369.44
##  [76,] 1180123  1169236.7  1477421.8 1323329.2  154092.556 1163981.78
##  [77,]  696518  1014943.3   922536.2  968739.8  -46203.556 1477421.78
##  [78,]  774403   883681.3   605803.1  744742.2 -138939.111  922536.22
##  [79,]  683082   718001.0   409585.9  563793.4 -154207.556  605803.11
##  [80,]  645873   701119.3   568156.9  634638.1  -66481.222  409585.89
##  [81,] 1147300   825418.3   979895.9  902657.1   77238.778  568156.89
##  [82,] 1157441   983538.0  1277230.2 1130384.1  146846.111  979895.89
##  [83,]  471864   925535.0   953610.8  939572.9   14037.889 1277230.22
##  [84,] 1111148   913484.3   858748.1  886116.2  -27368.111  953610.78
##  [85,] 1129816   904276.0   883964.4  894120.2  -10155.778  858748.11
##  [86,]  742067   994343.7  1108295.0 1051319.3   56975.667  883964.44
##  [87,]  649062   840315.0   694988.6  767651.8  -72663.222 1108295.00
##  [88,]      NA         NA         NA        NA          NA  694988.56
##  [89,]      NA         NA         NA        NA          NA  622325.33
##  [90,]      NA         NA         NA        NA          NA  549662.11
##  [91,]      NA         NA         NA        NA          NA  476998.89
##  [92,]      NA         NA         NA        NA          NA  404335.67
##  [93,]      NA         NA         NA        NA          NA  331672.44
##  [94,]      NA         NA         NA        NA          NA  259009.22
##  [95,]      NA         NA         NA        NA          NA  186346.00
##  [96,]      NA         NA         NA        NA          NA  113682.78
##  [97,]      NA         NA         NA        NA          NA   41019.56
##  [98,]      NA         NA         NA        NA          NA  -31643.67
##  [99,]      NA         NA         NA        NA          NA -104306.89
## [100,]      NA         NA         NA        NA          NA -176970.11
## [101,]      NA         NA         NA        NA          NA -249633.33
## [102,]      NA         NA         NA        NA          NA -322296.56
## [103,]      NA         NA         NA        NA          NA -394959.78
## [104,]      NA         NA         NA        NA          NA -467623.00
## [105,]      NA         NA         NA        NA          NA -540286.22
## [106,]      NA         NA         NA        NA          NA -612949.44
## [107,]      NA         NA         NA        NA          NA -685612.67
## [108,]      NA         NA         NA        NA          NA -758275.89
## [109,]      NA         NA         NA        NA          NA -830939.11
## [110,]      NA         NA         NA        NA          NA -903602.33
## [111,]      NA         NA         NA        NA          NA -976265.56

Hasil pemulusan menggunakan metode DMA divisualisasikan sebagai berikut

ts.plot(Penumpang1.ts, xlab="Time Period ", ylab="Jumalh Penumpang", main= "DMA N=3 Data Jumlah Penumpang Transjakarta")
points(Penumpang1.ts)
lines(data.gab22[,3],col="green",lwd=2)
lines(data.gab22[,6],col="red",lwd=2)
legend("topleft",c("data aktual","data pemulusan","data peramalan"), lty=8, col=c("black","green","red"), cex=0.8)

Selanjutnya perhitungan akurasi dilakukan baik pada data latih maupun data uji. Perhitungan akurasi dilakukan dengan ukuran akurasi SSE, MSE dan MAPE.

#Menghitung nilai keakuratan data latih
error_train.dma1 = train_ma1.ts-data.ramal22[1:length(train_ma1.ts)]
SSE_train.dma1 = sum(error_train.dma1[6:length(train_ma1.ts)]^2)
MSE_train.dma1 = mean(error_train.dma1[6:length(train_ma1.ts)]^2)
MAPE_train.dma1 = mean(abs((error_train.dma1[6:length(train_ma1.ts)]/train_ma1.ts[6:length(train_ma1.ts)])*100))

akurasi_train.dma1 <- matrix(c(SSE_train.dma1, MSE_train.dma1, MAPE_train.dma1))
row.names(akurasi_train.dma1)<- c("SSE", "MSE", "MAPE")
colnames(akurasi_train.dma1) <- c("Akurasi m = 3")
akurasi_train.dma1
##      Akurasi m = 3
## SSE   9.514369e+12
## MSE   1.160289e+11
## MAPE  3.102598e+01

Perhitungan akurasi pada data latih menggunakan nilai MAPE menghasilkan nilai MAPE yang kurang dari 10% sehingga dikategorikan sangat baik. Selanjutnya, perhitungan nilai akurasi dilakukan pada data uji.

#Menghitung nilai keakuratan data uji
error_test.dma1 = test_ma1.ts-data.gab22[88:109,6]
SSE_test.dma1 = sum(error_test.dma1^2)
MSE_test.dma1 = mean(error_test.dma1^2)
MAPE_test.dma1 = mean(abs((error_test.dma1/test_ma1.ts*100)))

akurasi_test.dma1 <- matrix(c(SSE_test.dma1, MSE_test.dma1, MAPE_test.dma1))
row.names(akurasi_test.dma1)<- c("SSE", "MSE", "MAPE")
colnames(akurasi_test.dma1) <- c("Akurasi m = 3")
akurasi_test.dma1
##      Akurasi m = 3
## SSE   3.135139e+13
## MSE   1.425063e+12
## MAPE  1.116544e+02

Pada data latih, metode SMA lebih baik dibandingkan dengan metode DMA, sedangkan pada data uji, metode DMA lebih baik dibandingkan SMA

Single Exponential Smoothing & Double Exponential Smoothing

Metode Exponential Smoothing adalah metode pemulusan dengan melakukan pembobotan menurun secara eksponensial. Nilai yang lebih baru diberi bobot yang lebih besar dari nilai terdahulu. Terdapat satu atau lebih parameter pemulusan yang ditentukan secara eksplisit, dan hasil pemilihan parameter tersebut akan menentukan bobot yang akan diberikan pada nilai pengamatan. Ada dua macam model, yaitu model tunggal dan ganda.

Pembagian Data

Pembagian data latih dan data uji dilakukan dengan perbandingan 80% data latih dan 20% data uji.

#membagi training dan testing
training1<-Penumpang1[1:87,]
testing1<-Penumpang1[88:109,]
train1.ts <- ts(training1$Jumlah_Penumpang)
test1.ts <- ts(testing1$Jumlah_Penumpang)

Eksplorasi

Eksplorasi dilakukan dengan membuat plot data deret waktu untuk keseluruhan data, data latih, dan data uji.

#eksplorasi data
plot(Penumpang1.ts, col="black",main="Plot semua data")
points(Penumpang1.ts)

plot(train1.ts, col="red",main="Plot data latih")
points(train1.ts)

plot(test1.ts, col="blue",main="Plot data uji")
points(test1.ts)

SES

Single Exponential Smoothing merupakan metode pemulusan yang tepat digunakan untuk data dengan pola stasioner atau konstan.

Nilai pemulusan pada periode ke-t didapat dari persamaan:

\[ \tilde{y}_T=\lambda y_t+(1-\lambda)\tilde{y}_{T-1} \]

Nilai parameter \(\lambda\) adalah nilai antara 0 dan 1.

Nilai pemulusan periode ke-t bertindak sebagai nilai ramalan pada periode ke-\((T+\tau)\).

\[ \tilde{y}_{T+\tau}(T)=\tilde{y}_T \]

Pemulusan dengan metode SES dapat dilakukan dengan dua fungsi dari packages berbeda, yaitu (1) fungsi ses() dari packages forecast dan (2) fungsi HoltWinters dari packages stats .

#Cara 1 (fungsi ses)
ses1.1 <- ses(train1.ts, h = 22, alpha = 0.2)
plot(ses1.1)

ses1.1
##     Point Forecast    Lo 80   Hi 80    Lo 95   Hi 95
##  88       857996.1 565843.3 1150149 411187.0 1304805
##  89       857996.1 560057.6 1155935 402338.4 1313654
##  90       857996.1 554382.0 1161610 393658.5 1322334
##  91       857996.1 548810.7 1167181 385137.8 1330854
##  92       857996.1 543337.9 1172654 376768.0 1339224
##  93       857996.1 537958.8 1178033 368541.3 1347451
##  94       857996.1 532668.5 1183324 360450.5 1355542
##  95       857996.1 527463.0 1188529 352489.3 1363503
##  96       857996.1 522338.1 1193654 344651.5 1371341
##  97       857996.1 517290.3 1198702 336931.6 1379060
##  98       857996.1 512316.3 1203676 329324.4 1386668
##  99       857996.1 507412.8 1208579 321825.2 1394167
## 100       857996.1 502576.9 1213415 314429.4 1401563
## 101       857996.1 497806.0 1218186 307132.9 1408859
## 102       857996.1 493097.4 1222895 299931.7 1416060
## 103       857996.1 488448.8 1227543 292822.3 1423170
## 104       857996.1 483858.0 1232134 285801.3 1430191
## 105       857996.1 479322.8 1236669 278865.3 1437127
## 106       857996.1 474841.3 1241151 272011.5 1443981
## 107       857996.1 470411.6 1245580 265236.9 1450755
## 108       857996.1 466032.0 1249960 258538.8 1457453
## 109       857996.1 461700.8 1254291 251914.8 1464077
ses2.2<- ses(train1.ts, h = 22, alpha = 0.7)
plot(ses2.2)

ses2.2
##     Point Forecast       Lo 80   Hi 80      Lo 95   Hi 95
##  88       707732.2  391234.116 1024230  223690.16 1191774
##  89       707732.2  321397.059 1094067  116883.60 1298581
##  90       707732.2  262379.929 1153084   26624.69 1388840
##  91       707732.2  210316.429 1205148  -52999.56 1468464
##  92       707732.2  163208.323 1252256 -125045.19 1540510
##  93       707732.2  119863.120 1295601 -191335.96 1606800
##  94       707732.2   79501.463 1335963 -253063.79 1668528
##  95       707732.2   41580.819 1373884 -311058.41 1726523
##  96       707732.2    5705.516 1409759 -365924.95 1781389
##  97       707732.2  -28423.536 1443888 -418120.83 1833585
##  98       707732.2  -61038.943 1476503 -468001.79 1883466
##  99       707732.2  -92325.844 1507790 -515850.98 1931315
## 100       707732.2 -122434.456 1537899 -561898.13 1977362
## 101       707732.2 -151488.656 1566953 -606332.69 2021797
## 102       707732.2 -179592.026 1595056 -649313.09 2064777
## 103       707732.2 -206832.223 1622297 -690973.37 2106438
## 104       707732.2 -233284.211 1648749 -731428.20 2146893
## 105       707732.2 -259012.693 1674477 -770776.52 2186241
## 106       707732.2 -284073.976 1699538 -809104.44 2224569
## 107       707732.2 -308517.422 1723982 -846487.46 2261952
## 108       707732.2 -332386.590 1747851 -882992.21 2298457
## 109       707732.2 -355720.149 1771185 -918677.81 2334142

Untuk mendapatkan gambar hasil pemulusan pada data latih dengan fungsi ses() , perlu digunakan fungsi autoplot() dan autolayer() dari library packages ggplot2 .

autoplot(ses1.1) +
  autolayer(fitted(ses1.1), series="Fitted") +
  ylab("Jumlah Penumpang") + xlab("Periode")

Pada fungsi ses() , terdapat beberapa argumen yang umum digunakan, yaitu nilai y , gamma , beta , alpha , dan h .

Nilai y adalah nilai data deret waktu, gamma adalah parameter pemulusan untuk komponen musiman, beta adalah parameter pemulusan untuk tren, dan alpha adalah parameter pemulusan untuk stasioner, serta h adalah banyaknya periode yang akan diramalkan.

Kasus di atas merupakan contoh inisialisasi nilai parameter \(\lambda\) dengan nilai alpha 0,2 dan 0,7 dan banyak periode data yang akan diramalkan adalah sebanyak 22 periode. Selanjutnya akan digunakan fungsi HoltWinters() dengan nilai inisialisasi parameter dan panjang periode peramalan yang sama dengan fungsi ses() .

#Cara 2 (fungsi Holtwinter)
ses11<- HoltWinters(train1.ts, gamma = FALSE, beta = FALSE, alpha = 0.2)
plot(ses11)

#ramalan
ramalan11<- forecast(ses11, h=22)
ramalan11
##     Point Forecast    Lo 80   Hi 80    Lo 95   Hi 95
##  88       857996.1 564558.4 1151434 409221.9 1306770
##  89       857996.1 558747.2 1157245 400334.4 1315658
##  90       857996.1 553046.7 1162945 391616.3 1324376
##  91       857996.1 547450.8 1168541 383058.1 1332934
##  92       857996.1 541954.0 1174038 374651.5 1341341
##  93       857996.1 536551.2 1179441 366388.6 1349604
##  94       857996.1 531237.7 1184754 358262.3 1357730
##  95       857996.1 526009.3 1189983 350266.1 1365726
##  96       857996.1 520861.9 1195130 342393.8 1373598
##  97       857996.1 515791.9 1200200 334640.0 1381352
##  98       857996.1 510796.0 1205196 326999.3 1388993
##  99       857996.1 505870.9 1210121 319467.1 1396525
## 100       857996.1 501013.8 1214978 312038.7 1403953
## 101       857996.1 496221.8 1219770 304710.1 1411282
## 102       857996.1 491492.6 1224500 297477.3 1418515
## 103       857996.1 486823.5 1229169 290336.7 1425655
## 104       857996.1 482212.5 1233780 283284.7 1432707
## 105       857996.1 477657.4 1238335 276318.3 1439674
## 106       857996.1 473156.2 1242836 269434.3 1446558
## 107       857996.1 468707.0 1247285 262629.9 1453362
## 108       857996.1 464308.1 1251684 255902.4 1460090
## 109       857996.1 459957.9 1256034 249249.2 1466743
ses22<- HoltWinters(train1.ts, gamma = FALSE, beta = FALSE, alpha = 0.7)
plot(ses22)

#ramalan
ramalan22<- forecast(ses22, h=22)
ramalan22
##     Point Forecast       Lo 80   Hi 80      Lo 95   Hi 95
##  88       707732.2  390894.291 1024570  223170.45 1192294
##  89       707732.2  320982.249 1094482  116249.20 1299215
##  90       707732.2  261901.753 1153563   25893.38 1389571
##  91       707732.2  209782.352 1205682  -53816.36 1469281
##  92       707732.2  162623.666 1252841 -125939.35 1541404
##  93       707732.2  119231.922 1296232 -192301.29 1607766
##  94       707732.2   78826.929 1336637 -254095.40 1669560
##  95       707732.2   40865.570 1374599 -312152.29 1727617
##  96       707732.2    4951.747 1410513 -367077.74 1782542
##  97       707732.2  -29213.949 1444678 -419329.66 1834794
##  98       707732.2  -61864.376 1477329 -469264.18 1884729
##  99       707732.2  -93184.869 1508649 -517164.74 1932629
## 100       707732.2 -123325.809 1538790 -563261.33 1978726
## 101       707732.2 -152411.204 1567876 -607743.61 2023208
## 102       707732.2 -180544.749 1596009 -650770.15 2066235
## 103       707732.2 -207814.194 1623279 -692475.17 2107940
## 104       707732.2 -234294.584 1649759 -732973.43 2148438
## 105       707732.2 -260050.691 1675515 -772364.00 2187828
## 106       707732.2 -285138.882 1700603 -810733.07 2226197
## 107       707732.2 -309608.573 1725073 -848156.24 2263621
## 108       707732.2 -333503.369 1748968 -884700.17 2300165
## 109       707732.2 -356861.982 1772326 -920424.09 2335888

Fungsi HoltWinters memiliki argumen yang sama dengan fungsi ses() . Argumen-argumen kedua fungsi dapat dilihat lebih lanjut dengan ?ses() atau ?HoltWinters .

Nilai parameter \(\alpha\) dari kedua fungsi dapat dioptimalkan menyesuaikan dari error-nya paling minimumnya. Caranya adalah dengan membuat parameter \(\alpha =\) NULL .

#SES
ses1.opt <- ses(train1.ts, h = 22, alpha = NULL)
plot(ses1.opt)

ses1.opt
##     Point Forecast    Lo 80   Hi 80    Lo 95   Hi 95
##  88       965682.1 687621.3 1243743 540424.8 1390939
##  89       965682.1 687621.3 1243743 540424.8 1390939
##  90       965682.1 687621.3 1243743 540424.8 1390939
##  91       965682.1 687621.3 1243743 540424.8 1390939
##  92       965682.1 687621.3 1243743 540424.8 1390939
##  93       965682.1 687621.3 1243743 540424.8 1390939
##  94       965682.1 687621.3 1243743 540424.8 1390939
##  95       965682.1 687621.3 1243743 540424.8 1390939
##  96       965682.1 687621.3 1243743 540424.8 1390939
##  97       965682.1 687621.3 1243743 540424.8 1390939
##  98       965682.1 687621.3 1243743 540424.8 1390939
##  99       965682.1 687621.3 1243743 540424.8 1390939
## 100       965682.1 687621.3 1243743 540424.8 1390939
## 101       965682.1 687621.3 1243743 540424.8 1390939
## 102       965682.1 687621.3 1243743 540424.8 1390939
## 103       965682.1 687621.3 1243743 540424.8 1390939
## 104       965682.1 687621.3 1243743 540424.8 1390939
## 105       965682.1 687621.3 1243743 540424.8 1390939
## 106       965682.1 687621.3 1243743 540424.8 1390939
## 107       965682.1 687621.3 1243743 540424.8 1390939
## 108       965682.1 687621.3 1243743 540424.8 1390939
## 109       965682.1 687621.3 1243743 540424.8 1390939
#Lamda Optimum Holt Winter
sesopt1<- HoltWinters(train1.ts, gamma = FALSE, beta = FALSE,alpha = NULL)
sesopt1
## Holt-Winters exponential smoothing without trend and without seasonal component.
## 
## Call:
## HoltWinters(x = train1.ts, alpha = NULL, beta = FALSE, gamma = FALSE)
## 
## Smoothing parameters:
##  alpha: 0.07556144
##  beta : FALSE
##  gamma: FALSE
## 
## Coefficients:
##       [,1]
## a 917924.4
plot(sesopt1)

#ramalan
ramalanopt1<- forecast(sesopt1, h=22)
ramalanopt1
##     Point Forecast    Lo 80   Hi 80    Lo 95   Hi 95
##  88       917924.4 632641.4 1203207 481621.7 1354227
##  89       917924.4 631828.1 1204021 480377.9 1355471
##  90       917924.4 631017.2 1204832 479137.7 1356711
##  91       917924.4 630208.5 1205640 477900.9 1357948
##  92       917924.4 629402.1 1206447 476667.7 1359181
##  93       917924.4 628598.0 1207251 475437.8 1360411
##  94       917924.4 627796.0 1208053 474211.4 1361637
##  95       917924.4 626996.3 1208852 472988.3 1362860
##  96       917924.4 626198.8 1209650 471768.6 1364080
##  97       917924.4 625403.5 1210445 470552.2 1365296
##  98       917924.4 624610.3 1211238 469339.2 1366510
##  99       917924.4 623819.2 1212029 468129.4 1367719
## 100       917924.4 623030.3 1212818 466922.8 1368926
## 101       917924.4 622243.5 1213605 465719.5 1370129
## 102       917924.4 621458.7 1214390 464519.3 1371329
## 103       917924.4 620676.1 1215173 463322.3 1372526
## 104       917924.4 619895.5 1215953 462128.5 1373720
## 105       917924.4 619116.9 1216732 460937.8 1374911
## 106       917924.4 618340.3 1217508 459750.1 1376099
## 107       917924.4 617565.8 1218283 458565.6 1377283
## 108       917924.4 616793.3 1219055 457384.1 1378465
## 109       917924.4 616022.7 1219826 456205.6 1379643

Setelah dilakukan peramalan, akan dilakukan perhitungan keakuratan hasil peramalan. Perhitungan akurasi ini dilakukan baik pada data latih dan data uji.

Akurasi Data Latih

Perhitungan akurasi data dapat dilakukan dengan cara langsung maupun manual. Secara langsung, nilai akurasi dapat diambil dari objek yang tersimpan pada hasil SES, yaitu sum of squared errors (SSE). Nilai akurasi lain dapat dihitung pula dari nilai SSE tersebut.

#Keakuratan Metode
#Pada data training
SSE11<-ses11$SSE
MSE11<-ses11$SSE/length(train1.ts)
RMSE11<-sqrt(MSE11)

akurasi11 <- matrix(c(SSE11,MSE11,RMSE11))
row.names(akurasi11)<- c("SSE", "MSE", "RMSE")
colnames(akurasi11) <- c("Akurasi lamda=0.2")
akurasi11
##      Akurasi lamda=0.2
## SSE       4.476072e+12
## MSE       5.144911e+10
## RMSE      2.268240e+05
SSE22<-ses22$SSE
MSE22<-ses22$SSE/length(train1.ts)
RMSE22<-sqrt(MSE22)

akurasi22 <- matrix(c(SSE22,MSE22,RMSE22))
row.names(akurasi22)<- c("SSE", "MSE", "RMSE")
colnames(akurasi22) <- c("Akurasi lamda=0.7")
akurasi22
##      Akurasi lamda=0.7
## SSE       5.199428e+12
## MSE       5.976354e+10
## RMSE      2.444658e+05
#Cara Manual
fitted11<-ramalan11$fitted
sisaan11<-ramalan11$residuals
head(sisaan11)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]        NA -420058.0 -391997.4  191742.1  158948.7  132195.9
resid11<-training1$Jumlah_Penumpang-ramalan11$fitted
head(resid11)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]        NA -420058.0 -391997.4  191742.1  158948.7  132195.9
#Cara Manual
SSE1.1=sum(sisaan11[2:length(train1.ts)]^2)
SSE1.1
## [1] 4.476072e+12
MSE1.1 = SSE1.1/length(train1.ts)
MSE1.1
## [1] 51449108300
MAPE1.1 = sum(abs(sisaan11[2:length(train1.ts)]/train1.ts[2:length(train1.ts)])*
               100)/length(train1.ts)
MAPE1.1
## [1] 24.45344
akurasi1.1 <- matrix(c(SSE1.1,MSE1.1,MAPE1.1))
row.names(akurasi1.1)<- c("SSE", "MSE", "MAPE")
colnames(akurasi1.1) <- c("Akurasi lamda=0.2")
akurasi1.1
##      Akurasi lamda=0.2
## SSE       4.476072e+12
## MSE       5.144911e+10
## MAPE      2.445344e+01
fitted22<-ramalan22$fitted
sisaan22<-ramalan22$residuals
head(sisaan22)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]         NA -420058.00 -181968.40  450749.48  140779.84   47270.95
resid22<-training1$Jumlah_Penumpang-ramalan22$fitted
head(resid22)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]         NA -420058.00 -181968.40  450749.48  140779.84   47270.95
SSE2.2=sum(sisaan22[2:length(train1.ts)]^2)
SSE2.2
## [1] 5.199428e+12
MSE2.2 = SSE2.2/length(train1.ts)
MSE2.2
## [1] 59763543419
MAPE2.2 = sum(abs(sisaan22[2:length(train1.ts)]/train1.ts[2:length(train1.ts)])*
               100)/length(train1.ts)
MAPE2.2
## [1] 21.87365
akurasi2.2 <- matrix(c(SSE2.2,MSE2.2,MAPE2.2))
row.names(akurasi2.2)<- c("SSE", "MSE", "MAPE")
colnames(akurasi2.2) <- c("Akurasi lamda=0.7")
akurasi2.2
##      Akurasi lamda=0.7
## SSE       5.199428e+12
## MSE       5.976354e+10
## MAPE      2.187365e+01

Berdasarkan nilai SSE, MSE, dan RMSE di antara kedua parameter, nilai parameter \(\lambda=0,2\) menghasilkan akurasi yang lebih baik dibanding \(\lambda=0,7\) . Hal ini dilihat dari nilai masing-masing ukuran akurasi yang lebih kecil. Namun, pada nilai MAPE nilai parameter \(\lambda=0,7\) menghasilkan akurasi yang lebih baik dibandingkan \(\lambda=0,2\).

Akurasi Data Uji

Akurasi data uji dapat dihitung dengan cara yang hampir sama dengan perhitungan akurasi data latih.

selisih11<-ramalan11$mean-testing1$Jumlah_Penumpang
SSEtesting11<-sum(selisih11^2)
MSEtesting11<-SSEtesting11/length(testing1)

selisih22<-ramalan22$mean-testing1$Jumlah_Penumpang
SSEtesting22<-sum(selisih22^2)
MSEtesting22<-SSEtesting22/length(testing1)

selisihopt1<-ramalanopt1$mean-testing1$Jumlah_Penumpang
SSEtestingopt1<-sum(selisihopt1^2)

MSEtestingopt1<-SSEtestingopt1/length(testing1)

akurasitesting11 <- matrix(c(SSEtesting11,SSEtesting22,SSEtestingopt1))
row.names(akurasitesting11)<- c("SSE1", "SSE2", "SSEopt")
akurasitesting11
##                [,1]
## SSE1   1.890227e+12
## SSE2   3.593488e+12
## SSEopt 1.488053e+12
akurasitesting22 <- matrix(c(MSEtesting11,MSEtesting22,MSEtestingopt1))
row.names(akurasitesting22)<- c("MSE1", "MSE2", "MSEopt")
akurasitesting22
##                [,1]
## MSE1   9.451133e+11
## MSE2   1.796744e+12
## MSEopt 7.440267e+11

Selain dengan cara di atas, perhitungan nilai akurasi dapat menggunakan fungsi accuracy() dari package forecast . Penggunaannya yaitu dengan menuliskan accuracy(hasil ramalan, kondisi aktual) . Contohnya adalah sebagai berikut.

#cara lain
accuracy(ramalanopt1,testing1$Jumlah_Penumpang)
##                    ME     RMSE      MAE       MPE     MAPE     MASE      ACF1
## Training set -30870.1 223452.1 197615.3 -9.582909 24.29139 1.238009 0.3052778
## Test set     122556.4 260074.6 254161.2  6.143201 25.31645 1.592254        NA

DES

Metode pemulusan Double Exponential Smoothing (DES) digunakan untuk data yang memiliki pola tren. Metode DES adalah metode semacam SES, hanya saja dilakukan dua kali, yaitu pertama untuk tahapan ‘level’ dan kedua untuk tahapan ‘tren’. Pemulusan menggunakan metode ini akan menghasilkan peramalan tidak konstan untuk periode berikutnya.

Pemulusan dengan metode DES kali ini akan menggunakan fungsi HoltWinters() . Jika sebelumnya nilai argumen beta dibuat FALSE , kali ini argumen tersebut akan diinisialisasi bersamaan dengan nilai alpha .

#Lamda=0.2 dan gamma=0.2
des1.1<- HoltWinters(train1.ts, gamma = FALSE, beta = 0.2, alpha = 0.2)
plot(des1.1)

#ramalan
ramalandes11<- forecast(des1.1, h=22)
ramalandes11
##     Point Forecast       Lo 80   Hi 80       Lo 95   Hi 95
##  88       814236.0   259706.15 1368766   -33844.24 1662316
##  89       802113.0   231836.20 1372390   -70050.07 1674276
##  90       789989.9   198953.65 1381026  -113922.03 1693902
##  91       777866.8   160767.02 1394967  -165905.89 1721640
##  92       765743.8   117157.14 1414330  -226183.88 1757671
##  93       753620.7    68153.60 1439088  -294710.77 1801952
##  94       741497.6    13900.36 1469095  -371266.38 1854262
##  95       729374.6   -45381.24 1504130  -455512.20 1914261
##  96       717251.5  -109425.86 1543929  -547042.43 1981545
##  97       705128.5  -177950.56 1588207  -645424.35 2055681
##  98       693005.4  -250673.45 1636684  -750226.86 2136238
##  99       680882.3  -327325.55 1689090  -861038.57 2222803
## 100       668759.3  -407657.33 1745176  -977477.86 2314996
## 101       656636.2  -491441.51 1804714 -1099197.14 2412470
## 102       644513.2  -578473.52 1867500 -1225883.56 2514910
## 103       632390.1  -668570.54 1933351 -1357257.50 2622038
## 104       620267.0  -761569.77 2002104 -1493069.99 2733604
## 105       608144.0  -857326.45 2073614 -1633099.63 2849388
## 106       596020.9  -955711.80 2147754 -1777149.48 2969191
## 107       583897.9 -1056611.07 2224407 -1925044.04 3092840
## 108       571774.8 -1159921.75 2303471 -2076626.52 3220176
## 109       559651.7 -1265551.97 2384855 -2231756.45 3351060
#Lamda=0.6 dan gamma=0.3
des2.2<- HoltWinters(train1.ts, gamma = FALSE, beta = 0.3, alpha = 0.6)
plot(des2.2)

#ramalan
ramalandes22<- forecast(des2.2, h=22)
ramalandes22
##     Point Forecast       Lo 80   Hi 80       Lo 95   Hi 95
##  88      686042.91   298148.65 1073937    92809.84 1279276
##  89      630913.44   138975.43 1122851  -121440.82 1383268
##  90      575783.97   -41199.61 1192768  -367810.99 1519379
##  91      520654.51  -238429.88 1279739  -640264.88 1681574
##  92      465525.04  -450102.62 1381153  -934806.63 1865857
##  93      410395.57  -674460.83 1495252 -1248749.12 2069540
##  94      355266.10  -910268.26 1620800 -1580201.69 2290734
##  95      300136.63 -1156611.60 1756885 -1927767.53 2528041
##  96      245007.16 -1412785.91 1902800 -2290368.55 2780383
##  97      189877.70 -1678226.84 2057982 -2667141.65 3046897
##  98      134748.23 -1952468.92 2221965 -3057374.94 3326871
##  99       79618.76 -2235118.89 2394356 -3460466.98 3619705
## 100       24489.29 -2525838.02 2574817 -3875899.74 3924878
## 101      -30640.18 -2824329.91 2763050 -4303219.92 4241940
## 102      -85769.65 -3130331.88 2958793 -4742025.76 4570486
## 103     -140899.11 -3443608.59 3161810 -5191957.37 4910159
## 104     -196028.58 -3763947.35 3371890 -5652689.45 5260632
## 105     -251158.05 -4091154.47 3588838 -6123925.78 5621610
## 106     -306287.52 -4425052.41 3812477 -6605394.85 5992820
## 107     -361416.99 -4765477.57 4042644 -7096846.42 6374012
## 108     -416546.46 -5112278.40 4279185 -7598048.74 6764956
## 109     -471675.93 -5465313.96 4521962 -8108786.26 7165434

Selanjutnya jika ingin membandingkan plot data latih dan data uji adalah sebagai berikut.

#Visually evaluate the prediction
plot(Penumpang1.ts)
lines(des1.1$fitted[,1], lty=2, col="blue")
lines(ramalandes11$mean, col="red")

Untuk mendapatkan nilai parameter optimum dari DES, argumen alpha dan beta dapat dibuat NULL seperti berikut.

#Lamda dan gamma optimum
des1.opt<- HoltWinters(train1.ts, gamma = FALSE)
des1.opt
## Holt-Winters exponential smoothing with trend and without seasonal component.
## 
## Call:
## HoltWinters(x = train1.ts, gamma = FALSE)
## 
## Smoothing parameters:
##  alpha: 1
##  beta : 0.1267806
##  gamma: FALSE
## 
## Coefficients:
##        [,1]
## a 649062.00
## b -34604.88
plot(des1.opt)

#ramalan
ramalandesopt1<- forecast(des1.opt, h=22)
ramalandesopt1
##     Point Forecast       Lo 80     Hi 80      Lo 95   Hi 95
##  88      614457.12   253531.29  975382.9    62468.7 1166446
##  89      579852.24    36106.42 1123598.1  -251735.2 1411440
##  90      545247.36  -162116.67 1252611.4  -536572.6 1627067
##  91      510642.49  -354555.85 1375840.8  -812564.2 1833849
##  92      476037.61  -545950.69 1498025.9 -1086958.6 2039034
##  93      441432.73  -738494.07 1621359.5 -1363109.6 2245975
##  94      406827.85  -933342.80 1746998.5 -1642786.3 2456442
##  95      372222.97 -1131152.59 1875598.5 -1926991.5 2671437
##  96      337618.09 -1332309.17 2007545.4 -2216315.3 2891551
##  97      303013.22 -1537041.67 2143068.1 -2511107.9 3117134
##  98      268408.34 -1745483.54 2282300.2 -2811573.5 3348390
##  99      233803.46 -1957707.49 2425314.4 -3117823.3 3585430
## 100      199198.58 -2173746.62 2572143.8 -3429907.9 3828305
## 101      164593.70 -2393607.66 2722795.1 -3747837.7 4077025
## 102      129988.82 -2617279.59 2877257.2 -4071595.6 4331573
## 103       95383.95 -2844739.38 3035507.3 -4401146.7 4591915
## 104       60779.07 -3075955.89 3197514.0 -4736443.1 4858001
## 105       26174.19 -3310892.56 3363240.9 -5077429.0 5129777
## 106       -8430.69 -3549509.29 3532647.9 -5424043.1 5407182
## 107      -43035.57 -3791763.81 3705692.7 -5776220.7 5690150
## 108      -77640.45 -4037612.59 3882331.7 -6133895.2 5978614
## 109     -112245.33 -4287011.58 4062520.9 -6496999.3 6272509

Selanjutnya akan dilakukan perhitungan akurasi pada data latih maupun data uji dengan ukuran akurasi SSE, MSE dan MAPE.

Akurasi Data Latih

#Akurasi Data Training
ssedes1.train1<-des1.1$SSE
msedes1.train1<-ssedes1.train1/length(train1.ts)
sisaandes11<-ramalandes11$residuals
head(sisaandes11)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]      NA      NA  364107 1202119 1324659 1369187
mapedes1.train1 <- sum(abs(sisaandes11[3:length(train1.ts)]/train1.ts[3:length(train1.ts)])
                      *100)/length(train1.ts)

akurasides1.1 <- matrix(c(ssedes1.train1,msedes1.train1,mapedes1.train1))
row.names(akurasides1.1)<- c("SSE", "MSE", "MAPE")
colnames(akurasides1.1) <- c("Akurasi lamda=0.2 dan gamma=0.2")
akurasides1.1
##      Akurasi lamda=0.2 dan gamma=0.2
## SSE                     1.695101e+13
## MSE                     1.948392e+11
## MAPE                    3.418812e+01
ssedes2.train2<-des2.2$SSE
msedes2.train2<-ssedes2.train2/length(train1.ts)
sisaandes22<-ramalandes22$residuals
head(sisaandes22)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]        NA        NA  364107.0 1005501.5  581284.1  306448.0
mapedes2.train2 <- sum(abs(sisaandes22[3:length(train1.ts)]/train1.ts[3:length(train1.ts)])
                      *100)/length(train1.ts)

akurasides2.2 <- matrix(c(ssedes2.train2,msedes2.train2,mapedes2.train2))
row.names(akurasides2.2)<- c("SSE", "MSE", "MAPE")
colnames(akurasides2.2) <- c("Akurasi lamda=0.6 dan gamma=0.3")
akurasides2.2
##      Akurasi lamda=0.6 dan gamma=0.3
## SSE                     7.743802e+12
## MSE                     8.900922e+10
## MAPE                    2.580630e+01

Hasil akurasi dari data latih didapatkan skenario 2 dengan lamda=0.6 dan gamma=0.3 memiliki hasil yang lebih baik. Namun untuk kedua skenario dapat dikategorikan peramalan sangat baik berdasarkan nilai MAPE-nya.

Akurasi Data Uji

#Akurasi Data Testing
selisihdes11<-ramalandes11$mean-testing1$Jumlah_Penumpang
selisihdes11
## Time Series:
## Start = 88 
## End = 109 
## Frequency = 1 
##  [1] -359125.99 -392044.05 -410236.11 -401742.17 -406915.23  -16258.29
##  [7]   73877.65 -455838.41 -480285.47 -466566.53 -406310.59 -519015.66
## [13] -122278.72  -47287.78 -564599.84 -603108.90 -614795.96 -629320.02
## [19] -625927.08 -163159.14 -132608.20  -34265.27
SSEtestingdes11<-sum(selisihdes11^2)
MSEtestingdes11<-SSEtestingdes11/length(testing1$Jumlah_Penumpang)
MAPEtestingdes11<-sum(abs(selisihdes11/testing1$Jumlah_Penumpang)*100)/length(testing1$Jumlah_Penumpang)

selisihdes22<-ramalandes22$mean-testing1$Jumlah_Penumpang
selisihdes22
## Time Series:
## Start = 88 
## End = 109 
## Frequency = 1 
##  [1]  -487319.1  -563243.6  -624442.0  -658954.5  -707134.0  -359483.4
##  [7]  -312353.9  -885076.4  -952529.8  -981817.3  -964567.8 -1120279.2
## [13]  -766548.7  -734564.2 -1294882.6 -1376398.1 -1431091.6 -1488622.1
## [19] -1528235.5 -1108474.0 -1120929.5 -1065592.9
SSEtestingdes22<-sum(selisihdes22^2)
MSEtestingdes22<-SSEtestingdes22/length(testing1$Jumlah_Penumpang)
MAPEtestingdes22<-sum(abs(selisihdes22/testing1$Jumlah_Penumpang)*100)/length(testing1$Jumlah_Penumpang)

selisihdesopt1<-ramalandesopt1$mean-testing1$Jumlah_Penumpang
selisihdesopt1
## Time Series:
## Start = 88 
## End = 109 
## Frequency = 1 
##  [1]  -558904.9  -614304.8  -654978.6  -668966.5  -696621.4  -328446.3
##  [7]  -260792.1  -812990.0  -859918.9  -868681.8  -830907.7  -966094.5
## [13]  -591839.4  -539330.3 -1079124.2 -1140115.1 -1174283.9 -1211289.8
## [19] -1230378.7  -790092.6  -782023.4  -706162.3
SSEtestingdesopt1<-sum(selisihdesopt1^2)
MSEtestingdesopt1<-SSEtestingdesopt1/length(testing1$Jumlah_Penumpang)
MAPEtestingdesopt1<-sum(abs(selisihdesopt1/testing1$Jumlah_Penumpang)*100)/length(testing1$Jumlah_Penumpang)

akurasitestingdes1 <-
  matrix(c(SSEtestingdes11,MSEtestingdes11,MAPEtestingdes11,SSEtestingdes22,MSEtestingdes22,
           MAPEtestingdes22,SSEtestingdesopt1,MSEtestingdesopt1,MAPEtestingdesopt1),
         nrow=3,ncol=3)
row.names(akurasitestingdes1)<- c("SSE", "MSE", "MAPE")
colnames(akurasitestingdes1) <- c("des ske1","des ske2","des opt")
akurasitestingdes1
##          des ske1     des ske2      des opt
## SSE  3.785159e+12 2.186434e+13 1.520619e+13
## MSE  1.720527e+11 9.938337e+11 6.911904e+11
## MAPE 3.155151e+01 9.260952e+01 7.656490e+01

Perbandingan SES dan DES

MSEfull1 <-
  matrix(c(MSEtesting11,MSEtesting22,MSEtestingopt1,MSEtestingdes11,MSEtestingdes22,
           MSEtestingdesopt1),nrow=3,ncol=2)
row.names(MSEfull1)<- c("ske 1", "ske 2", "ske opt")
colnames(MSEfull1) <- c("ses","des")
MSEfull1
##                  ses          des
## ske 1   9.451133e+11 172052696472
## ske 2   1.796744e+12 993833700042
## ske opt 7.440267e+11 691190394469

Kedua metode dapat dibandingkan dengan menggunakan ukuran akurasi yang sama. Contoh di atas adalah perbandingan kedua metode dengan ukuran akurasi MSE. Hasilnya didapatkan metode DES lebih baik dibandingkan metode SES dilihat dari MSE yang lebih kecil nilainya.

Pemulusan Data Musiman

#membagi data menjadi training dan testing
training11<-Penumpang1[1:87,1]
testing11<-Penumpang1[88:109,1]
training11.ts<-ts(training11, frequency = 13)
testing11.ts<-ts(testing11, frequency = 13)

Kemudian akan dilakukan eskplorasi dengan plot data deret waktu sebagai berikut.

#Membuat plot time series
plot(Penumpang1.ts, col="red",main="Plot semua data")
points(Penumpang1.ts)

plot(training11.ts, col="blue",main="Plot data latih")
points(training11.ts)

plot(testing11.ts, col="green",main="Plot data uji")
points(testing11.ts)

Metode Holt-Winter untuk peramalan data musiman menggunakan tiga persamaan pemulusan yang terdiri atas persamaan untuk level \((L_t)\), trend \((B_t)\), dan komponen seasonal / musiman \((S_t)\) dengan parameter pemulusan berupa \(\alpha\), \(\beta\), dan \(\gamma\). Metode Holt-Winter musiman terbagi menjadi dua, yaitu metode aditif dan metode multiplikatif.

Pemulusan data musiman dengan metode Winter dilakukan menggunakan fungsi HoltWinters() dengan memasukkan argumen tambahan, yaitu gamma() dan seasonal() . Arguman seasonal() diinisialisasi menyesuaikan jenis musiman, aditif atau multiplikatif.

Winter Aditif

Perhitungan dengan model aditif dilakukan jika plot data asli menunjukkan fluktuasi musiman yang relatif stabil (konstan).

Pemulusan

#Pemulusan dengan winter aditif 
winter11 <- HoltWinters(training11.ts,alpha=0.2,beta=0.1,gamma=0.1,seasonal = "additive")
winter11$fitted
## Time Series:
## Start = c(2, 1) 
## End = c(7, 9) 
## Frequency = 13 
##               xhat     level        trend     season
## 2.000000 1179749.0 1027172.8   -188.18918  152764.42
## 2.076923 1134492.8 1023859.2   -500.72916  111134.35
## 2.153846  761843.9 1021196.1   -716.96502 -258635.27
## 2.230769  650773.4 1024454.6   -319.42210 -373361.73
## 2.307692 1168348.5 1028861.5    153.20991  139333.81
## 2.384615 1176633.4 1025561.6   -192.09945  151263.88
## 2.461538 1167460.4 1021255.8   -603.46649  146808.08
## 2.538462 1140308.4 1017460.4   -922.65464  123770.65
## 2.615385  749285.1 1017099.5   -866.48360 -266947.96
## 2.692308  714197.2 1092610.8   6771.29521 -385184.88
## 2.769231 1254173.9 1108233.9   7656.47081  138283.58
## 2.846154 1160827.4 1001243.7  -3808.18735  163391.81
## 2.923077 1134054.7  982024.7  -5349.27475  157379.27
## 3.000000 1111269.8  966156.7  -6401.14840  151514.26
## 3.076923 1058852.7  955418.2  -6834.88424  110269.40
## 3.153846  687311.3  950954.1  -6597.79801 -257045.10
## 3.230769  641177.3 1012438.1    210.37693 -371471.20
## 3.307692 1174599.5 1034274.0   2372.93146  137952.57
## 3.384615 1086155.6  943480.8  -6943.67901  149618.42
## 3.461538  970158.1  841112.9 -16486.11074  145531.32
## 3.538462  880588.6  777765.5 -21172.23205  123995.34
## 3.615385  527959.4  782898.0 -18541.76474 -236396.85
## 3.692308  470240.5  860783.7  -8899.01191 -381644.18
## 3.769231 1046392.4  952777.2   1190.23731   92424.94
## 3.846154 1046810.5  894354.2  -4771.09059  157227.46
## 3.923077  952960.9  812289.6 -12500.44137  153171.77
## 4.000000  866627.8  735752.6 -18904.09950  149779.32
## 4.076923  848451.1  752565.7 -15332.37492  111217.75
## 4.153846  534595.2  775875.7 -11468.13631 -229812.40
## 4.230769  514013.0  877038.9   -204.99979 -362820.98
## 4.307692 1107398.9  995091.9  11620.80116  100686.13
## 4.384615 1043719.6  928474.0   3796.92363  111448.69
## 4.461538  970714.4  848507.0  -4579.46808  126786.84
## 4.538462 1010611.3  877333.0  -1238.91508  134517.21
## 4.615385  707727.2  904001.3   1551.79825 -197825.83
## 4.692308  662553.6  993494.8  10345.97380 -341287.19
## 4.769231 1184564.0 1096384.1  19600.30177   68579.63
## 4.846154 1249692.4 1104891.4  18491.00175  126310.05
## 4.923077 1161281.3 1025064.9   8659.25326  127557.14
## 5.000000 1101379.1  938205.5   -892.61235  164066.22
## 5.076923 1074836.6  947987.1    174.80590  126674.70
## 5.153846  781895.9  964815.5   1840.17469 -184759.85
## 5.230769  729923.4 1036605.9   8835.19731 -315517.78
## 5.307692 1214517.4 1128032.5  17094.33004   69390.62
## 5.384615 1207491.5 1115424.3  14124.08165   77943.12
## 5.461538 1190086.0 1044334.3   5602.67121  140149.05
## 5.538462 1082792.4  942275.8  -5163.44914  145680.06
## 5.615385  785727.0  952046.2  -3670.05662 -162649.13
## 5.692308  723900.5 1024252.8   3917.60240 -304269.87
## 5.769231 1194028.4 1117077.7  12808.33237   64142.43
## 5.846154 1220485.9 1121530.1  11972.74359   86983.06
## 5.923077 1218419.7 1118588.7  10481.32512   89349.68
## 6.000000 1192385.3 1024068.3    -18.84853  168335.89
## 6.076923 1035799.7  913534.0 -11070.39471  133336.18
## 6.153846  751893.8  918173.0  -9499.44949 -156779.76
## 6.230769  697745.7  982358.0  -2131.00554 -282481.25
## 6.307692 1123033.7 1059707.0   5816.99949   57509.62
## 6.384615 1122302.0 1071981.7   6462.76604   43857.48
## 6.461538 1188548.9 1084405.5   7058.86684   97084.57
## 6.538462 1164962.7 1013997.0   -687.87164  151653.63
## 6.615385  771473.8  914355.6 -10583.22621 -132298.50
## 6.692308  709825.5  981357.2  -2824.74279 -268706.95
## 6.769231 1137347.7 1070205.1   6342.52793   60800.08
## 6.846154 1173318.1 1085102.7   7198.03333   81017.39
## 6.923077 1041951.7  996940.7  -2337.96920   47348.99
## 7.000000 1057533.8  941093.0  -7688.94381  124129.71
## 7.076923  982955.7  858513.7 -15177.97904  139619.96
## 7.153846  626693.6  775919.2 -21919.63269 -127305.99
## 7.230769  595924.1  858120.8 -11507.50407 -250689.23
## 7.307692 1018732.2  958916.7   -277.16622   60092.69
## 7.384615  884293.3  849265.9 -11214.53102   46241.88
## 7.461538  942842.5  883422.3  -6677.43611   66097.62
## 7.538462 1023273.8  914139.6  -2937.96609  112072.21
## 7.615385  745133.6  854960.3  -8562.10268 -101264.56
xhat11 <- winter11$fitted[,2]

winter11.opt<- HoltWinters(training11.ts, alpha= NULL,  beta = NULL, gamma = NULL, seasonal = "additive")
winter11.opt
## Holt-Winters exponential smoothing with trend and additive seasonal component.
## 
## Call:
## HoltWinters(x = training11.ts, alpha = NULL, beta = NULL, gamma = NULL,     seasonal = "additive")
## 
## Smoothing parameters:
##  alpha: 0.008449337
##  beta : 0
##  gamma: 0.7411293
## 
## Coefficients:
##             [,1]
## a    999629.5521
## b      -188.1892
## s1   147867.4819
## s2   150721.3069
## s3  -225292.0050
## s4  -258680.9990
## s5  -306463.6717
## s6  -239863.9159
## s7   131665.4440
## s8   133645.9221
## s9  -367557.2472
## s10   89002.7219
## s11   34146.5045
## s12 -250963.1585
## s13 -222563.2133
winter11.opt$fitted
## Time Series:
## Start = c(2, 1) 
## End = c(7, 9) 
## Frequency = 13 
##               xhat   level     trend      season
## 2.000000 1179749.0 1027173 -188.1892  152764.423
## 2.076923 1137798.7 1026853 -188.1892  111134.346
## 2.153846  767721.6 1026545 -188.1892 -258635.269
## 2.230769  652925.2 1026475 -188.1892 -373361.731
## 2.307692 1165614.1 1026468 -188.1892  139333.808
## 2.384615 1177233.2 1026157 -188.1892  151263.885
## 2.461538 1172410.3 1025790 -188.1892  146808.077
## 2.538462 1149008.1 1025426 -188.1892  123770.654
## 2.615385  758051.5 1025188 -188.1892 -266947.962
## 2.692308  642779.0 1028152 -188.1892 -385184.885
## 2.769231 1167036.7 1028941 -188.1892  138283.577
## 2.846154 1187849.5 1024646 -188.1892  163391.808
## 2.923077 1180769.4 1023578 -188.1892  157379.269
## 3.000000 1163643.5 1022551 -188.1892  141280.653
## 3.076923 1122308.6 1021737 -188.1892  100759.714
## 3.153846  772577.2 1021113 -188.1892 -248347.572
## 3.230769  665315.4 1023081 -188.1892 -357576.959
## 3.307692 1152069.2 1023602 -188.1892  128655.393
## 3.384615 1155188.1 1019668 -188.1892  135708.076
## 3.461538 1146119.7 1014865 -188.1892  131442.491
## 3.538462 1130464.0 1011211 -188.1892  119441.512
## 3.615385 1017081.9 1010023 -188.1892    7247.565
## 3.692308  709409.5 1009775 -188.1892 -300177.644
## 3.769231  792708.3 1011829 -188.1892 -218932.209
## 3.846154 1097986.7 1011265 -188.1892   86909.381
## 3.923077 1091592.1 1007379 -188.1892   84400.767
## 4.000000 1089982.4 1003315 -188.1892   86856.003
## 4.076923 1065399.3 1002748 -188.1892   62839.367
## 4.153846  941319.8 1002359 -188.1892  -60851.450
## 4.230769  707449.1 1003493 -188.1892 -295855.727
## 4.307692  809366.8 1006666 -188.1892 -197111.396
## 4.384615  739860.2 1005691 -188.1892 -265642.677
## 4.461538  834293.5 1004532 -188.1892 -170049.786
## 4.538462 1039187.6 1006907 -188.1892   32468.493
## 4.615385 1009583.0 1007657 -188.1892    2114.604
## 4.692308  903222.9 1008633 -188.1892 -105222.114
## 4.769231  758585.7 1010321 -188.1892 -251547.283
## 4.846154  778374.8 1013264 -188.1892 -234700.618
## 4.923077  759949.3 1012904 -188.1892 -252766.664
## 5.000000 1065840.5 1012072 -188.1892   53957.145
## 5.076923 1057842.7 1012635 -188.1892   45396.303
## 5.153846 1067210.8 1013294 -188.1892   54105.462
## 5.230769 1009975.7 1013650 -188.1892   -3485.901
## 5.307692  748823.4 1014585 -188.1892 -265572.960
## 5.384615  666765.0 1017076 -188.1892 -350123.153
## 5.461538 1070613.3 1017857 -188.1892   52944.543
## 5.538462 1127950.6 1014130 -188.1892  114008.939
## 5.615385 1117421.1 1014191 -188.1892  103418.235
## 5.692308 1072170.6 1014406 -188.1892   57953.034
## 5.769231 1035573.6 1015031 -188.1892   20730.819
## 5.846154  766044.3 1015829 -188.1892 -249596.196
## 5.923077  709853.4 1018850 -188.1892 -308808.560
## 6.000000 1137628.6 1018523 -188.1892  119293.814
## 6.076923 1133016.1 1014129 -188.1892  119075.777
## 6.153846 1115051.9 1013783 -188.1892  101457.494
## 6.230769 1107631.8 1013639 -188.1892   94181.102
## 6.307692  980670.4 1013345 -188.1892  -32486.607
## 6.384615  748578.3 1014633 -188.1892 -265866.226
## 6.461538  762823.6 1017854 -188.1892 -254842.327
## 6.538462 1153497.9 1017990 -188.1892  135695.875
## 6.615385 1151993.5 1013718 -188.1892  138463.252
## 6.692308 1142100.7 1013593 -188.1892  128696.028
## 6.769231 1119908.6 1013625 -188.1892  106471.732
## 6.846154 1043315.9 1013946 -188.1892   29558.379
## 6.923077  689747.6 1010827 -188.1892 -320891.507
## 7.000000  764627.9 1011354 -188.1892 -246538.250
## 7.076923 1115645.4 1010477 -188.1892  105356.445
## 7.153846 1111457.4 1006320 -188.1892  105325.897
## 7.230769 1091251.9 1006434 -188.1892   85005.687
## 7.307692 1102476.4 1006805 -188.1892   95859.121
## 7.384615 1031774.6 1001289 -188.1892   30673.801
## 7.461538  774951.3 1001771 -188.1892 -226631.919
## 7.538462  784925.8 1004582 -188.1892 -219467.621
## 7.615385 1147747.7 1004031 -188.1892  143904.556
xhat11.opt <- winter11.opt$fitted[,2]

Peramalan

#Forecast
forecast11 <- predict(winter11, n.ahead = 22)
forecast11.opt <- predict(winter11.opt, n.ahead = 22)

Plot Deret Waktu

#Plot time series
plot(training11.ts,main="Winter 0.2;0.1;0.1",type="l",col="black",
     xlim=c(1,25),pch=12)
lines(xhat11,type="l",col="red")
lines(xhat11.opt,type="l",col="blue")
lines(forecast11,type="l",col="red")
lines(forecast11.opt,type="l",col="blue")
legend("topleft",c("Actual Data",expression(paste(winter11)),
                   expression(paste(winter11.opt))),cex=0.5,
       col=c("black","red","blue"),lty=1)

Akurasi Data Latih

#Akurasi data training
SSE11<-winter11$SSE
MSE11<-winter11$SSE/length(training11.ts)
RMSE11<-sqrt(MSE11)
akurasi11 <- matrix(c(SSE11,MSE11,RMSE11))
row.names(akurasi11)<- c("SSE", "MSE", "RMSE")
colnames(akurasi11) <- c("Akurasi")
akurasi11
##           Akurasi
## SSE  8.355452e+12
## MSE  9.603968e+10
## RMSE 3.099027e+05
SSE11.opt<-winter11.opt$SSE
MSE11.opt<-winter11.opt$SSE/length(training11.ts)
RMSE11.opt<-sqrt(MSE11.opt)
akurasi11.opt <- matrix(c(SSE11.opt,MSE11.opt,RMSE11.opt))
row.names(akurasi11.opt)<- c("SSE1.opt", "MSE1.opt", "RMSE1.opt")
colnames(akurasi11.opt) <- c("Akurasi")
akurasi11.opt
##                Akurasi
## SSE1.opt  4.488631e+12
## MSE1.opt  5.159345e+10
## RMSE1.opt 2.271419e+05
akurasi11.train = data.frame(Model_Winter = c("Winter 1","Winter1 optimal"),
                            Nilai_SSE=c(SSE11,SSE11.opt),
                            Nilai_MSE=c(MSE11,MSE11.opt),Nilai_RMSE=c(RMSE11,RMSE11.opt))
akurasi11.train
##      Model_Winter    Nilai_SSE   Nilai_MSE Nilai_RMSE
## 1        Winter 1 8.355452e+12 96039681806   309902.7
## 2 Winter1 optimal 4.488631e+12 51593454573   227141.9

Akurasi Data Uji

#Akurasi Data Testing
forecast11<-data.frame(forecast11)
testing11.ts<-data.frame(testing11.ts)
selisih11<-forecast11-testing11.ts
SSEtesting11<-sum(selisih11^2)
MSEtesting11<-SSEtesting11/length(testing11.ts)

forecast11.opt<-data.frame(forecast11.opt)
selisih11.opt<-forecast11.opt-testing11.ts
SSEtesting11.opt<-sum(selisih11.opt^2)
MSEtesting11.opt<-SSEtesting11.opt/length(testing11.ts)

Winter Multiplikatif

Model multiplikatif digunakan cocok digunakan jika plot data asli menunjukkan fluktuasi musiman yang bervariasi.

Pemulusan

#Pemulusan dengan winter multiplikatif 
winter22 <- HoltWinters(training11.ts,alpha=0.2,beta=0.1,gamma=0.3,seasonal = "multiplicative")
winter22$fitted
## Time Series:
## Start = c(2, 1) 
## End = c(7, 9) 
## Frequency = 13 
##               xhat     level        trend    season
## 2.000000 1178154.3 1027172.8   -188.18918 1.1471977
## 2.076923 1132716.5 1024538.2   -432.82615 1.1060546
## 2.153846  765435.4 1022471.6   -596.20783 0.7490496
## 2.230769  658407.3 1026223.7   -161.37302 0.6416835
## 2.307692 1169501.4 1031048.5    337.24500 1.1339127
## 2.384615 1178909.2 1028137.1     12.38046 1.1466321
## 2.461538 1170154.4 1024164.9   -386.07665 1.1429758
## 2.538462 1141634.7 1020514.8   -712.47762 1.1194666
## 2.615385  754480.6 1020067.2   -685.99562 0.7401359
## 2.692308  712624.2 1121171.5   9493.03626 0.6302702
## 2.769231 1309908.9 1145208.1  10947.39054 1.1329868
## 2.846154 1209835.3 1045127.2   -155.43779 1.1577684
## 2.923077 1175896.1 1023195.0  -2333.11485 1.1518660
## 3.000000 1144473.6 1004465.0  -3972.80350 1.1439106
## 3.076923 1088437.4  990895.2  -4932.50440 1.1039337
## 3.153846  735916.5  982750.4  -5253.72734 0.7528583
## 3.230769  682527.1 1055015.5   2498.15598 0.6454073
## 3.307692 1223116.4 1078207.0   4567.48228 1.1296133
## 3.384615 1126635.3  991708.3  -4539.12746 1.1412788
## 3.461538 1005207.9  896463.7 -13609.67727 1.1385890
## 3.538462  915112.0  835540.1 -18341.07488 1.1198154
## 3.615385  671321.1  834523.3 -16608.64643 0.8207716
## 3.692308  570840.1  900465.2  -8353.58706 0.6398751
## 3.769231 1010906.6 1018343.4   4269.59241 0.9885524
## 3.846154 1092600.0  969488.8  -1042.83376 1.1281993
## 3.923077  997301.0  891818.1  -8705.61151 1.1293023
## 4.000000  908329.9  818555.3 -15161.33263 1.1306158
## 4.076923  896032.0  827608.1 -12739.92557 1.0996037
## 4.153846  681004.8  841356.0 -10091.13588 0.8192392
## 4.230769  616091.3  933005.0     82.87090 0.6602715
## 4.307692 1101806.1 1081272.8  14901.36993 1.0051378
## 4.384615 1029456.5 1019448.2   7228.76817 1.0027073
## 4.461538 1003004.7  945984.1   -840.51564 1.0612193
## 4.538462 1115845.7  970536.5   1698.77722 1.1477116
## 4.615385  893307.7  978212.6   2296.51132 0.9110652
## 4.692308  767524.8 1036296.2   7875.21816 0.7350563
## 4.769231 1070503.8 1141509.6  17609.03591 0.9235498
## 4.846154 1204823.1 1171807.8  18877.94900 1.0118733
## 4.923077 1137384.6 1102390.5  10048.42316 1.0224244
## 5.000000 1199408.8 1023689.7   1173.50495 1.1703111
## 5.076923 1161277.1 1017231.3    410.30900 1.1411455
## 5.153846  942597.9 1017085.6    354.71372 0.9264405
## 5.230769  817055.5 1058252.3   4435.90676 0.7688573
## 5.307692 1060981.2 1147443.7  12911.45854 0.9143590
## 5.384615 1057109.7 1161454.0  13021.34616 0.9000697
## 5.461538 1226004.4 1113216.0   6895.40508 1.0945380
## 5.538462 1169525.3 1015185.9  -3597.13952 1.1561272
## 5.615385  975444.5 1009501.9  -3805.82450 0.9699197
## 5.692308  846661.4 1044805.6    105.12779 0.8102715
## 5.769231 1059401.3 1124334.9   8047.54283 0.9355508
## 5.846154 1063028.2 1152231.2  10032.42131 0.9146189
## 5.923077 1092153.8 1180388.5  11844.90857 0.9160570
## 6.000000 1285397.2 1105177.1   3139.27630 1.1597746
## 6.076923 1127844.1  996986.3  -7993.73479 1.1403970
## 6.153846  948372.7  986625.4  -8230.44400 0.9693147
## 6.230769  844698.7 1013872.3  -4682.71452 0.8370069
## 6.307692  979781.4 1069033.1   1301.64101 0.9153971
## 6.384615  936318.3 1108687.7   5136.93031 0.8406335
## 6.461538 1126990.2 1165164.1  10270.88382 0.9587857
## 6.538462 1281217.8 1107478.6   3475.24126 1.1532593
## 6.615385 1011326.7 1004989.3  -7121.21054 1.0134874
## 6.692308  899076.1 1027088.3  -4199.19580 0.8789576
## 6.769231 1037056.5 1084123.6   1924.26110 0.9548902
## 6.846154 1044117.9 1116012.9   4920.76378 0.9314716
## 6.923077  865760.6 1046299.1  -2542.69318 0.8294661
## 7.000000 1021421.8 1021728.4  -4745.49729 1.0043648
## 7.076923 1066756.1  949609.0 -11482.88619 1.1371138
## 7.153846  853680.1  864099.5 -18885.54239 1.0100165
## 7.230769  795231.1  903355.6 -13071.38146 0.8932328
## 7.307692  921385.4  971385.1  -4961.29193 0.9533968
## 7.384615  759164.4  872124.9 -14391.18242 0.8850816
## 7.461538  826753.8  937270.7  -6437.48315 0.8881867
## 7.538462 1006800.9  999076.2    386.80792 1.0073418
## 7.615385  987332.6  946902.1  -4869.27994 1.0480872
xhat22 <- winter22$fitted[,1]

winter22.opt<- HoltWinters(training11.ts, alpha= NULL,  beta = NULL, gamma = NULL, seasonal = "multiplicative")
winter22.opt$fitted
## Time Series:
## Start = c(2, 1) 
## End = c(7, 9) 
## Frequency = 13 
##               xhat   level     trend    season
## 2.000000 1178154.3 1027173 -188.1892 1.1471977
## 2.076923 1135692.9 1026985 -188.1892 1.1060546
## 2.153846  768980.5 1026796 -188.1892 0.7490496
## 2.230769  658636.8 1026608 -188.1892 0.6416835
## 2.307692 1163657.3 1026420 -188.1892 1.1339127
## 2.384615 1176494.5 1026232 -188.1892 1.1466321
## 2.461538 1172527.9 1026044 -188.1892 1.1429758
## 2.538462 1148200.3 1025855 -188.1892 1.1194666
## 2.615385  758993.9 1025667 -188.1892 0.7401359
## 2.692308  646210.3 1025479 -188.1892 0.6302702
## 2.769231 1161427.8 1025291 -188.1892 1.1329868
## 2.846154 1186613.6 1025103 -188.1892 1.1577684
## 2.923077 1180347.4 1024914 -188.1892 1.1518660
## 3.000000 1165298.0 1024726 -188.1892 1.1373886
## 3.076923 1124384.2 1024538 -188.1892 1.0976564
## 3.153846  776272.5 1024350 -188.1892 0.7579589
## 3.230769  668359.9 1024162 -188.1892 0.6527120
## 3.307692 1151877.7 1023974 -188.1892 1.1251164
## 3.384615 1159058.1 1023785 -188.1892 1.1323381
## 3.461538 1154672.6 1023597 -188.1892 1.1282611
## 3.538462 1141821.0 1023409 -188.1892 1.1159087
## 3.615385 1023731.9 1023221 -188.1892 1.0006836
## 3.692308  725056.7 1023033 -188.1892 0.7088631
## 3.769231  814540.3 1022844 -188.1892 0.7964947
## 3.846154 1110128.7 1022656 -188.1892 1.0857344
## 3.923077 1106708.9 1022468 -188.1892 1.0825889
## 4.000000 1108289.8 1022280 -188.1892 1.0843351
## 4.076923 1083256.3 1022092 -188.1892 1.0600378
## 4.153846  954499.8 1021903 -188.1892 0.9342131
## 4.230769  724734.3 1021715 -188.1892 0.7094616
## 4.307692  831779.9 1021527 -188.1892 0.8144015
## 4.384615  762372.2 1021339 -188.1892 0.7465815
## 4.461538  851962.0 1021151 -188.1892 0.8344694
## 4.538462 1046196.2 1020963 -188.1892 1.0249045
## 4.615385 1011518.8 1020774 -188.1892 0.9911155
## 4.692308  902113.6 1020586 -188.1892 0.8840802
## 4.769231  765170.5 1020398 -188.1892 0.7500129
## 4.846154  785346.3 1020210 -188.1892 0.7699311
## 4.923077  764642.1 1020022 -188.1892 0.7497716
## 5.000000 1060463.6 1019833 -188.1892 1.0400320
## 5.076923 1050874.8 1019645 -188.1892 1.0308182
## 5.153846 1054808.1 1019457 -188.1892 1.0348674
## 5.230769  995552.6 1019269 -188.1892 0.9769125
## 5.307692  747015.6 1019081 -188.1892 0.7331644
## 5.384615  662091.6 1018892 -188.1892 0.6499350
## 5.461538 1054588.9 1018704 -188.1892 1.0354170
## 5.538462 1118135.7 1018516 -188.1892 1.0980115
## 5.615385 1106434.4 1018328 -188.1892 1.0867216
## 5.692308 1059769.5 1018140 -188.1892 1.0410805
## 5.769231 1023971.5 1017951 -188.1892 1.0060998
## 5.846154  763953.2 1017763 -188.1892 0.7507585
## 5.923077  704830.7 1017575 -188.1892 0.6927853
## 6.000000 1125444.5 1017387 -188.1892 1.1064156
## 6.076923 1125148.2 1017199 -188.1892 1.1063290
## 6.153846 1107306.2 1017011 -188.1892 1.0889868
## 6.230769 1098674.3 1016822 -188.1892 1.0806978
## 6.307692  973672.9 1016634 -188.1892 0.9579190
## 6.384615  745961.8 1016446 -188.1892 0.7340281
## 6.461538  763576.0 1016258 -188.1892 0.7514997
## 6.538462 1143613.8 1016070 -188.1892 1.1257355
## 6.615385 1145797.5 1015881 -188.1892 1.1280940
## 6.692308 1135046.9 1015693 -188.1892 1.1177166
## 6.769231 1113378.5 1015505 -188.1892 1.0965823
## 6.846154 1035665.6 1015317 -188.1892 1.0202309
## 6.923077  694957.4 1015129 -188.1892 0.6847273
## 7.000000  774940.3 1014940 -188.1892 0.7636744
## 7.076923 1114706.1 1014752 -188.1892 1.0987045
## 7.153846 1113959.2 1014564 -188.1892 1.0981720
## 7.230769 1093503.6 1014376 -188.1892 1.0782063
## 7.307692 1101420.5 1014188 -188.1892 1.0862140
## 7.384615 1035033.6 1014000 -188.1892 1.0209332
## 7.461538  788691.1 1013811 -188.1892 0.7780911
## 7.538462  801813.3 1013623 -188.1892 0.7911838
## 7.615385 1152777.9 1013435 -188.1892 1.1377069
xhat22.opt <- winter22.opt$fitted[,1]

Peramalan

#Forecast
forecast22 <- predict(winter22, n.ahead = 22)
forecast22.opt <- predict(winter22.opt, n.ahead = 22)

Plot Deret Waktu

#Plot time series
plot(training11.ts,main="Winter 0.2;0.1;0.1",type="l",col="black",
     xlim=c(1,25),pch=12)
lines(xhat22,type="l",col="red")
lines(xhat22.opt,type="l",col="blue")
lines(forecast22,type="l",col="red")
lines(forecast22.opt,type="l",col="blue")
legend("topleft",c("Actual Data",expression(paste(winter22)),
                   expression(paste(winter22.opt))),cex=0.5,
       col=c("black","red","blue"),lty=1)

Akurasi Data Latih

#Akurasi data training
SSE22<-winter22$SSE
MSE22<-winter22$SSE/length(training11.ts)
RMSE22<-sqrt(MSE22)
akurasi11 <- matrix(c(SSE22,MSE22,RMSE22))
row.names(akurasi11)<- c("SSE2", "MSE2", "RMSE2")
colnames(akurasi11) <- c("Akurasi lamda=0.2")
akurasi11
##       Akurasi lamda=0.2
## SSE2       6.611619e+12
## MSE2       7.599562e+10
## RMSE2      2.756730e+05
SSE22.opt<-winter22.opt$SSE
MSE22.opt<-winter22.opt$SSE/length(training11.ts)
RMSE22.opt<-sqrt(MSE22.opt)
akurasi11.opt <- matrix(c(SSE22.opt,MSE22.opt,RMSE22.opt))
row.names(akurasi11.opt)<- c("SSE2.opt", "MSE2.opt", "RMSE2.opt")
colnames(akurasi11.opt) <- c("Akurasi")
akurasi11.opt
##                Akurasi
## SSE2.opt  4.472723e+12
## MSE2.opt  5.141061e+10
## RMSE2.opt 2.267391e+05
akurasi22.train = data.frame(Model_Winter = c("Winter 1","winter2 optimal"),
                            Nilai_SSE=c(SSE22,SSE22.opt),
                            Nilai_MSE=c(MSE22,MSE22.opt),Nilai_RMSE=c(RMSE22,RMSE22.opt))
akurasi22.train
##      Model_Winter    Nilai_SSE   Nilai_MSE Nilai_RMSE
## 1        Winter 1 6.611619e+12 75995621642   275673.0
## 2 winter2 optimal 4.472723e+12 51410606367   226739.1

Akurasi Data Uji

#Akurasi Data Testing
forecast22<-data.frame(forecast22)
testing11.ts<-data.frame(testing11.ts)
selisih22<-forecast22-testing11.ts
SSEtesting22<-sum(selisih22^2)
MSEtesting22<-SSEtesting22/length(testing11.ts)

forecast22.opt<-data.frame(forecast22.opt)
selisih22.opt<-forecast22.opt-testing11.ts
SSEtesting22.opt<-sum(selisih22.opt^2)
MSEtesting22.opt<-SSEtesting22.opt/length(testing11.ts)