LATIHAN 1 MPDW

Tugas Praktikum 1 MPDW

Ghonniyu Hiban Saputra - G1401221012

Setiap kelompok mencari satu gugus data yang menarik dan terbaru (minimal 500 periode data), data ini dibagi ke setiap anggota. Setiap anggota melakukan eksplorasi kemudian mengerjakan pemulusan dengan SMA, DMA, DES, SES, Winter.

Pengumpulan tugas dilakukan ke github pribadi. File yang dikumpulkan file data (excel/csv), Rmd dan HTML. Upload data keseluruhan ke github kelompok (link github kelompok jangan lupa input ke excel)

Penjelasan Topik

Kunjungan Pengunjung Internasional ke Indonesia (Soekarno Hatta) 2022-2024 Data Harian

Berdasarkan pembagian topik yang telah dibagi oleh dosen pengampu, didapatkan kelompok kami mendapatkan topik pariwisata. Dari hal tersebut kami telah mencari beberapa referensi dan didapatkan data kunjungan pengunjung internasional ke Indonesia dari sumber SIASATI. Data diambil dari rentang waktu 1 Agustus 2022 hingga 1 Agustus 2024 (Didasarkan dari syarat minimum periode dan data terbaru).

Library

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

Impor Data

#install.packages("rio") #install jika belum ada
library(rio)
data8 <- read.csv("C:/Users/Ghonniyu/Downloads/Data_1.csv")
data8$Intern <- as.double(data8$Intern)
data8
##     Periode Intern
## 1         1   9664
## 2         2   8294
## 3         3   9970
## 4         4  10082
## 5         5   9585
## 6         6   8774
## 7         7  12043
## 8         8   9974
## 9         9   8948
## 10       10   9184
## 11       11   9433
## 12       12   9556
## 13       13   8064
## 14       14   9108
## 15       15   8820
## 16       16   8790
## 17       17  10211
## 18       18   9814
## 19       19  10365
## 20       20   9342
## 21       21  12249
## 22       22  10541
## 23       23  10734
## 24       24  10203
## 25       25  10524
## 26       26  11733
## 27       27   9741
## 28       28  13118
## 29       29  10814
## 30       30  10130
## 31       31  10776
## 32       32  12230
## 33       33  12516
## 34       34  10776
## 35       35  13812
## 36       36  12192
## 37       37  11463
## 38       38  11731
## 39       39  12282
## 40       40  13124
## 41       41  10084
## 42       42  15315
## 43       43  12223
## 44       44  10871
## 45       45  13146
## 46       46  13357
## 47       47  13030
## 48       48  10476
## 49       49  15220
## 50       50  11780
## 51       51  11115
## 52       52  12820
## 53       53  13413
## 54       54  12449
## 55       55  10582
## 56       56  14518
## 57       57  13287
## 58       58  11280
## 59       59  13465
## 60       60  13488
## 61       61  14142
## 62       62  11241
## 63       63  15067
## 64       64  13662
## 65       65  13385
## 66       66  14326
## 67       67  14200
## 68       68  13736
## 69       69  13244
## 70       70  16787
## 71       71  13617
## 72       72  13110
## 73       73  14668
## 74       74  14244
## 75       75  14692
## 76       76  11996
## 77       77  15665
## 78       78  14095
## 79       79  13774
## 80       80  13701
## 81       81  13484
## 82       82  14153
## 83       83  12820
## 84       84  15269
## 85       85  14379
## 86       86  12438
## 87       87  13586
## 88       88  14062
## 89       89  13457
## 90       90  12262
## 91       91  15564
## 92       92  13145
## 93       93  13943
## 94       94  13415
## 95       95  13699
## 96       96  14491
## 97       97  13344
## 98       98  14680
## 99       99  13694
## 100     100  12729
## 101     101  13120
## 102     102  13847
## 103     103  15661
## 104     104  13642
## 105     105  15485
## 106     106  13907
## 107     107  13016
## 108     108  13526
## 109     109  12577
## 110     110  15001
## 111     111  14079
## 112     112  15721
## 113     113  13654
## 114     114  13468
## 115     115  13530
## 116     116  14265
## 117     117  14884
## 118     118  12610
## 119     119  15031
## 120     120  14041
## 121     121  13587
## 122     122  14455
## 123     123  13407
## 124     124  13944
## 125     125  13009
## 126     126  15197
## 127     127  13517
## 128     128  12654
## 129     129  14826
## 130     130  14145
## 131     131  15797
## 132     132  14028
## 133     133  16255
## 134     134  13962
## 135     135  12314
## 136     136  13609
## 137     137  14141
## 138     138  13803
## 139     139  12212
## 140     140  14851
## 141     141  12397
## 142     142  12070
## 143     143  13326
## 144     144  13920
## 145     145  14020
## 146     146  12232
## 147     147  12737

Eksplorasi Data

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

View(data8)
str(data8)
## 'data.frame':    147 obs. of  2 variables:
##  $ Periode: int  1 2 3 4 5 6 7 8 9 10 ...
##  $ Intern : num  9664 8294 9970 10082 9585 ...
dim(data8)
## [1] 147   2

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

data8.ts <- ts(data8$Intern)
data8.ts
## Time Series:
## Start = 1 
## End = 147 
## Frequency = 1 
##   [1]  9664  8294  9970 10082  9585  8774 12043  9974  8948  9184  9433  9556
##  [13]  8064  9108  8820  8790 10211  9814 10365  9342 12249 10541 10734 10203
##  [25] 10524 11733  9741 13118 10814 10130 10776 12230 12516 10776 13812 12192
##  [37] 11463 11731 12282 13124 10084 15315 12223 10871 13146 13357 13030 10476
##  [49] 15220 11780 11115 12820 13413 12449 10582 14518 13287 11280 13465 13488
##  [61] 14142 11241 15067 13662 13385 14326 14200 13736 13244 16787 13617 13110
##  [73] 14668 14244 14692 11996 15665 14095 13774 13701 13484 14153 12820 15269
##  [85] 14379 12438 13586 14062 13457 12262 15564 13145 13943 13415 13699 14491
##  [97] 13344 14680 13694 12729 13120 13847 15661 13642 15485 13907 13016 13526
## [109] 12577 15001 14079 15721 13654 13468 13530 14265 14884 12610 15031 14041
## [121] 13587 14455 13407 13944 13009 15197 13517 12654 14826 14145 15797 14028
## [133] 16255 13962 12314 13609 14141 13803 12212 14851 12397 12070 13326 13920
## [145] 14020 12232 12737

Menampilkan ringkasan data

summary(data8.ts)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    8064   11732   13326   12776   14034   16787

Membuat plot data deret waktu

ts.plot(data8.ts, xlab="Time Period ", ylab="Penumpang Internasional", 
        main = "Time Series Plot")
points(data8.ts)

SMA & DMA

Pembagian Data

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

#membagi data latih dan data uji
training_ma <- data8[1:118,]
testing_ma <- data8[119:147,]
train_ma.ts <- ts(training_ma$Intern)
test_ma.ts <- ts(testing_ma$Intern)

Eksplorasi Data

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

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

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

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

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

#Eksplorasi dengan GGPLOT
library(ggplot2)
ggplot() + 
  geom_line(data = training_ma, aes(x = Periode, y = Intern, col = "Data Latih")) +
  geom_line(data = testing_ma, aes(x = Periode, y = Intern, col = "Data Uji")) +
  labs(x = "Periode Waktu", y = "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)

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

data.sma<-SMA(train_ma.ts, n=4)
data.sma
## Time Series:
## Start = 1 
## End = 118 
## Frequency = 1 
##   [1]       NA       NA       NA  9502.50  9482.75  9602.75 10121.00 10094.00
##   [9]  9934.75 10037.25  9384.75  9280.25  9059.25  9040.25  8887.00  8695.50
##  [17]  9232.25  9408.75  9795.00  9933.00 10442.50 10624.25 10716.50 10931.75
##  [25] 10500.50 10798.50 10550.25 11279.00 11351.50 10950.75 11209.50 10987.50
##  [33] 11413.00 11574.50 12333.50 12324.00 12060.75 12299.50 11917.00 12150.00
##  [41] 11805.25 12701.25 12686.50 12123.25 12888.75 12399.25 12601.00 12502.25
##  [49] 13020.75 12626.50 12147.75 12733.75 12282.00 12449.25 12316.00 12740.50
##  [57] 12709.00 12416.75 13137.50 12880.00 13093.75 13084.00 13484.50 13528.00
##  [65] 13338.75 14110.00 13893.25 13911.75 13876.50 14491.75 14346.00 14189.50
##  [73] 14545.50 13909.75 14178.50 13900.00 14149.25 14112.00 13882.50 14308.75
##  [81] 13763.50 13778.00 13539.50 13931.50 14155.25 13726.50 13918.00 13616.25
##  [89] 13385.75 13341.75 13836.25 13607.00 13728.50 14016.75 13550.50 13887.00
##  [97] 13737.25 14053.50 14052.25 13611.75 13555.75 13347.50 13839.25 14067.50
## [105] 14658.75 14673.75 14012.50 13983.50 13256.50 13530.00 13795.75 14344.50
## [113] 14613.75 14230.50 14093.25 13729.25 14036.75 13822.25

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.ramal<-c(NA,data.sma)
data.ramal #forecast 1 periode ke depan
##   [1]       NA       NA       NA       NA  9502.50  9482.75  9602.75 10121.00
##   [9] 10094.00  9934.75 10037.25  9384.75  9280.25  9059.25  9040.25  8887.00
##  [17]  8695.50  9232.25  9408.75  9795.00  9933.00 10442.50 10624.25 10716.50
##  [25] 10931.75 10500.50 10798.50 10550.25 11279.00 11351.50 10950.75 11209.50
##  [33] 10987.50 11413.00 11574.50 12333.50 12324.00 12060.75 12299.50 11917.00
##  [41] 12150.00 11805.25 12701.25 12686.50 12123.25 12888.75 12399.25 12601.00
##  [49] 12502.25 13020.75 12626.50 12147.75 12733.75 12282.00 12449.25 12316.00
##  [57] 12740.50 12709.00 12416.75 13137.50 12880.00 13093.75 13084.00 13484.50
##  [65] 13528.00 13338.75 14110.00 13893.25 13911.75 13876.50 14491.75 14346.00
##  [73] 14189.50 14545.50 13909.75 14178.50 13900.00 14149.25 14112.00 13882.50
##  [81] 14308.75 13763.50 13778.00 13539.50 13931.50 14155.25 13726.50 13918.00
##  [89] 13616.25 13385.75 13341.75 13836.25 13607.00 13728.50 14016.75 13550.50
##  [97] 13887.00 13737.25 14053.50 14052.25 13611.75 13555.75 13347.50 13839.25
## [105] 14067.50 14658.75 14673.75 14012.50 13983.50 13256.50 13530.00 13795.75
## [113] 14344.50 14613.75 14230.50 14093.25 13729.25 14036.75 13822.25

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

data.gab<-cbind(aktual=c(train_ma.ts,rep(NA,29)),pemulusan=c(data.sma,rep(NA,29)),ramalan=c(data.ramal,rep(data.ramal[length(data.ramal)],28)))
data.gab #forecast 29 periode ke depan
##        aktual pemulusan  ramalan
##   [1,]   9664        NA       NA
##   [2,]   8294        NA       NA
##   [3,]   9970        NA       NA
##   [4,]  10082   9502.50       NA
##   [5,]   9585   9482.75  9502.50
##   [6,]   8774   9602.75  9482.75
##   [7,]  12043  10121.00  9602.75
##   [8,]   9974  10094.00 10121.00
##   [9,]   8948   9934.75 10094.00
##  [10,]   9184  10037.25  9934.75
##  [11,]   9433   9384.75 10037.25
##  [12,]   9556   9280.25  9384.75
##  [13,]   8064   9059.25  9280.25
##  [14,]   9108   9040.25  9059.25
##  [15,]   8820   8887.00  9040.25
##  [16,]   8790   8695.50  8887.00
##  [17,]  10211   9232.25  8695.50
##  [18,]   9814   9408.75  9232.25
##  [19,]  10365   9795.00  9408.75
##  [20,]   9342   9933.00  9795.00
##  [21,]  12249  10442.50  9933.00
##  [22,]  10541  10624.25 10442.50
##  [23,]  10734  10716.50 10624.25
##  [24,]  10203  10931.75 10716.50
##  [25,]  10524  10500.50 10931.75
##  [26,]  11733  10798.50 10500.50
##  [27,]   9741  10550.25 10798.50
##  [28,]  13118  11279.00 10550.25
##  [29,]  10814  11351.50 11279.00
##  [30,]  10130  10950.75 11351.50
##  [31,]  10776  11209.50 10950.75
##  [32,]  12230  10987.50 11209.50
##  [33,]  12516  11413.00 10987.50
##  [34,]  10776  11574.50 11413.00
##  [35,]  13812  12333.50 11574.50
##  [36,]  12192  12324.00 12333.50
##  [37,]  11463  12060.75 12324.00
##  [38,]  11731  12299.50 12060.75
##  [39,]  12282  11917.00 12299.50
##  [40,]  13124  12150.00 11917.00
##  [41,]  10084  11805.25 12150.00
##  [42,]  15315  12701.25 11805.25
##  [43,]  12223  12686.50 12701.25
##  [44,]  10871  12123.25 12686.50
##  [45,]  13146  12888.75 12123.25
##  [46,]  13357  12399.25 12888.75
##  [47,]  13030  12601.00 12399.25
##  [48,]  10476  12502.25 12601.00
##  [49,]  15220  13020.75 12502.25
##  [50,]  11780  12626.50 13020.75
##  [51,]  11115  12147.75 12626.50
##  [52,]  12820  12733.75 12147.75
##  [53,]  13413  12282.00 12733.75
##  [54,]  12449  12449.25 12282.00
##  [55,]  10582  12316.00 12449.25
##  [56,]  14518  12740.50 12316.00
##  [57,]  13287  12709.00 12740.50
##  [58,]  11280  12416.75 12709.00
##  [59,]  13465  13137.50 12416.75
##  [60,]  13488  12880.00 13137.50
##  [61,]  14142  13093.75 12880.00
##  [62,]  11241  13084.00 13093.75
##  [63,]  15067  13484.50 13084.00
##  [64,]  13662  13528.00 13484.50
##  [65,]  13385  13338.75 13528.00
##  [66,]  14326  14110.00 13338.75
##  [67,]  14200  13893.25 14110.00
##  [68,]  13736  13911.75 13893.25
##  [69,]  13244  13876.50 13911.75
##  [70,]  16787  14491.75 13876.50
##  [71,]  13617  14346.00 14491.75
##  [72,]  13110  14189.50 14346.00
##  [73,]  14668  14545.50 14189.50
##  [74,]  14244  13909.75 14545.50
##  [75,]  14692  14178.50 13909.75
##  [76,]  11996  13900.00 14178.50
##  [77,]  15665  14149.25 13900.00
##  [78,]  14095  14112.00 14149.25
##  [79,]  13774  13882.50 14112.00
##  [80,]  13701  14308.75 13882.50
##  [81,]  13484  13763.50 14308.75
##  [82,]  14153  13778.00 13763.50
##  [83,]  12820  13539.50 13778.00
##  [84,]  15269  13931.50 13539.50
##  [85,]  14379  14155.25 13931.50
##  [86,]  12438  13726.50 14155.25
##  [87,]  13586  13918.00 13726.50
##  [88,]  14062  13616.25 13918.00
##  [89,]  13457  13385.75 13616.25
##  [90,]  12262  13341.75 13385.75
##  [91,]  15564  13836.25 13341.75
##  [92,]  13145  13607.00 13836.25
##  [93,]  13943  13728.50 13607.00
##  [94,]  13415  14016.75 13728.50
##  [95,]  13699  13550.50 14016.75
##  [96,]  14491  13887.00 13550.50
##  [97,]  13344  13737.25 13887.00
##  [98,]  14680  14053.50 13737.25
##  [99,]  13694  14052.25 14053.50
## [100,]  12729  13611.75 14052.25
## [101,]  13120  13555.75 13611.75
## [102,]  13847  13347.50 13555.75
## [103,]  15661  13839.25 13347.50
## [104,]  13642  14067.50 13839.25
## [105,]  15485  14658.75 14067.50
## [106,]  13907  14673.75 14658.75
## [107,]  13016  14012.50 14673.75
## [108,]  13526  13983.50 14012.50
## [109,]  12577  13256.50 13983.50
## [110,]  15001  13530.00 13256.50
## [111,]  14079  13795.75 13530.00
## [112,]  15721  14344.50 13795.75
## [113,]  13654  14613.75 14344.50
## [114,]  13468  14230.50 14613.75
## [115,]  13530  14093.25 14230.50
## [116,]  14265  13729.25 14093.25
## [117,]  14884  14036.75 13729.25
## [118,]  12610  13822.25 14036.75
## [119,]     NA        NA 13822.25
## [120,]     NA        NA 13822.25
## [121,]     NA        NA 13822.25
## [122,]     NA        NA 13822.25
## [123,]     NA        NA 13822.25
## [124,]     NA        NA 13822.25
## [125,]     NA        NA 13822.25
## [126,]     NA        NA 13822.25
## [127,]     NA        NA 13822.25
## [128,]     NA        NA 13822.25
## [129,]     NA        NA 13822.25
## [130,]     NA        NA 13822.25
## [131,]     NA        NA 13822.25
## [132,]     NA        NA 13822.25
## [133,]     NA        NA 13822.25
## [134,]     NA        NA 13822.25
## [135,]     NA        NA 13822.25
## [136,]     NA        NA 13822.25
## [137,]     NA        NA 13822.25
## [138,]     NA        NA 13822.25
## [139,]     NA        NA 13822.25
## [140,]     NA        NA 13822.25
## [141,]     NA        NA 13822.25
## [142,]     NA        NA 13822.25
## [143,]     NA        NA 13822.25
## [144,]     NA        NA 13822.25
## [145,]     NA        NA 13822.25
## [146,]     NA        NA 13822.25
## [147,]     NA        NA 13822.25

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

ts.plot(data8.ts, xlab="Time Period ", ylab="Intern", main= "SMA N=4 Data Intern")
points(data8.ts)
lines(data.gab[,2],col="green",lwd=2)
lines(data.gab[,3],col="red",lwd=2)
legend("topleft",c("data aktual","data pemulusan","data peramalan"), lty=8, col=c("black","green","red"), 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.sma = train_ma.ts-data.ramal[1:length(train_ma.ts)]
SSE_train.sma = sum(error_train.sma[5:length(train_ma.ts)]^2)
MSE_train.sma = mean(error_train.sma[5:length(train_ma.ts)]^2)
MAPE_train.sma = mean(abs((error_train.sma[5:length(train_ma.ts)]/train_ma.ts[5:length(train_ma.ts)])*100))

akurasi_train.sma <- matrix(c(SSE_train.sma, MSE_train.sma, MAPE_train.sma))
row.names(akurasi_train.sma)<- c("SSE", "MSE", "MAPE")
colnames(akurasi_train.sma) <- c("Akurasi m = 4")
akurasi_train.sma
##      Akurasi m = 4
## SSE   1.673611e+08
## MSE   1.468080e+06
## MAPE  7.516130e+00

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

#Menghitung nilai keakuratan data uji
error_test.sma = test_ma.ts-data.gab[119:147,3]
SSE_test.sma = sum(error_test.sma^2)
MSE_test.sma = mean(error_test.sma^2)
MAPE_test.sma = mean(abs((error_test.sma/test_ma.ts*100)))

akurasi_test.sma <- matrix(c(SSE_test.sma, MSE_test.sma, MAPE_test.sma))
row.names(akurasi_test.sma)<- c("SSE", "MSE", "MAPE")
colnames(akurasi_test.sma) <- c("Akurasi m = 4 ")
akurasi_test.sma
##      Akurasi m = 4 
## SSE    3.232945e+07
## MSE    1.114809e+06
## MAPE   6.039559e+00

Perhitungan akurasi menggunakan data latih menghasilkan nilai MAPE yang kurang dari 10% sehingga nilai akurasi ini dapat dikategorikan 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.

dma <- SMA(data.sma, n = 4)
At <- 2*data.sma - dma
Bt <- 2/(4-1)*(data.sma - dma)
data.dma<- At+Bt
data.ramal2<- c(NA, data.dma)

t = 1:29
f = c()

for (i in t) {
  f[i] = At[length(At)] + Bt[length(Bt)]*(i)
}

data.gab2 <- cbind(aktual = c(train_ma.ts,rep(NA,29)), pemulusan1 = c(data.sma,rep(NA,29)),pemulusan2 = c(data.dma, rep(NA,29)),At = c(At, rep(NA,29)), Bt = c(Bt,rep(NA,29)),ramalan = c(data.ramal2, f[-1]))
data.gab2
##        aktual pemulusan1 pemulusan2        At          Bt   ramalan
##   [1,]   9664         NA         NA        NA          NA        NA
##   [2,]   8294         NA         NA        NA          NA        NA
##   [3,]   9970         NA         NA        NA          NA        NA
##   [4,]  10082    9502.50         NA        NA          NA        NA
##   [5,]   9585    9482.75         NA        NA          NA        NA
##   [6,]   8774    9602.75         NA        NA          NA        NA
##   [7,]  12043   10121.00  10860.583 10564.750  295.833333        NA
##   [8,]   9974   10094.00  10542.125 10362.875  179.250000 10860.583
##   [9,]   8948    9934.75   9929.125  9931.375   -2.250000 10542.125
##  [10,]   9184   10037.25  10021.417 10027.750   -6.333333  9929.125
##  [11,]   9433    9384.75   8588.188  8906.812 -318.625000 10021.417
##  [12,]   9556    9280.25   8648.583  8901.250 -252.666667  8588.188
##  [13,]   8064    9059.25   8424.042  8678.125 -254.083333  8648.583
##  [14,]   9108    9040.25   8788.792  8889.375 -100.583333  8424.042
##  [15,]   8820    8887.00   8587.521  8707.312 -119.791667  8788.792
##  [16,]   8790    8695.50   8320.500  8470.500 -150.000000  8587.521
##  [17,]  10211    9232.25   9679.750  9500.750  179.000000  8320.500
##  [18,]   9814    9408.75   9996.875  9761.625  235.250000  9679.750
##  [19,]  10365    9795.00  10648.542 10307.125  341.416667  9996.875
##  [20,]   9342    9933.00  10500.917 10273.750  227.166667 10648.542
##  [21,]  12249   10442.50  11355.312 10990.188  365.125000 10500.917
##  [22,]  10541   10624.25  11333.521 11049.812  283.708333 11355.312
##  [23,]  10734   10716.50  11195.562 11003.938  191.625000 11333.521
##  [24,]  10203   10931.75  11353.417 11184.750  168.666667 11195.562
##  [25,]  10524   10500.50  10179.250 10307.750 -128.500000 11353.417
##  [26,]  11733   10798.50  10901.312 10860.188   41.125000 10179.250
##  [27,]   9741   10550.25  10308.583 10405.250  -96.666667 10901.312
##  [28,]  13118   11279.00  12107.229 11775.938  331.291667 10308.583
##  [29,]  10814   11351.50  11945.979 11708.188  237.791667 12107.229
##  [30,]  10130   10950.75  10813.875 10868.625  -54.750000 11945.979
##  [31,]  10776   11209.50  11229.188 11221.312    7.875000 10813.875
##  [32,]  12230   10987.50  10758.646 10850.188  -91.541667 11229.188
##  [33,]  12516   11413.00  11867.688 11685.812  181.875000 10758.646
##  [34,]  10776   11574.50  12038.458 11852.875  185.583333 11867.688
##  [35,]  13812   12333.50  13594.125 13089.875  504.250000 12038.458
##  [36,]  12192   12324.00  13011.917 12736.750  275.166667 13594.125
##  [37,]  11463   12060.75  12040.021 12048.312   -8.291667 13011.917
##  [38,]  11731   12299.50  12374.604 12344.562   30.041667 12040.021
##  [39,]  12282   11917.00  11528.146 11683.688 -155.541667 12374.604
##  [40,]  13124   12150.00  12221.979 12193.188   28.791667 11528.146
##  [41,]  10084   11805.25  11409.104 11567.562 -158.458333 12221.979
##  [42,]  15315   12701.25  13631.042 13259.125  371.916667 11409.104
##  [43,]  12223   12686.50  13271.083 13037.250  233.833333 13631.042
##  [44,]  10871   12123.25  11780.229 11917.438 -137.208333 13271.083
##  [45,]  13146   12888.75  13370.104 13177.562  192.541667 11780.229
##  [46,]  13357   12399.25  12190.604 12274.062  -83.458333 13370.104
##  [47,]  13030   12601.00  12764.229 12698.938   65.291667 12190.604
##  [48,]  10476   12502.25  12342.979 12406.688  -63.708333 12764.229
##  [49,]  15220   13020.75  13670.646 13410.688  259.958333 12342.979
##  [50,]  11780   12626.50  12524.625 12565.375  -40.750000 13670.646
##  [51,]  11115   12147.75  11436.812 11721.188 -284.375000 12524.625
##  [52,]  12820   12733.75  12903.021 12835.312   67.708333 11436.812
##  [53,]  13413   12282.00  12006.167 12116.500 -110.333333 12903.021
##  [54,]  12449   12449.25  12526.021 12495.312   30.708333 12006.167
##  [55,]  10582   12316.00  12100.583 12186.750  -86.166667 12526.021
##  [56,]  14518   12740.50  13229.771 13034.062  195.708333 12100.583
##  [57,]  13287   12709.00  12967.854 12864.312  103.541667 13229.771
##  [58,]  11280   12416.75  12202.062 12287.938  -85.875000 12967.854
##  [59,]  13465   13137.50  13781.771 13524.062  257.708333 12202.062
##  [60,]  13488   12880.00  13036.979 12974.188   62.791667 13781.771
##  [61,]  14142   13093.75  13446.667 13305.500  141.166667 13036.979
##  [62,]  11241   13084.00  13142.646 13119.188   23.458333 13446.667
##  [63,]  15067   13484.50  14066.062 13833.438  232.625000 13142.646
##  [64,]  13662   13528.00  13912.062 13758.438  153.625000 14066.062
##  [65,]  13385   13338.75  13305.312 13318.688  -13.375000 13912.062
##  [66,]  14326   14110.00  14934.479 14604.688  329.791667 13305.312
##  [67,]  14200   13893.25  14186.167 14069.000  117.166667 14934.479
##  [68,]  13736   13911.75  14075.604 14010.062   65.541667 14186.167
##  [69,]  13244   13876.50  13757.542 13805.125  -47.583333 14075.604
##  [70,]  16787   14491.75  15239.146 14940.188  298.958333 13757.542
##  [71,]  13617   14346.00  14661.833 14535.500  126.333333 15239.146
##  [72,]  13110   14189.50  14128.771 14153.062  -24.291667 14661.833
##  [73,]  14668   14545.50  14799.354 14697.812  101.541667 14128.771
##  [74,]  14244   13909.75  13346.521 13571.812 -225.291667 14799.354
##  [75,]  14692   14178.50  14132.979 14151.188  -18.208333 13346.521
##  [76,]  11996   13900.00  13510.938 13666.562 -155.625000 14132.979
##  [77,]  15665   14149.25  14340.708 14264.125   76.583333 13510.938
##  [78,]  14095   14112.00  14157.104 14139.062   18.041667 14340.708
##  [79,]  13774   13882.50  13668.438 13754.062  -85.625000 14157.104
##  [80,]  13701   14308.75  14634.792 14504.375  130.416667 13668.438
##  [81,]  13484   13763.50  13341.521 13510.312 -168.791667 14634.792
##  [82,]  14153   13778.00  13519.354 13622.812 -103.458333 13341.521
##  [83,]  12820   13539.50  13026.271 13231.562 -205.291667 13519.354
##  [84,]  15269   13931.50  14228.792 14109.875  118.916667 13026.271
##  [85,]  14379   14155.25  14662.229 14459.438  202.791667 14228.792
##  [86,]  12438   13726.50  13540.354 13614.812  -74.458333 14662.229
##  [87,]  13586   13918.00  13893.312 13903.188   -9.875000 13540.354
##  [88,]  14062   13616.25  13220.000 13378.500 -158.500000 13893.312
##  [89,]  13457   13385.75  12925.958 13109.875 -183.916667 13220.000
##  [90,]  12262   13341.75  12968.938 13118.062 -149.125000 12925.958
##  [91,]  15564   13836.25  14321.667 14127.500  194.166667 12968.938
##  [92,]  13145   13607.00  13714.188 13671.312   42.875000 14321.667
##  [93,]  13943   13728.50  13895.375 13828.625   66.750000 13714.188
##  [94,]  13415   14016.75  14382.792 14236.375  146.416667 13895.375
##  [95,]  13699   13550.50  13258.521 13375.312 -116.791667 14382.792
##  [96,]  14491   13887.00  14039.188 13978.312   60.875000 13258.521
##  [97,]  13344   13737.25  13636.208 13676.625  -40.416667 14039.188
##  [98,]  14680   14053.50  14464.229 14299.938  164.291667 13636.208
##  [99,]  13694   14052.25  14251.833 14172.000   79.833333 14464.229
## [100,]  12729   13611.75  13191.854 13359.812 -167.958333 14251.833
## [101,]  13120   13555.75  13118.146 13293.188 -175.041667 13191.854
## [102,]  13847   13347.50  12856.979 13053.188 -196.208333 13118.146
## [103,]  15661   13839.25  14257.062 14089.938  167.125000 12856.979
## [104,]  13642   14067.50  14675.833 14432.500  243.333333 14257.062
## [105,]  15485   14658.75  15792.917 15339.250  453.666667 14675.833
## [106,]  13907   14673.75  15280.312 15037.688  242.625000 15792.917
## [107,]  13016   14012.50  13444.792 13671.875 -227.083333 15280.312
## [108,]  13526   13983.50  13402.458 13634.875 -232.416667 13444.792
## [109,]  12577   13256.50  12048.062 12531.438 -483.375000 13402.458
## [110,]  15001   13530.00  13253.958 13364.375 -110.416667 12048.062
## [111,]  14079   13795.75  14052.938 13950.062  102.875000 13253.958
## [112,]  15721   14344.50  15365.854 14957.312  408.541667 14052.938
## [113,]  13654   14613.75  15518.333 15156.500  361.833333 15365.854
## [114,]  13468   14230.50  14204.458 14214.875  -10.416667 15518.333
## [115,]  13530   14093.25  13714.500 13866.000 -151.500000 14204.458
## [116,]  14265   13729.25  13000.188 13291.812 -291.625000 13714.500
## [117,]  14884   14036.75  14060.604 14051.062    9.541667 13000.188
## [118,]  12610   13822.25  13658.708 13724.125  -65.416667 14060.604
## [119,]     NA         NA         NA        NA          NA 13658.708
## [120,]     NA         NA         NA        NA          NA 13593.292
## [121,]     NA         NA         NA        NA          NA 13527.875
## [122,]     NA         NA         NA        NA          NA 13462.458
## [123,]     NA         NA         NA        NA          NA 13397.042
## [124,]     NA         NA         NA        NA          NA 13331.625
## [125,]     NA         NA         NA        NA          NA 13266.208
## [126,]     NA         NA         NA        NA          NA 13200.792
## [127,]     NA         NA         NA        NA          NA 13135.375
## [128,]     NA         NA         NA        NA          NA 13069.958
## [129,]     NA         NA         NA        NA          NA 13004.542
## [130,]     NA         NA         NA        NA          NA 12939.125
## [131,]     NA         NA         NA        NA          NA 12873.708
## [132,]     NA         NA         NA        NA          NA 12808.292
## [133,]     NA         NA         NA        NA          NA 12742.875
## [134,]     NA         NA         NA        NA          NA 12677.458
## [135,]     NA         NA         NA        NA          NA 12612.042
## [136,]     NA         NA         NA        NA          NA 12546.625
## [137,]     NA         NA         NA        NA          NA 12481.208
## [138,]     NA         NA         NA        NA          NA 12415.792
## [139,]     NA         NA         NA        NA          NA 12350.375
## [140,]     NA         NA         NA        NA          NA 12284.958
## [141,]     NA         NA         NA        NA          NA 12219.542
## [142,]     NA         NA         NA        NA          NA 12154.125
## [143,]     NA         NA         NA        NA          NA 12088.708
## [144,]     NA         NA         NA        NA          NA 12023.292
## [145,]     NA         NA         NA        NA          NA 11957.875
## [146,]     NA         NA         NA        NA          NA 11892.458
## [147,]     NA         NA         NA        NA          NA 11827.042

Hasil pemulusan menggunakan metode DMA divisualisasikan sebagai berikut

ts.plot(data8.ts, xlab="Time Period ", ylab="Intern", main= "DMA N=4 Data Intern")
points(data8.ts)
lines(data.gab2[,3],col="green",lwd=2)
lines(data.gab2[,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.dma = train_ma.ts-data.ramal2[1:length(train_ma.ts)]
SSE_train.dma = sum(error_train.dma[8:length(train_ma.ts)]^2)
MSE_train.dma = mean(error_train.dma[8:length(train_ma.ts)]^2)
MAPE_train.dma = mean(abs((error_train.dma[8:length(train_ma.ts)]/train_ma.ts[8:length(train_ma.ts)])*100))

akurasi_train.dma <- matrix(c(SSE_train.dma, MSE_train.dma, MAPE_train.dma))
row.names(akurasi_train.dma)<- c("SSE", "MSE", "MAPE")
colnames(akurasi_train.dma) <- c("Akurasi m = 4")
akurasi_train.dma
##      Akurasi m = 4
## SSE   2.261636e+08
## MSE   2.037510e+06
## MAPE  9.272174e+00

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.dma = test_ma.ts-data.gab2[119:147,6]
SSE_test.dma = sum(error_test.dma^2)
MSE_test.dma = mean(error_test.dma^2)
MAPE_test.dma = mean(abs((error_test.dma/test_ma.ts*100)))

akurasi_test.dma <- matrix(c(SSE_test.dma, MSE_test.dma, MAPE_test.dma))
row.names(akurasi_test.dma)<- c("SSE", "MSE", "MAPE")
colnames(akurasi_test.dma) <- c("Akurasi m = 4")
akurasi_test.dma
##      Akurasi m = 4
## SSE   5.947034e+07
## MSE   2.050701e+06
## MAPE  7.731725e+00

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

Perbandingan SMA vs DMA

Baik pada data latih (training) maupun data uji (testing), berdasarkan nilai MAPE yang didapatkan metode SMA lebih baik dibandingkan dengan metode DMA

SES & DES

Pembagian Data

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

training<-data8[1:118,]
testing<-data8[119:147,]
train.ts <- ts(training$Intern)
test.ts <- ts(testing$Intern)

Eksplorasi

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

plot(data8.ts, col="black",main="Plot semua data")
points(data8.ts)

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

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

Eksplorasi data juga dapat dilakukan menggunakan package ggplot2 .

library(ggplot2)
ggplot() + 
  geom_line(data = training, aes(x = Periode, y = Intern, col = "Data Latih")) +
  geom_line(data = testing, aes(x = Periode, y = Intern, col = "Data Uji")) +
  labs(x = "Periode Waktu", y = "Membaca", 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))

SES (Simple Exponential Smoothing)

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 .

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

#Cara 1 (fungsi ses)
ses.1 <- ses(train.ts, h = 29, alpha = 0.2)
plot(ses.1)

ses.1
##     Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 119       13857.41 12287.33 15427.48 11456.18 16258.63
## 120       13857.41 12256.23 15458.58 11408.63 16306.19
## 121       13857.41 12225.73 15489.08 11361.98 16352.83
## 122       13857.41 12195.79 15519.02 11316.19 16398.63
## 123       13857.41 12166.38 15548.43 11271.21 16443.61
## 124       13857.41 12137.47 15577.34 11226.99 16487.82
## 125       13857.41 12109.04 15605.77 11183.51 16531.30
## 126       13857.41 12081.07 15633.75 11140.73 16574.08
## 127       13857.41 12053.52 15661.29 11098.61 16616.21
## 128       13857.41 12026.40 15688.42 11057.12 16657.69
## 129       13857.41 11999.67 15715.15 11016.24 16698.58
## 130       13857.41 11973.31 15741.50 10975.93 16738.88
## 131       13857.41 11947.32 15767.49 10936.19 16778.62
## 132       13857.41 11921.68 15793.13 10896.97 16817.84
## 133       13857.41 11896.38 15818.43 10858.27 16856.54
## 134       13857.41 11871.40 15843.42 10820.07 16894.74
## 135       13857.41 11846.73 15868.09 10782.34 16932.48
## 136       13857.41 11822.35 15892.46 10745.06 16969.75
## 137       13857.41 11798.27 15916.54 10708.23 17006.59
## 138       13857.41 11774.46 15940.35 10671.82 17042.99
## 139       13857.41 11750.93 15963.89 10635.82 17078.99
## 140       13857.41 11727.65 15987.16 10600.22 17114.59
## 141       13857.41 11704.62 16010.19 10565.01 17149.80
## 142       13857.41 11681.84 16032.97 10530.17 17184.64
## 143       13857.41 11659.30 16055.52 10495.69 17219.12
## 144       13857.41 11636.98 16077.83 10461.56 17253.25
## 145       13857.41 11614.89 16099.93 10427.77 17287.04
## 146       13857.41 11593.01 16121.80 10394.31 17320.50
## 147       13857.41 11571.34 16143.47 10361.17 17353.65
ses.2<- ses(train.ts, h = 29, alpha = 0.7)
plot(ses.2)

ses.2
##     Point Forecast     Lo 80    Hi 80     Lo 95    Hi 95
## 119       13217.76 11288.281 15147.24 10266.877 16168.64
## 120       13217.76 10862.531 15572.99  9615.748 16819.77
## 121       13217.76 10502.743 15932.78  9065.499 17370.02
## 122       13217.76 10185.346 16250.18  8580.083 17855.44
## 123       13217.76  9898.159 16537.36  8140.868 18294.65
## 124       13217.76  9633.912 16801.61  7736.737 18698.78
## 125       13217.76  9387.854 17047.67  7360.423 19075.10
## 126       13217.76  9156.677 17278.84  7006.868 19428.65
## 127       13217.76  8937.969 17497.55  6672.383 19763.14
## 128       13217.76  8729.906 17705.62  6354.180 20081.34
## 129       13217.76  8531.072 17904.45  6050.088 20385.43
## 130       13217.76  8340.336 18095.19  5758.384 20677.14
## 131       13217.76  8156.784 18278.74  5477.665 20957.86
## 132       13217.76  7979.660 18455.86  5206.777 21228.74
## 133       13217.76  7808.332 18627.19  4944.753 21490.77
## 134       13217.76  7642.267 18793.25  4690.778 21744.74
## 135       13217.76  7481.006 18954.52  4444.152 21991.37
## 136       13217.76  7324.157 19111.36  4204.271 22231.25
## 137       13217.76  7171.375 19264.15  3970.611 22464.91
## 138       13217.76  7022.359 19413.16  3742.712 22692.81
## 139       13217.76  6876.845 19558.68  3520.166 22915.35
## 140       13217.76  6734.595 19700.93  3302.615 23132.91
## 141       13217.76  6595.401 19840.12  3089.735 23345.79
## 142       13217.76  6459.073 19976.45  2881.239 23554.28
## 143       13217.76  6325.440 20110.08  2676.866 23758.66
## 144       13217.76  6194.350 20241.17  2476.381 23959.14
## 145       13217.76  6065.662 20369.86  2279.570 24155.95
## 146       13217.76  5939.249 20496.27  2086.238 24349.28
## 147       13217.76  5814.995 20620.53  1896.207 24539.31
autoplot(ses.1) +
  autolayer(fitted(ses.1), series="Fitted") +
  ylab("Membaca") + xlab("Periode")

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

#ramalan
ramalan1<- forecast(ses1, h=29)
ramalan1
##     Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 119       13857.41 12304.16 15410.65 11481.92 16232.89
## 120       13857.41 12273.40 15441.41 11434.87 16279.94
## 121       13857.41 12243.22 15471.59 11388.73 16326.09
## 122       13857.41 12213.60 15501.21 11343.43 16371.39
## 123       13857.41 12184.51 15530.31 11298.93 16415.89
## 124       13857.41 12155.91 15558.90 11255.19 16459.62
## 125       13857.41 12127.78 15587.03 11212.17 16502.64
## 126       13857.41 12100.11 15614.71 11169.85 16544.96
## 127       13857.41 12072.86 15641.95 11128.18 16586.63
## 128       13857.41 12046.02 15668.79 11087.13 16627.68
## 129       13857.41 12019.58 15695.23 11046.69 16668.12
## 130       13857.41 11993.51 15721.30 11006.82 16707.99
## 131       13857.41 11967.80 15747.01 10967.50 16747.31
## 132       13857.41 11942.43 15772.38 10928.71 16786.11
## 133       13857.41 11917.40 15797.41 10890.42 16824.39
## 134       13857.41 11892.69 15822.13 10852.62 16862.19
## 135       13857.41 11868.28 15846.53 10815.30 16899.52
## 136       13857.41 11844.17 15870.65 10778.42 16936.39
## 137       13857.41 11820.34 15894.47 10741.98 16972.83
## 138       13857.41 11796.79 15918.02 10705.96 17008.85
## 139       13857.41 11773.50 15941.31 10670.35 17044.46
## 140       13857.41 11750.48 15964.33 10635.14 17079.68
## 141       13857.41 11727.70 15987.11 10600.30 17114.51
## 142       13857.41 11705.16 16009.65 10565.83 17148.98
## 143       13857.41 11682.86 16031.95 10531.72 17183.09
## 144       13857.41 11660.78 16054.03 10497.96 17216.85
## 145       13857.41 11638.92 16075.89 10464.53 17250.28
## 146       13857.41 11617.28 16097.53 10431.43 17283.38
## 147       13857.41 11595.84 16118.97 10398.64 17316.17
ses2<- HoltWinters(train.ts, gamma = FALSE, beta = FALSE, alpha = 0.7)
plot(ses2)

#ramalan
ramalan2<- forecast(ses2, h=29)
ramalan2
##     Point Forecast     Lo 80    Hi 80     Lo 95    Hi 95
## 119       13217.76 11288.814 15146.71 10267.692 16167.83
## 120       13217.76 10863.182 15572.34  9616.743 16818.78
## 121       13217.76 10503.493 15932.03  9066.646 17368.88
## 122       13217.76 10186.184 16249.34  8581.364 17854.16
## 123       13217.76  9899.076 16536.45  8142.271 18293.25
## 124       13217.76  9634.902 16800.62  7738.251 18697.27
## 125       13217.76  9388.912 17046.61  7362.042 19073.48
## 126       13217.76  9157.799 17277.72  7008.584 19426.94
## 127       13217.76  8939.151 17496.37  6674.192 19761.33
## 128       13217.76  8731.146 17704.38  6356.076 20079.45
## 129       13217.76  8532.367 17903.15  6052.069 20383.45
## 130       13217.76  8341.684 18093.84  5760.445 20675.08
## 131       13217.76  8158.182 18277.34  5479.803 20955.72
## 132       13217.76  7981.107 18454.41  5208.990 21226.53
## 133       13217.76  7809.827 18625.69  4947.039 21488.48
## 134       13217.76  7643.807 18791.71  4693.134 21742.39
## 135       13217.76  7482.591 18952.93  4446.576 21988.95
## 136       13217.76  7325.785 19109.74  4206.762 22228.76
## 137       13217.76  7173.045 19262.48  3973.166 22462.36
## 138       13217.76  7024.071 19411.45  3745.330 22690.19
## 139       13217.76  6878.597 19556.92  3522.846 22912.68
## 140       13217.76  6736.387 19699.13  3305.354 23130.17
## 141       13217.76  6597.231 19838.29  3092.534 23342.99
## 142       13217.76  6460.940 19974.58  2884.095 23551.43
## 143       13217.76  6327.345 20108.18  2679.779 23755.74
## 144       13217.76  6196.291 20239.23  2479.349 23956.17
## 145       13217.76  6067.638 20367.88  2282.592 24152.93
## 146       13217.76  5941.260 20494.26  2089.313 24346.21
## 147       13217.76  5817.040 20618.48  1899.335 24536.19

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

#SES
ses.opt <- ses(train.ts, h = 29, alpha = NULL)
plot(ses.opt)

ses.opt
##     Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 119       13880.33 12313.92 15446.74 11484.71 16275.95
## 120       13880.33 12291.30 15469.36 11450.11 16310.54
## 121       13880.33 12268.99 15491.67 11416.00 16344.66
## 122       13880.33 12246.99 15513.66 11382.36 16378.30
## 123       13880.33 12225.29 15535.37 11349.16 16411.50
## 124       13880.33 12203.86 15556.80 11316.39 16444.27
## 125       13880.33 12182.70 15577.95 11284.04 16476.62
## 126       13880.33 12161.81 15598.85 11252.08 16508.58
## 127       13880.33 12141.17 15619.49 11220.51 16540.15
## 128       13880.33 12120.76 15639.90 11189.31 16571.35
## 129       13880.33 12100.59 15660.06 11158.46 16602.20
## 130       13880.33 12080.65 15680.01 11127.96 16632.70
## 131       13880.33 12060.93 15699.73 11097.80 16662.86
## 132       13880.33 12041.42 15719.24 11067.96 16692.70
## 133       13880.33 12022.11 15738.55 11038.43 16722.23
## 134       13880.33 12003.00 15757.66 11009.20 16751.45
## 135       13880.33 11984.09 15776.57 10980.27 16780.38
## 136       13880.33 11965.36 15795.30 10951.63 16809.03
## 137       13880.33 11946.81 15813.85 10923.26 16837.39
## 138       13880.33 11928.44 15832.22 10895.17 16865.49
## 139       13880.33 11910.24 15850.42 10867.33 16893.33
## 140       13880.33 11892.20 15868.46 10839.75 16920.91
## 141       13880.33 11874.33 15886.33 10812.42 16948.24
## 142       13880.33 11856.62 15904.04 10785.33 16975.33
## 143       13880.33 11839.06 15921.60 10758.47 17002.18
## 144       13880.33 11821.65 15939.01 10731.85 17028.81
## 145       13880.33 11804.38 15956.27 10705.44 17055.21
## 146       13880.33 11787.26 15973.40 10679.26 17081.40
## 147       13880.33 11770.28 15990.38 10653.29 17107.37
#Lamda Optimum Holt Winter
sesopt<- HoltWinters(train.ts, gamma = FALSE, beta = FALSE,alpha = NULL)
sesopt
## Holt-Winters exponential smoothing without trend and without seasonal component.
## 
## Call:
## HoltWinters(x = train.ts, alpha = NULL, beta = FALSE, gamma = FALSE)
## 
## Smoothing parameters:
##  alpha: 0.1703016
##  beta : FALSE
##  gamma: FALSE
## 
## Coefficients:
##       [,1]
## a 13880.51
plot(sesopt)

#ramalan
ramalanopt<- forecast(sesopt, h=29)
ramalanopt
##     Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 119       13880.51 12337.82 15423.21 11521.16 16239.87
## 120       13880.51 12315.61 15445.42 11487.19 16273.83
## 121       13880.51 12293.71 15467.32 11453.70 16307.33
## 122       13880.51 12272.10 15488.92 11420.66 16340.37
## 123       13880.51 12250.79 15510.24 11388.06 16372.97
## 124       13880.51 12229.75 15531.28 11355.88 16405.14
## 125       13880.51 12208.97 15552.06 11324.11 16436.92
## 126       13880.51 12188.45 15572.58 11292.73 16468.30
## 127       13880.51 12168.18 15592.85 11261.72 16499.31
## 128       13880.51 12148.14 15612.89 11231.07 16529.95
## 129       13880.51 12128.33 15632.70 11200.78 16560.25
## 130       13880.51 12108.74 15652.29 11170.82 16590.20
## 131       13880.51 12089.37 15671.66 11141.20 16619.83
## 132       13880.51 12070.21 15690.82 11111.89 16649.14
## 133       13880.51 12051.24 15709.79 11082.88 16678.15
## 134       13880.51 12032.47 15728.56 11054.17 16706.85
## 135       13880.51 12013.89 15747.14 11025.76 16735.27
## 136       13880.51 11995.49 15765.54 10997.62 16763.41
## 137       13880.51 11977.27 15783.76 10969.75 16791.28
## 138       13880.51 11959.22 15801.81 10942.15 16818.88
## 139       13880.51 11941.34 15819.69 10914.81 16846.22
## 140       13880.51 11923.63 15837.40 10887.71 16873.32
## 141       13880.51 11906.07 15854.96 10860.86 16900.17
## 142       13880.51 11888.67 15872.36 10834.25 16926.78
## 143       13880.51 11871.41 15889.61 10807.86 16953.17
## 144       13880.51 11854.31 15906.72 10781.70 16979.33
## 145       13880.51 11837.35 15923.68 10755.76 17005.27
## 146       13880.51 11820.53 15940.50 10730.03 17031.00
## 147       13880.51 11803.84 15957.19 10704.52 17056.51

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

Akurasi Data Latih

#Keakuratan Metode
#Pada data training
SSE1<-ses1$SSE
MSE1<-ses1$SSE/length(train.ts)
RMSE1<-sqrt(MSE1)

akurasi1 <- matrix(c(SSE1,MSE1,RMSE1))
row.names(akurasi1)<- c("SSE", "MSE", "RMSE")
colnames(akurasi1) <- c("Akurasi lamda=0.2")
akurasi1
##      Akurasi lamda=0.2
## SSE       1.741566e+08
## MSE       1.475904e+06
## RMSE      1.214868e+03
SSE2<-ses2$SSE
MSE2<-ses2$SSE/length(train.ts)
RMSE2<-sqrt(MSE2)

akurasi2 <- matrix(c(SSE2,MSE2,RMSE2))
row.names(akurasi2)<- c("SSE", "MSE", "RMSE")
colnames(akurasi2) <- c("Akurasi lamda=0.7")
akurasi2
##      Akurasi lamda=0.7
## SSE       263020704.28
## MSE         2228989.02
## RMSE           1492.98
#Cara Manual
training<-data.frame(training)

fitted1<-ramalan1$fitted
sisaan1<-ramalan1$residuals
head(sisaan1)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]       NA -1370.00   580.00   576.00   -36.20  -839.96
resid1<-training$Intern-ramalan1$fitted
head(resid1)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]       NA -1370.00   580.00   576.00   -36.20  -839.96
#Cara Manual
SSE.1=sum(sisaan1[2:length(train.ts)]^2)
SSE.1
## [1] 174156638
MSE.1 = SSE.1/length(train.ts)
MSE.1
## [1] 1475904
MAPE.1 = sum(abs(sisaan1[2:length(train.ts)]/train.ts[2:length(train.ts)])*
               100)/length(train.ts)
MAPE.1
## [1] 7.405894
akurasi.1 <- matrix(c(SSE.1,MSE.1,MAPE.1))
row.names(akurasi.1)<- c("SSE", "MSE", "MAPE")
colnames(akurasi.1) <- c("Akurasi lamda=0.2")
akurasi.1
##      Akurasi lamda=0.2
## SSE       1.741566e+08
## MSE       1.475904e+06
## MAPE      7.405894e+00
fitted2<-ramalan2$fitted
sisaan2<-ramalan2$residuals

head(sisaan2)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]        NA -1370.000  1265.000   491.500  -349.550  -915.865
resid2<-training$Intern-ramalan2$fitted
head(resid2)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]        NA -1370.000  1265.000   491.500  -349.550  -915.865
SSE.2=sum(sisaan2[2:length(train.ts)]^2)
SSE.2
## [1] 263020704
MSE.2 = SSE.2/length(train.ts)
MSE.2
## [1] 2228989
MAPE.2 = sum(abs(sisaan2[2:length(train.ts)]/train.ts[2:length(train.ts)])*
               100)/length(train.ts)
MAPE.2
## [1] 9.292902
akurasi.2 <- matrix(c(SSE.2,MSE.2,MAPE.2))
row.names(akurasi.2)<- c("SSE", "MSE", "MAPE")
colnames(akurasi.2) <- c("Akurasi lamda=0.7")
akurasi.2
##      Akurasi lamda=0.7
## SSE       2.630207e+08
## MSE       2.228989e+06
## MAPE      9.292902e+00

Berdasarkan nilai SSE, MSE, RMSE, dan MAPE di antara kedua parameter, nilai parameter λ=0,2menghasilkan akurasi yang lebih baik dibanding λ=0,7 . Hal ini dilihat dari nilai masing-masing ukuran akurasi yang lebih kecil. Berdasarkan nilai MAPE-nya, hasil ini dapat dikategorikan sebagai peramalan sangat baik.

Akurasi Data Uji

selisih1<-ramalan1$mean-testing$Intern
SSEtesting1<-sum(selisih1^2)
MSEtesting1<-SSEtesting1/length(testing)

selisih2<-ramalan2$mean-testing$Intern
SSEtesting2<-sum(selisih2^2)
MSEtesting2<-SSEtesting2/length(testing)

selisihopt<-ramalanopt$mean-testing$Intern
SSEtestingopt<-sum(selisihopt^2)
MSEtestingopt<-SSEtestingopt/length(testing)

akurasitesting1 <- matrix(c(SSEtesting1,SSEtesting2,SSEtestingopt))
row.names(akurasitesting1)<- c("SSE1", "SSE2", "SSEopt")
akurasitesting1
##            [,1]
## SSE1   32460799
## SSE2   41284173
## SSEopt 32586178
akurasitesting2 <- matrix(c(MSEtesting1,MSEtesting2,MSEtestingopt))
row.names(akurasitesting2)<- c("MSE1", "MSE2", "MSEopt")
akurasitesting2
##            [,1]
## MSE1   16230400
## MSE2   20642086
## MSEopt 16293089
#cara lain
accuracy(ramalanopt,testing$Intern)
##                     ME     RMSE      MAE        MPE     MAPE      MASE
## Training set  211.6163 1217.154 935.4261  0.9455281 7.428549 0.6852209
## Test set     -105.1008 1060.029 822.7064 -1.3493389 6.050482 0.6026512
##                    ACF1
## Training set -0.2874066
## Test set             NA

Berdasarkan nilai SSE, MSE, RMSE, dan MAPE di antara kedua parameter, nilai parameter λ=0,2 menghasilkan akurasi yang lebih baik dibanding λ=0,7 . Hal ini dilihat dari nilai masing-masing ukuran akurasi yang lebih kecil. Berdasarkan nilai MAPE-nya, hasil ini dapat dikategorikan sebagai peramalan sangat baik.

DES (Double Exponential Smoothing)

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

#ramalan
ramalandes1<- forecast(des.1, h=29)
ramalandes1
##     Point Forecast     Lo 80    Hi 80      Lo 95    Hi 95
## 119       13885.41 11878.741 15892.09 10816.4714 16954.36
## 120       13849.41 11785.751 15913.07 10693.3163 17005.50
## 121       13813.40 11674.621 15952.18 10542.4198 17084.38
## 122       13777.39 11544.298 16010.49 10362.1688 17192.62
## 123       13741.39 11394.350 16088.42 10151.9039 17330.87
## 124       13705.38 11224.884 16185.88  9911.7887 17498.97
## 125       13669.37 11036.421 16302.33  9642.6201 17696.13
## 126       13633.37 10829.762 16436.97  9345.6229 17921.11
## 127       13597.36 10605.866 16588.85  9022.2657 18172.45
## 128       13561.35 10365.759 16756.95  8674.1143 18448.59
## 129       13525.35 10110.460 16940.23  8302.7287 18747.96
## 130       13489.34  9840.942 17137.74  7909.5977 19069.08
## 131       13453.33  9558.109 17348.55  7496.1022 19410.56
## 132       13417.32  9262.782 17571.87  7063.5000 19771.15
## 133       13381.32  8955.702 17806.93  6612.9232 20149.71
## 134       13345.31  8637.532 18053.09  6145.3838 20545.24
## 135       13309.30  8308.859 18309.75  5661.7826 20956.83
## 136       13273.30  7970.207 18576.39  5162.9208 21383.67
## 137       13237.29  7622.043 18852.54  4649.5111 21825.07
## 138       13201.28  7264.782 19137.78  4122.1886 22280.38
## 139       13165.28  6898.795 19431.76  3581.5206 22749.03
## 140       13129.27  6524.414 19734.12  3028.0155 23230.52
## 141       13093.26  6141.939 20044.59  2462.1304 23724.39
## 142       13057.26  5751.638 20362.87  1884.2780 24230.23
## 143       13021.25  5353.757 20688.74  1294.8320 24747.67
## 144       12985.24  4948.517 21021.97   694.1326 25276.35
## 145       12949.23  4536.123 21362.35    82.4902 25815.98
## 146       12913.23  4116.759 21709.70  -539.8107 26366.27
## 147       12877.22  3690.597 22063.84 -1172.5083 26926.95
#Lamda=0.6 dan gamma=0.3
des.2<- HoltWinters(train.ts, gamma = FALSE, beta = 0.3, alpha = 0.6)
plot(des.2)

#ramalan
ramalandes2<- forecast(des.2, h=29)
ramalandes2
##     Point Forecast        Lo 80    Hi 80        Lo 95    Hi 95
## 119      13218.417  11163.05818 15273.78  10075.01680 16361.82
## 120      13007.734  10401.07235 15614.40   9021.18878 16994.28
## 121      12797.052   9527.80290 16066.30   7797.16715 17796.94
## 122      12586.369   8564.16189 16608.58   6434.93414 18737.80
## 123      12375.686   7523.99364 17227.38   4955.66281 19795.71
## 124      12165.003   6416.60814 17913.40   3373.59157 20956.41
## 125      11954.320   5248.55593 18660.08   1698.73861 22209.90
## 126      11743.638   4024.67649 19462.60    -61.49472 23548.77
## 127      11532.955   2748.70505 20317.20  -1901.39590 24967.31
## 128      11322.272   1423.63199 21220.91  -3816.39153 26460.94
## 129      11111.589     51.92377 22171.25  -5802.70949 28025.89
## 130      10900.906  -1364.33585 23166.15  -7857.16292 29658.98
## 131      10690.224  -2823.35201 24203.80  -9977.00685 31357.45
## 132      10479.541  -4323.55422 25282.64 -12159.83939 33118.92
## 133      10268.858  -5863.55050 26401.27 -14403.53173 34941.25
## 134      10058.175  -7442.09392 27558.44 -16706.17682 36822.53
## 135       9847.492  -9058.05746 28753.04 -19066.05105 38761.04
## 136       9636.810 -10710.41479 29984.03 -21481.58477 40755.20
## 137       9426.127 -12398.22523 31250.48 -23951.33935 42803.59
## 138       9215.444 -14120.62179 32551.51 -26473.98884 44904.88
## 139       9004.761 -15876.80151 33886.32 -29048.30522 47057.83
## 140       8794.078 -17666.01758 35254.17 -31673.14631 49261.30
## 141       8583.396 -19487.57271 36654.36 -34347.44575 51514.24
## 142       8372.713 -21340.81374 38086.24 -37070.20458 53815.63
## 143       8162.030 -23225.12691 39549.19 -39840.48416 56164.54
## 144       7951.347 -25139.93396 41042.63 -42657.40009 58560.09
## 145       7740.664 -27084.68867 42566.02 -45520.11701 61001.45
## 146       7529.982 -29058.87392 44118.84 -48427.84408 63487.81
## 147       7319.299 -31061.99917 45700.60 -51379.83105 66018.43

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

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

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

#Lamda dan gamma optimum
des.opt<- HoltWinters(train.ts, gamma = FALSE)
des.opt
## Holt-Winters exponential smoothing with trend and without seasonal component.
## 
## Call:
## HoltWinters(x = train.ts, gamma = FALSE)
## 
## Smoothing parameters:
##  alpha: 0.2720662
##  beta : 0.3608
##  gamma: FALSE
## 
## Coefficients:
##          [,1]
## a 13833.10232
## b   -98.37677
plot(des.opt)

#ramalan
ramalandesopt<- forecast(des.opt, h=29)
ramalandesopt
##     Point Forecast       Lo 80    Hi 80       Lo 95    Hi 95
## 119       13734.73 11896.45541 15573.00  10923.3340 16546.12
## 120       13636.35 11676.13852 15596.56  10638.4659 16634.23
## 121       13537.97 11396.99332 15678.95  10263.6277 16812.32
## 122       13439.60 11058.74327 15820.45   9798.3964 17080.79
## 123       13341.22 10665.11201 16017.32   9248.4668 17433.97
## 124       13242.84 10221.55368 16264.13   8622.1804 17863.50
## 125       13144.46  9733.67543 16555.25   7928.1125 18360.82
## 126       13046.09  9206.48147 16885.69   7173.9165 18918.26
## 127       12947.71  8644.15620 17251.27   6365.9917 19529.43
## 128       12849.33  8050.10232 17648.57   5509.5422 20189.13
## 129       12750.96  7427.06527 18074.85   4608.7668 20893.15
## 130       12652.58  6777.26710 18527.89   3667.0638 21638.10
## 131       12554.20  6102.52238 19005.89   2687.2083 22421.20
## 132       12455.83  5404.33049 19507.32   1671.4935 23240.16
## 133       12357.45  4683.94638 20030.96    621.8386 24093.06
## 134       12259.07  3942.43411 20575.71   -460.1291 24978.28
## 135       12160.70  3180.70717 21140.69  -1573.0124 25894.41
## 136       12062.32  2399.55898 21725.08  -2715.5979 26840.24
## 137       11963.94  1599.68611 22328.20  -3886.8204 27814.71
## 138       11865.57   781.70606 22949.43  -5085.7354 28816.87
## 139       11767.19   -53.82887 23588.21  -6311.4983 29845.88
## 140       11668.81  -906.42082 24244.05  -7563.3477 30900.97
## 141       11570.44 -1775.61777 24916.49  -8840.5922 31981.47
## 142       11472.06 -2661.00672 25605.13 -10142.6002 33086.72
## 143       11373.68 -3562.20812 26309.57 -11468.7913 34216.16
## 144       11275.31 -4478.87145 27029.48 -12818.6293 35369.24
## 145       11176.93 -5410.67141 27764.53 -14191.6169 36545.48
## 146       11078.55 -6357.30493 28514.41 -15587.2904 37744.40
## 147       10980.18 -7318.48857 29278.84 -17005.2164 38965.57

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

Akurasi Data Latih

#Akurasi Data Training
ssedes.train1<-des.1$SSE
msedes.train1<-ssedes.train1/length(train.ts)
sisaandes1<-ramalandes1$residuals
head(sisaandes1)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]       NA       NA 3046.000 3796.960 3636.850 3049.287
mapedes.train1 <- sum(abs(sisaandes1[3:length(train.ts)]/train.ts[3:length(train.ts)])
                      *100)/length(train.ts)

akurasides.1 <- matrix(c(ssedes.train1,msedes.train1,mapedes.train1))
row.names(akurasides.1)<- c("SSE", "MSE", "MAPE")
colnames(akurasides.1) <- c("Akurasi lamda=0.2 dan gamma=0.2")
akurasides.1
##      Akurasi lamda=0.2 dan gamma=0.2
## SSE                     2.915428e+08
## MSE                     2.470702e+06
## MAPE                    1.004219e+01
ssedes.train2<-des.2$SSE
msedes.train2<-ssedes.train2/length(train.ts)
sisaandes2<-ramalandes2$residuals
head(sisaandes2)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]        NA        NA 3046.0000 2152.1200  798.1864 -201.0606
mapedes.train2 <- sum(abs(sisaandes2[3:length(train.ts)]/train.ts[3:length(train.ts)])
                      *100)/length(train.ts)

akurasides.2 <- matrix(c(ssedes.train2,msedes.train2,mapedes.train2))
row.names(akurasides.2)<- c("SSE", "MSE", "MAPE")
colnames(akurasides.2) <- c("Akurasi lamda=0.6 dan gamma=0.3")
akurasides.2
##      Akurasi lamda=0.6 dan gamma=0.3
## SSE                     2.961596e+08
## MSE                     2.509827e+06
## MAPE                    9.995788e+00

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
selisihdes1<-ramalandes1$mean-testing$Intern
selisihdes1
## Time Series:
## Start = 119 
## End = 147 
## Frequency = 1 
##  [1] -1145.58510  -191.59203   226.40104  -677.60590   334.38717  -238.61976
##  [7]   660.37331 -1563.63362    80.35944   907.35251 -1300.65442  -655.66135
## [13] -2343.66828  -610.67522 -2873.68215  -616.68908   995.30399  -335.70294
## [19]  -903.70988  -601.71681   953.27626 -1721.73067   696.26240   987.25546
## [25]  -304.75147  -934.75840 -1070.76533   681.22774   140.22080
SSEtestingdes1<-sum(selisihdes1^2)
MSEtestingdes1<-SSEtestingdes1/length(testing$Intern)
MAPEtestingdes1<-sum(abs(selisihdes1/testing$Intern)*100)/length(testing$Yt)

selisihdes2<-ramalandes2$mean-testing$Intern
selisihdes2
## Time Series:
## Start = 119 
## End = 147 
## Frequency = 1 
##  [1] -1812.5827 -1033.2655  -789.9483 -1868.6311 -1031.3139 -1778.9967
##  [7] -1054.6795 -3453.3623 -1984.0451 -1331.7279 -3714.4107 -3244.0935
## [13] -5106.7763 -3548.4591 -5986.1419 -3903.8247 -2466.5075 -3972.1903
## [19] -4714.8731 -4587.5559 -3207.2387 -6056.9215 -3813.6043 -3697.2871
## [25] -5163.9699 -5968.6527 -6279.3355 -4702.0183 -5417.7011
SSEtestingdes2<-sum(selisihdes2^2)
MSEtestingdes2<-SSEtestingdes2/length(testing$Intern)
MAPEtestingdes2<-sum(abs(selisihdes2/testing$Intern)*100)/length(testing$Intern)

selisihdesopt<-ramalandesopt$mean-testing$Intern
selisihdesopt
## Time Series:
## Start = 119 
## End = 147 
## Frequency = 1 
##  [1] -1296.27446  -404.65123   -49.02800 -1015.40478   -65.78155  -701.15832
##  [7]   135.46490 -2150.91187  -569.28865   195.33458 -2075.04219 -1492.41897
## [13] -3242.79574 -1572.17251 -3897.54929 -1702.92606  -153.30283 -1546.67961
## [19] -2177.05638 -1937.43316  -444.80993 -3182.18670  -826.56348  -597.94025
## [25] -1952.31702 -2644.69380 -2843.07057 -1153.44735 -1756.82412
SSEtestingdesopt<-sum(selisihdesopt^2)
MSEtestingdesopt<-SSEtestingdesopt/length(testing$Yt)
MAPEtestingdesopt<-sum(abs(selisihdesopt/testing$Intern)*100)/length(testing$Intern)

akurasitestingdes <-
  matrix(c(SSEtestingdes1,MSEtestingdes1,MAPEtestingdes1,SSEtestingdes2,MSEtestingdes2,
           MAPEtestingdes2,SSEtestingdesopt,MSEtestingdesopt,MAPEtestingdesopt),
         nrow=3,ncol=3)
row.names(akurasitestingdes)<- c("SSE", "MSE", "MAPE")
colnames(akurasitestingdes) <- c("des ske1","des ske2","des opt")
akurasitestingdes
##      des ske1     des ske2      des opt
## SSE  32576223 4.390165e+08 9.157162e+07
## MSE   1123318 1.513850e+07          Inf
## MAPE      Inf 2.540248e+01 1.012763e+01

Perbandingan SES dan DES

MSEfull <-
  matrix(c(MSEtesting1,MSEtesting2,MSEtestingopt,MSEtestingdes1,MSEtestingdes2,
           MSEtestingdesopt),nrow=3,ncol=2)
row.names(MSEfull)<- c("ske 1", "ske 2", "ske opt")
colnames(MSEfull) <- c("ses","des")
MSEfull
##              ses      des
## ske 1   16230400  1123318
## ske 2   20642086 15138502
## ske opt 16293089      Inf

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 (WINTER)

Melakukan pembagian data dan mengubahnya menjadi data deret waktu.

#membagi data menjadi training dan testing
training<-data8[1:118,2]
testing<-data8[119:147,2]
training.ts<-ts(training, frequency = 21)
testing.ts<-ts(testing, frequency = 21)

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

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

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

plot(testing.ts, col="green",main="Plot data uji")
points(testing.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. Perbedaan persamaan dan contoh datanya adalah sebagai berikut.

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 
winter1 <- HoltWinters(training.ts,alpha=0.2,beta=0.1,gamma=0.1,seasonal = "additive")
winter1$fitted
## Time Series:
## Start = c(2, 1) 
## End = c(6, 13) 
## Frequency = 21 
##               xhat     level      trend       season
## 2.000000  9843.905  9330.276  98.935361   414.693878
## 2.047619 10148.249  9568.630 112.877260   466.741497
## 2.095238  9729.849  9798.658 124.592281  -193.401361
## 2.142857 10055.534 10017.880 134.055310   -96.401361
## 2.190476 11341.081 10245.629 143.424627   952.027211
## 2.238095  9451.442 10467.437 151.263016 -1167.258503
## 2.285714 12971.027 10676.612 157.054182  2137.360544
## 2.333333 10738.891 10863.061 159.993649  -284.163265
## 2.380952 10100.028 11038.076 161.495827 -1099.544218
## 2.428571 10878.784 11205.566 162.095271  -488.877551
## 2.476190 11917.505 11347.105 160.039588   410.360544
## 2.523810 11818.770 11569.643 166.289488    82.836735
## 2.571429 10530.259 11875.379 180.234094 -1525.353741
## 2.619048 11797.461 12104.761 185.148907  -492.448980
## 2.666667 12116.761 12692.818 225.439684  -801.496599
## 2.714286 12226.468 12933.305 226.944464  -933.782313
## 2.761905 13660.402 13007.556 211.675113   441.170068
## 2.809524 12999.418 12833.351 173.087082    -7.020408
## 2.857143 13525.673 12862.955 158.738726   503.979592
## 2.904762 12516.758 12941.359 150.705266  -575.306122
## 2.952381 14963.447 12605.512 102.050107  2255.884354
## 3.000000 13357.416 12777.873 109.081168   470.461473
## 3.047619 13260.066 12660.071  86.392851   513.601583
## 3.095238 12151.713 12268.651  38.611539  -155.549246
## 3.142857 12505.693 12506.120  58.497275   -58.924093
## 3.190476 13793.783 12734.878  75.523415   983.380769
## 3.238095 11573.799 12657.645  60.247761 -1144.093841
## 3.285714 14685.743 12498.333  38.291775  2149.118416
## 3.333333 12414.299 12643.476  48.976906  -278.154555
## 3.380952 11504.738 12565.594  36.290932 -1097.146440
## 3.428571 12055.333 12523.937  28.496171  -497.100284
## 3.476190 13184.516 12705.366  43.789517   435.360143
## 3.523810 12981.827 12794.853  48.359194   138.615160
## 3.571429 11268.655 12736.647  37.702652 -1505.694491
## 3.619048 12329.702 12637.018  23.969558  -331.285873
## 3.666667 12370.905 13098.647  67.735519  -795.477478
## 3.714286 12440.800 13349.602  86.057410  -994.859717
## 3.761905 13553.159 13203.499  62.841419   286.817946
## 3.809524 13245.373 13248.709  61.078245   -64.413835
## 3.857143 13896.089 13358.313  65.930776   471.845753
## 3.904762 12774.348 13473.426  70.848994  -769.926758
## 3.952381 15561.796 13237.605  40.182039  2284.008599
## 4.000000 13588.822 13178.828  30.286126   379.708206
## 4.047619 13577.976 13223.750  31.749682   322.476332
## 4.095238 13168.788 13216.904  27.890170   -76.006303
## 4.142857 13536.452 13476.237  51.034410     9.180467
## 4.190476 14646.564 13659.981  64.305378   922.278155
## 4.238095 12356.350 13542.173  46.094092 -1231.917785
## 4.285714 16021.504 13765.797  63.847099  2191.858938
## 4.333333 13733.002 13982.744  79.157029  -328.898452
## 4.380952 12987.212 14038.700  76.836980 -1128.325481
## 4.428571 13783.461 14140.095  79.292742  -435.926903
## 4.476190 14946.918 14396.296  96.983525   453.638853
## 4.523810 14531.610 14352.696  82.925165    95.988990
## 4.571429 12993.205 14467.699  86.132972 -1560.626867
## 4.619048 14264.358 14354.391  66.188875  -156.222027
## 4.666667 14072.720 14700.708  94.201723  -722.189915
## 4.714286 13806.289 14799.366  94.647325 -1087.723680
## 4.761905 15261.322 14887.555  94.001535   279.765249
## 4.809524 14687.284 14669.492  62.795094   -45.003709
## 4.857143 15021.879 14491.631  38.729418   491.518624
## 4.904762 13485.342 14356.584  21.351843  -892.594580
## 4.952381 16497.338 14244.868   8.045010  2244.424950
## 5.000000 14376.286 14007.245 -16.521748   385.562428
## 5.047619 14281.837 13991.266 -16.467468   307.038285
## 5.095238 13569.258 13606.031 -53.344212    16.570657
## 5.142857 13565.291 13556.036 -53.009371    62.264340
## 5.190476 14408.726 13602.368 -43.075184   849.433008
## 5.238095 12145.932 13368.948 -62.109704 -1160.905754
## 5.285714 15523.362 13330.052 -59.788351  2253.098657
## 5.333333 12881.237 13278.391 -58.975589  -338.178648
## 5.380952 12099.965 13272.168 -53.700322 -1118.502434
## 5.428571 13205.071 13587.075 -16.839627  -365.163771
## 5.476190 13996.985 13612.221 -12.641051   397.405416
## 5.523810 13630.202 13539.983 -18.600753   108.820217
## 5.571429 12051.753 13693.541  -1.384795 -1640.403255
## 5.619048 13930.896 13950.606  24.460136   -44.170635
## 5.666667 13443.922 14124.887  39.442226  -720.407508
## 5.714286 13168.482 14214.345  44.443791 -1090.306839
## 5.761905 14361.486 14170.892  35.654153   154.939484
## 5.809524 13827.807 13958.249  10.824434  -141.266412
## 5.857143 14406.129 13972.912  11.208288   422.008322
## 5.904762 13325.579 14235.095  36.305710  -945.821912
## 5.952381 16523.477 14334.685  42.634139  2146.157920
## 6.000000 14577.268 14169.624  21.864602   385.779546
## 6.047619 14225.425 14057.435   8.459248   159.531308
## 6.095238 13826.190 13824.009 -15.729255    17.910023
## 6.142857 13828.510 13748.242 -21.733047   102.001088
## 6.190476 14202.738 13476.207 -46.763241   773.294928
## 6.238095 12406.677 13589.096 -30.798008 -1151.620341
## 6.285714 16151.760 13892.762   2.648444  2256.349702
## 6.333333 13486.214 13809.259  -5.966764  -317.077580
## 6.380952 12863.178 13836.849  -2.611050  -971.059651
## 6.428571 13616.318 13955.202   9.485384  -348.369467
## 6.476190 14328.750 13947.424   7.759020   373.566608
## 6.523810 14126.601 13942.433   6.484027   177.684046
## 6.571429 12585.005 14100.397  21.632003 -1537.023530
xhat1 <- winter1$fitted[,2]

winter1.opt<- HoltWinters(training.ts, alpha= NULL,  beta = NULL, gamma = NULL, seasonal = "additive")
winter1.opt
## Holt-Winters exponential smoothing with trend and additive seasonal component.
## 
## Call:
## HoltWinters(x = training.ts, alpha = NULL, beta = NULL, gamma = NULL,     seasonal = "additive")
## 
## Smoothing parameters:
##  alpha: 0.2575123
##  beta : 0.03257547
##  gamma: 0.4307181
## 
## Coefficients:
##            [,1]
## a   14204.01706
## b      20.97563
## s1    698.83970
## s2   -530.11364
## s3  -1395.84746
## s4   -654.05853
## s5   -397.33287
## s6    619.57166
## s7  -1392.09581
## s8   1413.07454
## s9    -18.27592
## s10  -837.60339
## s11   -31.91415
## s12  -177.98483
## s13   668.51831
## s14  -708.33212
## s15  2084.64484
## s16  -406.53618
## s17  -639.03838
## s18  -333.69611
## s19   160.16478
## s20   470.06594
## s21 -1564.15459
winter1.opt$fitted
## Time Series:
## Start = c(2, 1) 
## End = c(6, 13) 
## Frequency = 21 
##               xhat     level      trend       season
## 2.000000  9843.905  9330.276  98.935361   414.693878
## 2.047619 10180.246  9608.722 104.783001   466.741497
## 2.095238  9772.130  9856.103 109.428212  -193.401361
## 2.142857 10093.127 10076.486 113.042602   -96.401361
## 2.190476 11369.168 10300.483 116.657017   952.027211
## 2.238095  9463.282 10510.832 119.709056 -1167.258503
## 2.285714 12961.456 10702.057 122.038715  2137.360544
## 2.333333 10703.596 10864.407 123.351900  -284.163265
## 2.380952 10040.923 11016.190 124.278034 -1099.544218
## 2.428571 10799.554 11163.406 125.025260  -488.877551
## 2.476190 11817.554 11282.366 124.827678   410.360544
## 2.523810 11724.528 11513.403 128.287516    82.836735
## 2.571429 10455.078 11845.505 134.926849 -1525.353741
## 2.619048 11708.243 12063.073 137.618931  -492.448980
## 2.666667 12096.205 12742.435 155.266476  -801.496599
## 2.714286 12144.658 12922.370 156.070059  -933.782313
## 2.761905 13494.427 12902.905 150.351914   441.170068
## 2.809524 12727.692 12599.153 135.559258    -7.020408
## 2.857143 13255.741 12619.941 131.820537   503.979592
## 2.904762 12273.246 12717.836 130.715416  -575.306122
## 2.952381 14653.029 12284.794 112.350741  2255.884354
## 3.000000 13323.141 12567.611 117.903739   637.626876
## 3.047619 13154.723 12402.214 108.675111   643.833579
## 3.095238 11956.713 11922.803  89.517906   -55.607867
## 3.142857 12459.464 12318.577  99.494343    41.393113
## 3.190476 13824.603 12649.198 107.023399  1068.381870
## 3.238095 11573.515 12551.601 100.357805 -1078.443563
## 3.285714 14647.910 12369.335  91.151205  2187.423847
## 3.333333 12454.901 12607.806  95.950230  -248.855719
## 3.380952 11549.193 12529.961  90.288765 -1071.057265
## 3.428571 12098.677 12508.440  86.646501  -496.410079
## 3.476190 13415.796 12780.836  92.697384   542.261956
## 3.523810 13301.440 12872.814  92.673933   335.951894
## 3.571429 11408.775 12745.974  85.523170 -1422.721920
## 3.619048 12877.519 12618.592  78.587696   180.338655
## 3.666667 12441.112 13119.624  92.349012  -770.861128
## 3.714286 12377.466 13429.800  99.444815 -1151.778484
## 3.761905 13214.093 13246.634  90.238627  -122.778992
## 3.809524 13344.273 13401.484  92.343381  -149.553863
## 3.857143 14086.236 13530.839  93.549044   461.848429
## 3.904762 12457.331 13638.748  94.016825 -1275.433318
## 3.952381 15970.942 13419.544  83.813529  2467.584521
## 4.000000 13632.611 13270.581  76.230733   285.798524
## 4.047619 13344.350 13354.380  76.477268   -86.507732
## 4.095238 13842.873 13441.325  76.818266   324.729666
## 4.142857 14051.853 13642.555  80.871014   328.427691
## 4.190476 14657.955 13761.575  82.113754   814.265559
## 4.238095 12251.222 13606.274  74.379859 -1429.432132
## 4.285714 16389.395 13936.307  82.707860  2370.379849
## 4.333333 13742.755 14121.403  86.043208  -464.691027
## 4.380952 13050.138 14175.063  84.988300 -1209.913424
## 4.428571 14095.228 14275.466  85.490461  -265.728743
## 4.476190 15140.116 14508.453  90.295208   541.367898
## 4.523810 14514.104 14367.987  82.778065    63.339218
## 4.571429 12893.719 14496.575  84.270359 -1687.127069
## 4.619048 15131.381 14349.672  76.739769   704.969350
## 4.666667 14144.698 14563.825  81.216075  -500.343700
## 4.714286 13210.291 14632.244  80.799182 -1502.751341
## 4.761905 14901.194 14858.205  85.527899   -42.538260
## 4.809524 14606.538 14634.668  75.459967  -103.589640
## 4.857143 14966.786 14421.060  66.043461   479.681913
## 4.904762 12672.341 14277.544  59.216950 -1664.419526
## 4.952381 16613.742 14374.785  60.455596  2178.501173
## 5.000000 14433.325 14088.953  49.175117   295.197313
## 5.047619 14099.350 14124.139  48.719404   -73.507682
## 5.095238 14259.058 13745.040  34.783025   479.234965
## 5.142857 14011.445 13606.502  29.137022   375.805381
## 5.190476 14197.641 13648.658  29.561110   519.421770
## 5.238095 12398.904 13487.495  23.348182 -1111.938879
## 5.285714 15995.324 13475.589  22.199750  2497.535247
## 5.333333 12900.391 13386.717  18.581556  -504.907889
## 5.380952 12298.153 13468.289  20.633481 -1190.769237
## 5.428571 13864.367 13912.490  34.431421   -82.554588
## 5.476190 14116.654 13831.204  30.661865   254.787484
## 5.523810 13901.704 13754.315  27.158342   120.230795
## 5.571429 11991.106 13933.224  32.101699 -1974.220122
## 5.619048 15232.786 14313.713  43.450566   875.622181
## 5.666667 13737.391 14214.814  38.813476  -516.237162
## 5.714286 12958.428 14242.454  38.449489 -1322.475702
## 5.761905 13831.984 14221.823  36.524912  -426.363908
## 5.809524 13642.975 14075.003  30.552372  -462.580604
## 5.857143 14409.789 14158.095  32.263852   219.430854
## 5.904762 12938.123 14512.561  42.759738 -1617.197881
## 5.952381 16533.691 14736.578  48.664275  1748.448878
## 6.000000 14832.882 14515.191  39.867244   277.823903
## 6.047619 13743.920 14316.632  32.100402  -604.812366
## 6.095238 14451.267 14161.284  25.994181   263.989099
## 6.142857 14359.216 13949.011  18.232496   391.973141
## 6.190476 13794.145 13508.301   3.282223   282.562696
## 6.238095 12680.047 13822.363  13.406025 -1155.721235
## 6.285714 16580.754 14196.016  25.141258  2359.596718
## 6.333333 13591.008 13999.760  17.929137  -426.681167
## 6.380952 13387.626 14033.910  18.457550  -664.742314
## 6.428571 13865.934 14073.065  19.131777  -226.263559
## 6.476190 14143.225 14005.690  16.313769   121.220636
## 6.523810 14379.387 14053.363  17.335293   308.689271
## 6.571429 12680.650 14200.642  21.568281 -1541.560669
xhat1.opt <- winter1.opt$fitted[,2]

Peramalan

#Forecast
forecast1 <- predict(winter1, n.ahead = 29)
forecast1.opt <- predict(winter1.opt, n.ahead = 29)

Plot Deret Waktu

#Plot time series
plot(training.ts,main="Winter 0.2;0.1;0.1",type="l",col="black",
     xlim=c(1,8),pch=10)
lines(xhat1,type="l",col="red")
lines(xhat1.opt,type="l",col="blue")
lines(forecast1,type="l",col="red")
lines(forecast1.opt,type="l",col="blue")
legend("topleft",c("Actual Data",expression(paste(winter1)),
                   expression(paste(winter1.opt))),cex=0.5,
       col=c("black","red","blue"),lty=1)

Akurasi Data Latih

#Akurasi data training
SSE1<-winter1$SSE
MSE1<-winter1$SSE/length(training.ts)
RMSE1<-sqrt(MSE1)
akurasi1 <- matrix(c(SSE1,MSE1,RMSE1))
row.names(akurasi1)<- c("SSE", "MSE", "RMSE")
colnames(akurasi1) <- c("Akurasi")
akurasi1
##           Akurasi
## SSE  7.846649e+07
## MSE  6.649703e+05
## RMSE 8.154571e+02
SSE1.opt<-winter1.opt$SSE
MSE1.opt<-winter1.opt$SSE/length(training.ts)
RMSE1.opt<-sqrt(MSE1.opt)
akurasi1.opt <- matrix(c(SSE1.opt,MSE1.opt,RMSE1.opt))
row.names(akurasi1.opt)<- c("SSE1.opt", "MSE1.opt", "RMSE1.opt")
colnames(akurasi1.opt) <- c("Akurasi")
akurasi1.opt
##                Akurasi
## SSE1.opt  6.952043e+07
## MSE1.opt  5.891562e+05
## RMSE1.opt 7.675651e+02
akurasi1.train = data.frame(Model_Winter = c("Winter 1","Winter1 optimal"),
                            Nilai_SSE=c(SSE1,SSE1.opt),
                            Nilai_MSE=c(MSE1,MSE1.opt),Nilai_RMSE=c(RMSE1,RMSE1.opt))
akurasi1.train
##      Model_Winter Nilai_SSE Nilai_MSE Nilai_RMSE
## 1        Winter 1  78466493  664970.3   815.4571
## 2 Winter1 optimal  69520428  589156.2   767.5651

Akurasi Data Uji

#Akurasi Data Testing
forecast1<-data.frame(forecast1)
testing.ts<-data.frame(testing.ts)
forecast1
##         fit
## 1  14164.92
## 2  13470.89
## 3  13067.96
## 4  14271.18
## 5  14097.96
## 6  14782.22
## 7  13361.44
## 8  16367.16
## 9  14658.37
## 10 14411.12
## 11 14364.37
## 12 14394.49
## 13 15251.90
## 14 13419.04
## 15 16680.90
## 16 14177.48
## 17 13580.60
## 18 14170.13
## 19 14916.00
## 20 14807.94
## 21 13056.77
## 22 14629.69
## 23 13935.66
## 24 13532.73
## 25 14735.95
## 26 14562.73
## 27 15246.99
## 28 13826.21
## 29 16831.93
testing.ts
##    testing.ts
## 1       15031
## 2       14041
## 3       13587
## 4       14455
## 5       13407
## 6       13944
## 7       13009
## 8       15197
## 9       13517
## 10      12654
## 11      14826
## 12      14145
## 13      15797
## 14      14028
## 15      16255
## 16      13962
## 17      12314
## 18      13609
## 19      14141
## 20      13803
## 21      12212
## 22      14851
## 23      12397
## 24      12070
## 25      13326
## 26      13920
## 27      14020
## 28      12232
## 29      12737
selisih1<-forecast1-testing.ts
SSEtesting1<-sum(selisih1^2)
MSEtesting1<-SSEtesting1/length(testing.ts)

forecast1.opt<-data.frame(forecast1.opt)
selisih1.opt<-forecast1.opt-testing.ts
SSEtesting1.opt<-sum(selisih1.opt^2)
MSEtesting1.opt<-SSEtesting1.opt/length(testing.ts)
MSEtesting1.opt
## [1] 32186062

Winter Multiplikatif

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

Pemulusan

#Pemulusan dengan winter multiplikatif 
winter2 <- HoltWinters(training.ts,alpha=0.2,beta=0.1,gamma=0.3,seasonal = "multiplicative")
winter2$fitted
## Time Series:
## Start = c(2, 1) 
## End = c(6, 13) 
## Frequency = 21 
##               xhat     level      trend    season
## 2.000000  9819.903  9330.276  98.935361 1.0414342
## 2.047619 10127.930  9567.693 112.783504 1.0462223
## 2.095238  9745.577  9796.335 124.369382 0.9823473
## 2.142857 10069.159 10013.833 133.682234 0.9922783
## 2.190476 11317.416 10239.191 142.849854 1.0900955
## 2.238095  9491.150 10458.288 150.474571 0.8946519
## 2.285714 12952.454 10664.617 156.059985 1.1970096
## 2.333333 10748.572 10848.337 158.825971 0.9765070
## 2.380952 10109.921 11020.563 160.166014 0.9042273
## 2.428571 10879.769 11185.170 160.610137 0.9589265
## 2.476190 11906.480 11324.138 158.445858 1.0369164
## 2.523810 11801.736 11544.984 164.685900 1.0078624
## 2.571429 10110.338 11851.408 178.859745 0.8404084
## 2.619048 11741.140 12188.682 194.701134 0.9481367
## 2.666667 11964.135 12820.211 238.383866 0.9161886
## 2.714286 12065.414 13108.336 243.358065 0.9036616
## 2.761905 14052.228 13218.367 230.025342 1.0449002
## 2.809524 13178.414 13004.096 185.595684 0.9991450
## 2.857143 13850.588 13010.255 167.652063 1.0510461
## 2.904762 12428.786 13039.648 153.826066 0.9420405
## 2.952381 15692.369 12695.663 104.045054 1.2259943
## 3.000000 13600.070 12738.147  97.888916 1.0595225
## 3.047619 13420.407 12576.095  71.894764 1.0610704
## 3.095238 12109.740 12167.454  23.841275 0.9933103
## 3.142857 12481.230 12399.944  44.706062 1.0029394
## 3.190476 13944.946 12619.290  62.170127 1.0996325
## 3.238095 11307.972 12515.051  45.529194 0.9002746
## 3.285714 14891.696 12375.754  27.046576 1.2006720
## 3.333333 12214.372 12457.487  32.515251 0.9779319
## 3.380952 11240.196 12401.168  23.631769 0.9046581
## 3.428571 11880.625 12397.122  20.863958 0.9567272
## 3.476190 13207.141 12614.358  40.501225 1.0436419
## 3.523810 13023.171 12694.309  44.446237 1.0223268
## 3.571429 10805.202 12626.429  33.213607 0.8535155
## 3.619048 12469.854 12607.341  27.983429 0.9869041
## 3.666667 12075.019 13050.390  69.489919 0.9203605
## 3.714286 12033.094 13383.250  95.827004 0.8927238
## 3.761905 13416.900 13310.359  78.955186 1.0020602
## 3.809524 13244.417 13398.915  79.915214 0.9826088
## 3.857143 14126.134 13528.409  84.873095 1.0376729
## 3.904762 12300.051 13616.340  85.178895 0.8977144
## 3.952381 16488.041 13465.575  61.584508 1.2188842
## 4.000000 13775.457 13293.988  38.267423 1.0332428
## 4.047619 13490.292 13310.294  36.071286 1.0107840
## 4.095238 13538.097 13325.532  33.987904 1.0133670
## 4.142857 13830.361 13515.022  49.538101 1.0195953
## 4.190476 14817.938 13637.067  56.788796 1.0820866
## 4.238095 11963.016 13493.883  36.791540 0.8841404
## 4.285714 16760.616 13820.444  65.768476 1.2069970
## 4.333333 13531.464 13890.584  66.205653 0.9695255
## 4.380952 12669.541 13974.435  67.970154 0.9022344
## 4.428571 13856.641 14140.042  77.733884 0.9745997
## 4.476190 15166.888 14384.277  94.383989 1.0475339
## 4.523810 14543.334 14302.459  76.763787 1.0114131
## 4.571429 12304.449 14408.621  79.703553 0.8492665
## 4.619048 14844.099 14415.685  72.439661 1.0245700
## 4.666667 13883.493 14648.368  88.463968 0.9420948
## 4.714286 13077.004 14781.733  92.954108 0.8791448
## 4.761905 15186.303 15033.250 108.810345 1.0029218
## 4.809524 14729.987 14845.865  79.190836 0.9869301
## 4.857143 15285.408 14672.559  53.941086 1.0379526
## 4.904762 12778.684 14508.299  32.121046 0.8788387
## 4.952381 17400.732 14549.823  33.061276 1.1932298
## 5.000000 14666.623 14225.579  -2.669168 1.0311970
## 5.047619 14284.717 14167.126  -8.247591 1.0088876
## 5.095238 14124.057 13792.789 -44.856558 1.0273586
## 5.142857 13942.506 13643.187 -55.331126 1.0261006
## 5.190476 14410.185 13611.146 -53.002043 1.0628435
## 5.238095 12062.033 13378.779 -70.938548 0.9063854
## 5.285714 16041.540 13351.965 -66.526135 1.2074528
## 5.333333 12751.006 13206.340 -74.436015 0.9709945
## 5.380952 11959.722 13213.056 -66.320756 0.9097104
## 5.428571 13399.181 13582.760 -22.718344 0.9881371
## 5.476190 13974.795 13563.243 -22.398157 1.0320475
## 5.523810 13646.602 13487.399 -27.742779 1.0138894
## 5.571429 11492.963 13626.222 -11.086167 0.8441313
## 5.619048 14622.037 14053.702  32.770453 1.0380197
## 5.666667 13361.768 14097.641  33.887257 0.9455289
## 5.714286 12679.893 14201.802  40.914687 0.8902720
## 5.761905 13994.273 14253.749  42.017887 0.9789102
## 5.809524 13668.266 14117.145  24.155727 0.9665494
## 5.857143 14479.181 14178.285  27.854121 1.0192200
## 5.904762 12743.448 14438.046  51.044777 0.8795202
## 5.952381 17086.902 14693.418  71.477551 1.1572653
## 6.000000 14914.390 14488.053  43.793291 1.0263245
## 6.047619 14025.893 14335.536  24.162266 0.9767540
## 6.095238 14409.705 14152.913   3.483721 1.0178936
## 6.142857 14362.911 13982.763 -13.879689 1.0282076
## 6.190476 14193.765 13621.499 -48.618026 1.0457444
## 6.238095 12461.342 13727.266 -33.179549 0.9099798
## 6.285714 16845.176 14049.624   2.374154 1.1987744
## 6.333333 13545.495 13864.444 -16.381266 0.9781510
## 6.380952 13090.590 13870.248 -14.162700 0.9447538
## 6.428571 13768.460 13935.981  -6.173096 0.9884171
## 6.476190 14247.005 13881.557 -10.998191 1.0271399
## 6.523810 14262.152 13874.063 -10.647792 1.0287618
## 6.571429 12247.910 13984.308   1.441452 0.8757421
xhat2 <- winter2$fitted[,2]

winter2.opt<- HoltWinters(training.ts, alpha= NULL,  beta = NULL, gamma = NULL, seasonal = "multiplicative")
winter2.opt$fitted
## Time Series:
## Start = c(2, 1) 
## End = c(6, 13) 
## Frequency = 21 
##               xhat     level      trend    season
## 2.000000  9819.903  9330.276  98.935361 1.0414342
## 2.047619 10140.153  9587.237 104.922167 1.0462223
## 2.095238  9756.216  9821.704 109.829934 0.9823473
## 2.142857 10070.728 10035.335 113.762413 0.9922783
## 2.190476 11305.450 10253.351 117.712064 1.0900955
## 2.238095  9466.921 10460.577 121.103288 0.8946519
## 2.285714 12898.198 10651.599 123.752129 1.1970096
## 2.333333 10685.525 10817.259 125.339823 0.9765070
## 2.380952 10036.112 10972.626 126.477390 0.9042273
## 2.428571 10788.091 11122.801 127.375160 0.9589265
## 2.476190 11794.473 11247.298 127.266137 1.0369164
## 2.523810 11692.536 11470.425 130.897798 1.0078624
## 2.571429 10022.505 11787.793 137.962223 0.8404084
## 2.619048 11639.416 12130.380 145.714400 0.9481367
## 2.666667 11878.007 12799.061 165.526902 0.9161886
## 2.714286 11938.540 13042.805 168.490156 0.9036616
## 2.761905 13850.292 13091.193 163.940119 1.0449002
## 2.809524 12927.577 12792.237 146.403352 0.9991450
## 2.857143 13592.120 12791.176 140.816676 1.0510461
## 2.904762 12215.730 12830.344 136.965715 0.9420405
## 2.952381 15408.611 12450.857 117.399971 1.2259943
## 3.000000 13608.128 12550.830 116.739779 1.0742493
## 3.047619 13384.872 12373.295 105.591224 1.0726014
## 3.095238 12050.621 11943.987  85.326609 1.0017714
## 3.142857 12516.753 12278.867  94.780906 1.0115653
## 3.190476 14032.110 12563.223 101.962930 1.1079277
## 3.238095 11371.396 12458.756  94.142373 0.9058782
## 3.285714 14968.412 12327.312  85.596052 1.2058748
## 3.333333 12317.235 12460.524  87.399987 0.9816154
## 3.380952 11354.035 12423.016  82.667855 0.9079100
## 3.428571 12005.625 12445.596  80.391433 0.9584574
## 3.476190 13492.624 12719.906  87.738010 1.0534821
## 3.523810 13371.205 12790.394  87.084506 1.0383403
## 3.571429 11064.368 12674.777  79.405213 0.8675090
## 3.619048 12983.791 12627.279  74.597500 1.0221947
## 3.666667 12169.314 13044.423  87.574805 0.9266918
## 3.714286 11990.156 13407.263  98.003213 0.8878133
## 3.761905 13046.530 13322.709  91.087042 0.9726203
## 3.809524 13295.546 13511.991  94.807142 0.9771253
## 3.857143 14231.208 13651.750  96.510124 1.0351279
## 3.904762 11990.457 13728.591  95.764978 0.8673429
## 3.952381 16770.423 13627.148  88.293789 1.2227402
## 4.000000 13816.097 13397.494  76.248372 1.0254090
## 4.047619 13254.581 13439.445  74.949005 0.9807751
## 4.095238 14175.100 13544.742  76.098761 1.0406919
## 4.142857 14290.767 13653.934  77.352484 1.0407449
## 4.190476 14792.231 13711.382  76.598405 1.0728352
## 4.238095 11916.385 13563.285  68.085856 0.8741883
## 4.285714 17077.474 13977.976  81.216945 1.2146838
## 4.333333 13559.117 14004.616  79.149292 0.9627481
## 4.380952 12752.784 14097.487  79.669131 0.8995305
## 4.428571 14155.578 14267.788  83.102724 0.9863902
## 4.476190 15296.053 14469.453  87.594443 1.0507661
## 4.523810 14502.516 14328.541  78.937492 1.0065964
## 4.571429 12363.598 14450.440  80.565106 0.8508426
## 4.619048 15575.781 14432.402  76.829527 1.0735084
## 4.666667 14066.249 14528.199  77.548121 0.9630626
## 4.714286 12700.665 14612.561  77.806246 0.8645574
## 4.761905 14853.369 14973.708  88.540578 0.9861322
## 4.809524 14625.229 14795.548  78.436654 0.9832758
## 4.857143 15151.476 14609.095  68.401339 1.0322930
## 4.904762 12242.704 14456.745  60.038221 0.8433482
## 4.952381 17204.333 14673.012  65.956912 1.1672684
## 5.000000 14706.291 14360.567  51.621224 1.0204065
## 5.047619 14171.671 14338.985  48.847936 0.9849760
## 5.095238 14657.847 13986.127  33.629338 1.0455137
## 5.142857 14333.368 13785.780  24.765194 1.0378568
## 5.190476 14308.603 13750.871  22.504429 1.0388596
## 5.238095 12454.080 13586.286  15.416586 0.9156265
## 5.285714 16357.361 13553.825  13.602752 1.2056346
## 5.333333 12949.093 13417.244   7.913061 0.9645394
## 5.380952 12273.991 13471.513   9.669217 0.9104536
## 5.428571 13950.714 13899.560  25.519408 1.0018409
## 5.476190 14082.889 13803.039  20.895940 1.0187323
## 5.523810 13925.001 13737.932  17.637729 1.0123173
## 5.571429 11676.991 13883.174  22.472015 0.8397302
## 5.619048 15495.330 14358.717  39.636542 1.0761876
## 5.666667 13744.099 14225.446  33.085971 0.9639210
## 5.714286 12791.847 14246.671  32.636583 0.8958311
## 5.761905 13611.315 14263.296  32.029998 0.9521514
## 5.809524 13483.421 14177.559  27.568432 0.9491940
## 5.857143 14354.368 14292.548  30.880330 1.0021601
## 5.904762 12617.838 14620.995  42.153597 0.8605136
## 5.952381 16612.904 14934.779  52.444285 1.1084711
## 6.000000 14953.259 14754.995  43.646338 1.0104481
## 6.047619 13588.296 14562.325  34.693537 0.9308953
## 6.095238 14654.013 14456.709  29.377926 1.0115922
## 6.142857 14668.136 14231.594  19.736481 1.0292468
## 6.190476 13948.563 13787.637   2.169533 1.0115126
## 6.238095 12767.164 14027.268  11.165721 0.9094436
## 6.285714 16979.364 14367.643  23.637762 1.1798369
## 6.333333 13749.930 14147.863  14.415917 0.9708840
## 6.380952 13627.375 14139.728  13.561596 0.9628415
## 6.428571 13914.428 14115.512  12.130398 0.9849080
## 6.476190 14139.197 14038.561   8.755557 1.0065408
## 6.523810 14509.716 14075.842   9.836228 1.0301042
## 6.571429 12627.026 14168.603  12.977849 0.8903821
xhat2.opt <- winter2.opt$fitted[,2]

Peramalan

#Forecast
forecast2 <- predict(winter2, n.ahead = 29)
forecast2.opt <- predict(winter2.opt, n.ahead = 29)

Plot Deret Waktu

#Plot time series
plot(training.ts,main="Winter 0.2;0.1;0.1",type="l",col="black",
     xlim=c(1,8),pch=12)
lines(xhat2,type="l",col="red")
lines(xhat2.opt,type="l",col="blue")
lines(forecast2,type="l",col="red")
lines(forecast2.opt,type="l",col="blue")
legend("topleft",c("Actual Data",expression(paste(winter2)),
                   expression(paste(winter2.opt))),cex=0.5,
       col=c("black","red","blue"),lty=1)

Akurasi Data Latih

#Akurasi data training
SSE2<-winter2$SSE
MSE2<-winter2$SSE/length(training.ts)
RMSE2<-sqrt(MSE2)
akurasi1 <- matrix(c(SSE2,MSE2,RMSE2))
row.names(akurasi1)<- c("SSE2", "MSE2", "RMSE2")
colnames(akurasi1) <- c("Akurasi lamda=0.2")
akurasi1
##       Akurasi lamda=0.2
## SSE2       8.895926e+07
## MSE2       7.538920e+05
## RMSE2      8.682696e+02
SSE2.opt<-winter2.opt$SSE
MSE2.opt<-winter2.opt$SSE/length(training.ts)
RMSE2.opt<-sqrt(MSE2.opt)
akurasi1.opt <- matrix(c(SSE2.opt,MSE2.opt,RMSE2.opt))
row.names(akurasi1.opt)<- c("SSE2.opt", "MSE2.opt", "RMSE2.opt")
colnames(akurasi1.opt) <- c("Akurasi")
akurasi1.opt
##                Akurasi
## SSE2.opt  8.222085e+07
## MSE2.opt  6.967869e+05
## RMSE2.opt 8.347376e+02
akurasi2.train = data.frame(Model_Winter = c("Winter 1","winter2 optimal"),
                            Nilai_SSE=c(SSE2,SSE2.opt),
                            Nilai_MSE=c(MSE2,MSE2.opt),Nilai_RMSE=c(RMSE2,RMSE2.opt))
akurasi2.train
##      Model_Winter Nilai_SSE Nilai_MSE Nilai_RMSE
## 1        Winter 1  88959259  753892.0   868.2696
## 2 winter2 optimal  82220851  696786.9   834.7376

Akurasi Data Uji

#Akurasi Data Testing
forecast2<-data.frame(forecast2)
testing.ts<-data.frame(testing.ts)
selisih2<-forecast2-testing.ts
SSEtesting2<-sum(selisih2^2)
MSEtesting2<-SSEtesting2/length(testing.ts)

forecast2.opt<-data.frame(forecast2.opt)
selisih2.opt<-forecast2.opt-testing.ts
SSEtesting2.opt<-sum(selisih2.opt^2)
MSEtesting2.opt<-SSEtesting2.opt/length(testing.ts)
MSEtesting2.opt
## [1] 23164032

Perbadingan winter aditif dan winter multiplikatif

Berdasarkan nilai MSE yang didapatkan metode winter muliplikatif lebih cocok digunakan dibandingkan winter aditif.