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

Impor Data

# data fmcg 1-100
library(rio)
## Warning: package 'rio' was built under R version 4.4.2
data0 <- import("https://raw.githubusercontent.com/nyayunabila/mpdw/refs/heads/main/Pertemuan%201/data-kelompok-9-mpdw.csv")
data0
##           date daily_revenue
## 1    8/19/2023        334.32
## 2    8/20/2023        140.92
## 3    8/21/2023        296.88
## 4    8/22/2023        157.86
## 5    8/23/2023        211.18
## 6    8/24/2023         76.58
## 7    8/25/2023         44.00
## 8    8/26/2023        221.09
## 9    8/27/2023        511.40
## 10   8/28/2023        151.50
## 11   8/29/2023         94.35
## 12   8/30/2023        158.52
## 13   8/31/2023        133.35
## 14    9/1/2023        128.49
## 15    9/2/2023        353.85
## 16    9/3/2023        316.00
## 17    9/4/2023        279.78
## 18    9/5/2023        212.13
## 19    9/6/2023        358.72
## 20    9/7/2023        108.24
## 21    9/8/2023         23.52
## 22    9/9/2023        206.89
## 23   9/10/2023        129.54
## 24   9/11/2023         35.04
## 25   9/12/2023        247.18
## 26   9/13/2023        215.94
## 27   9/14/2023        305.42
## 28   9/15/2023        104.24
## 29   9/16/2023        210.77
## 30   9/17/2023        284.90
## 31   9/18/2023         77.37
## 32   9/19/2023        170.29
## 33   9/20/2023        112.83
## 34   9/21/2023        157.17
## 35   9/22/2023         33.60
## 36   9/23/2023        212.88
## 37   9/24/2023        113.67
## 38   9/25/2023        400.44
## 39   9/26/2023        119.70
## 40   9/27/2023         99.44
## 41   9/28/2023        113.24
## 42   9/29/2023        130.26
## 43   9/30/2023        100.20
## 44   10/1/2023         81.84
## 45   10/2/2023        347.27
## 46   10/3/2023        137.07
## 47   10/4/2023        195.06
## 48   10/5/2023         59.92
## 49   10/6/2023        205.47
## 50   10/7/2023        217.49
## 51   10/8/2023         86.79
## 52   10/9/2023         53.70
## 53  10/10/2023        144.08
## 54  10/11/2023         31.86
## 55  10/12/2023        169.04
## 56  10/13/2023        283.87
## 57  10/14/2023        317.28
## 58  10/15/2023        153.93
## 59  10/16/2023        228.03
## 60  10/17/2023        319.72
## 61  10/18/2023        101.04
## 62  10/19/2023        150.03
## 63  10/20/2023         99.54
## 64  10/21/2023        261.53
## 65  10/22/2023        121.35
## 66  10/23/2023        184.60
## 67  10/24/2023         44.00
## 68  10/25/2023        106.00
## 69  10/26/2023        111.50
## 70  10/27/2023        212.40
## 71  10/28/2023        268.21
## 72  10/29/2023        284.31
## 73  10/30/2023         43.01
## 74  10/31/2023        397.97
## 75   11/1/2023        104.40
## 76   11/2/2023         90.66
## 77   11/3/2023         41.80
## 78   11/4/2023        263.16
## 79   11/5/2023         56.06
## 80   11/6/2023         58.64
## 81   11/7/2023        216.36
## 82   11/8/2023         82.14
## 83   11/9/2023        252.10
## 84  11/10/2023        195.70
## 85  11/11/2023         99.40
## 86  11/12/2023        166.39
## 87  11/13/2023        283.13
## 88  11/14/2023        224.49
## 89  11/15/2023         72.88
## 90  11/16/2023        306.82
## 91  11/17/2023        271.08
## 92  11/18/2023        153.19
## 93  11/19/2023        160.29
## 94  11/20/2023        113.47
## 95  11/21/2023        122.36
## 96  11/22/2023        149.07
## 97  11/23/2023        205.05
## 98  11/24/2023        322.55
## 99  11/25/2023         93.20
## 100 11/26/2023        220.42
## 101 11/27/2023        180.01
## 102 11/28/2023        311.84
## 103 11/29/2023        235.34
## 104 11/30/2023        450.13
## 105  12/1/2023        144.00
## 106  12/2/2023         44.28
## 107  12/3/2023        190.64
## 108  12/4/2023        284.07
## 109  12/5/2023        132.85
## 110  12/6/2023        276.02
## 111  12/7/2023        147.80
## 112  12/8/2023        153.69
## 113  12/9/2023        362.12
## 114 12/10/2023         83.22
## 115 12/11/2023        160.40
## 116 12/12/2023         95.99
## 117 12/13/2023        114.57
## 118 12/14/2023        167.02
## 119 12/15/2023         76.12
## 120 12/16/2023        295.00
## 121 12/17/2023        122.64
## 122 12/18/2023        110.43
## 123 12/19/2023        113.53
## 124 12/20/2023        201.90
## 125 12/21/2023        231.04
## 126 12/22/2023         57.40
## 127 12/23/2023        158.63
## 128 12/24/2023        127.36
## 129 12/25/2023        216.90
## 130 12/26/2023         93.36
## 131 12/27/2023        285.56
## 132 12/28/2023         85.95
## 133 12/29/2023         76.95
## 134 12/30/2023        192.14
## 135 12/31/2023        328.97
## 136   1/1/2024        106.45
## 137   1/2/2024        175.98
## 138   1/3/2024        102.26
## 139   1/4/2024        301.12
## 140   1/5/2024        175.68
## 141   1/6/2024        132.08
## 142   1/7/2024         93.04
## 143   1/8/2024        291.19
## 144   1/9/2024        115.02
## 145  1/10/2024         44.48
## 146  1/11/2024        132.77
## 147  1/12/2024        110.76
## 148  1/13/2024        476.18
## 149  1/14/2024        142.08
## 150  1/15/2024        165.87
## 151  1/16/2024        148.79
## 152  1/17/2024        176.94
## 153  1/18/2024         44.05
## 154  1/19/2024        128.58
## 155  1/20/2024        191.53
## 156  1/21/2024         66.66
## 157  1/22/2024        300.42
## 158  1/23/2024        187.09
## 159  1/24/2024        207.74
## 160  1/25/2024        276.99
## 161  1/26/2024        314.27
## 162  1/27/2024         74.15
## 163  1/28/2024         92.43
## 164  1/29/2024        236.86
## 165  1/30/2024        101.60
## 166  1/31/2024         78.00
## 167   2/1/2024        131.16
## 168   2/2/2024        193.21
## 169   2/3/2024        176.55
## 170   2/4/2024        151.02
## 171   2/5/2024        122.00
## 172   2/6/2024        170.04
## 173   2/7/2024         59.00
## 174   2/8/2024         19.26
## 175   2/9/2024        226.25
## 176  2/10/2024        283.23
## 177  2/11/2024        115.10
## 178  2/12/2024        285.93
## 179  2/13/2024        190.83
## 180  2/14/2024        245.22
## 181  2/15/2024        205.72
## 182  2/16/2024        153.30
## 183  2/17/2024        292.84
## 184  2/18/2024        276.04
## 185  2/19/2024        173.46
## 186  2/20/2024        174.66
## 187  2/21/2024        216.71
## 188  2/22/2024        202.31
## 189  2/23/2024        179.64
## 190  2/24/2024        171.42
## 191  2/25/2024         97.79
## 192  2/26/2024        236.41
## 193  2/27/2024         71.17
## 194  2/28/2024        188.11
## 195  2/29/2024        185.05
## 196   3/1/2024        184.15
## 197   3/2/2024        164.82
## 198   3/3/2024        249.22
## 199   3/4/2024        165.61
## 200   3/5/2024        321.10
## 201   3/6/2024        234.03
## 202   3/7/2024        217.11
## 203   3/8/2024        173.57
## 204   3/9/2024        316.56
## 205  3/10/2024        164.58
## 206  3/11/2024        246.13
## 207  3/12/2024         93.30
## 208  3/13/2024        289.34
## 209  3/14/2024        216.36
## 210  3/15/2024         67.48
## 211  3/16/2024        106.57
## 212  3/17/2024        214.42
## 213  3/18/2024        119.25
## 214  3/19/2024        249.75
## 215  3/20/2024         90.40
## 216  3/21/2024        116.40
## 217  3/22/2024        557.73
## 218  3/23/2024         97.11
## 219  3/24/2024        162.20
## 220  3/25/2024         27.03
## 221  3/26/2024        222.30
## 222  3/27/2024        243.00
## 223  3/28/2024        136.26
## 224  3/29/2024        241.32
## 225  3/30/2024        196.49
## 226  3/31/2024         83.32
## 227   4/1/2024         73.44
## 228   4/2/2024         97.95
## 229   4/3/2024        162.43
## 230   4/4/2024         93.94
## 231   4/5/2024        252.71
## 232   4/6/2024        174.81
## 233   4/7/2024        100.93
## 234   4/8/2024        283.92
## 235   4/9/2024        272.01
## 236  4/10/2024        147.84
## 237  4/11/2024         45.70
## 238  4/12/2024        251.83
## 239  4/13/2024        161.53
## 240  4/14/2024        243.23
## 241  4/15/2024        203.11
## 242  4/16/2024        225.12
## 243  4/17/2024        173.17
## 244  4/18/2024        327.72
## 245  4/19/2024        304.64
## 246  4/20/2024        101.80
## 247  4/21/2024        229.73
## 248  4/22/2024        116.88
## 249  4/23/2024        460.96
## 250  4/24/2024        146.37
## 251  4/25/2024        331.19
## 252  4/26/2024        313.10
## 253  4/27/2024        213.92
## 254  4/28/2024        388.04
## 255  4/29/2024        258.34
## 256  4/30/2024        295.47
## 257   5/1/2024        246.30
## 258   5/2/2024        322.08
## 259   5/3/2024        156.25
## 260   5/4/2024        190.88
## 261   5/5/2024        279.44
## 262   5/6/2024        183.46
## 263   5/7/2024        215.65
## 264   5/8/2024        285.88
## 265   5/9/2024        172.94
## 266  5/10/2024        172.18
## 267  5/11/2024         95.29
## 268  5/12/2024        409.44
## 269  5/13/2024        107.79
## 270  5/14/2024        157.01
## 271  5/15/2024        105.92
## 272  5/16/2024        264.66
## 273  5/17/2024        173.39
## 274  5/18/2024        283.36
## 275  5/19/2024        156.59
## 276  5/20/2024        274.86
## 277  5/21/2024        127.15
## 278  5/22/2024        307.03
## 279  5/23/2024        228.06
## 280  5/24/2024        154.69
## 281  5/25/2024        161.16
## 282  5/26/2024        222.81
## 283  5/27/2024        138.84
## 284  5/28/2024        275.16
## 285  5/29/2024        208.80
## 286  5/30/2024        128.09
## 287  5/31/2024        336.61
## 288   6/1/2024        174.95
## 289   6/2/2024        169.30
## 290   6/3/2024        180.67
## 291   6/4/2024        237.29
## 292   6/5/2024        352.48
## 293   6/6/2024         93.57
## 294   6/7/2024        431.18
## 295   6/8/2024        299.06
## 296   6/9/2024        237.99
## 297  6/10/2024        456.95
## 298  6/11/2024        165.72
## 299  6/12/2024        191.55
## 300  6/13/2024        186.46
## 301  6/14/2024        312.55
## 302  6/15/2024        151.53
## 303  6/16/2024        246.88
## 304  6/17/2024        234.16
## 305  6/18/2024        219.80
## 306  6/19/2024        217.96
## 307  6/20/2024        159.64
## 308  6/21/2024        210.33
## 309  6/22/2024        118.20
## 310  6/23/2024        271.70
## 311  6/24/2024        328.04
## 312  6/25/2024        337.63
## 313  6/26/2024        279.30
## 314  6/27/2024        294.11
## 315  6/28/2024        172.07
## 316  6/29/2024        163.08
## 317  6/30/2024          0.00
## 318   7/1/2024        292.44
## 319   7/2/2024        261.96
## 320   7/3/2024        595.38
## 321   7/4/2024        209.12
## 322   7/5/2024        389.44
## 323   7/6/2024        237.52
## 324   7/7/2024         66.03
## 325   7/8/2024         69.44
## 326   7/9/2024        225.72
## 327  7/10/2024        247.96
## 328  7/11/2024        137.46
## 329  7/12/2024         92.56
## 330  7/13/2024        180.87
## 331  7/14/2024        224.82
## 332  7/15/2024        322.65
## 333  7/16/2024        316.24
## 334  7/17/2024        372.18
## 335  7/18/2024        288.38
## 336  7/19/2024        151.94
## 337  7/20/2024        172.84
## 338  7/21/2024        329.47
## 339  7/22/2024        343.26
## 340  7/23/2024        199.20
## 341  7/24/2024        502.25
## 342  7/25/2024        179.54
## 343  7/26/2024        627.94
## 344  7/27/2024        164.97
## 345  7/28/2024        354.71
## 346  7/29/2024         97.76
## 347  7/30/2024        135.56
## 348  7/31/2024        130.10
## 349   8/1/2024         15.12
## 350   8/2/2024         84.82
## 351   8/3/2024         99.81
## 352   8/4/2024        202.18
## 353   8/5/2024        234.43
## 354   8/6/2024        215.46
## 355   8/7/2024        234.62
## 356   8/8/2024        290.71
## 357   8/9/2024         17.12
## 358  8/10/2024        333.18
## 359  8/11/2024        211.20
## 360  8/12/2024        325.10
## 361  8/13/2024        411.14
## 362  8/14/2024         85.58
## 363  8/15/2024        116.76
## 364  8/16/2024        111.24
## 365  8/17/2024        388.38
## 366  8/18/2024        174.54
## 367  8/19/2024        173.40
## 368  8/20/2024        325.62
## 369  8/21/2024        125.09
## 370  8/22/2024        177.55
## 371  8/23/2024        196.53
## 372  8/24/2024        307.65
## 373  8/25/2024        554.03
## 374  8/26/2024         64.98
## 375  8/27/2024         96.43
## 376  8/28/2024        284.40
## 377  8/29/2024        244.95
## 378  8/30/2024        236.55
## 379  8/31/2024        341.25
## 380   9/1/2024         93.38
## 381   9/2/2024        214.07
## 382   9/3/2024        248.70
## 383   9/4/2024        343.12
## 384   9/5/2024         63.32
## 385   9/6/2024        145.29
## 386   9/7/2024        406.24
## 387   9/8/2024        351.82
## 388   9/9/2024        109.28
## 389  9/10/2024        250.44
## 390  9/11/2024        137.30
## 391  9/12/2024        205.35
## 392  9/13/2024        114.21
## 393  9/14/2024        179.15
## 394  9/15/2024         87.59
## 395  9/16/2024        122.33
## 396  9/17/2024        225.73
## 397  9/18/2024        191.65
## 398  9/19/2024        259.44
## 399  9/20/2024         61.92
## 400  9/21/2024        298.13
## 401  9/22/2024        254.93
## 402  9/23/2024        181.45
## 403  9/24/2024        171.41
## 404  9/25/2024        363.80
## 405  9/26/2024        338.33
## 406  9/27/2024         91.48
## 407  9/28/2024        304.54
## 408  9/29/2024        136.60
## 409  9/30/2024        229.62
## 410  10/1/2024        144.44
## 411  10/2/2024        160.65
## 412  10/3/2024        326.06
## 413  10/4/2024        124.81
## 414  10/5/2024        238.83
## 415  10/6/2024        246.80
## 416  10/7/2024        175.68
## 417  10/8/2024        123.98
## 418  10/9/2024         81.87
## 419 10/10/2024        158.31
## 420 10/11/2024        238.44
## 421 10/12/2024        189.27
## 422 10/13/2024        152.68
## 423 10/14/2024        132.25
## 424 10/15/2024        159.89
## 425 10/16/2024        191.21
## 426 10/17/2024        141.48
## 427 10/18/2024        118.43
## 428 10/19/2024        203.68
## 429 10/20/2024        304.62
## 430 10/21/2024        168.30
## 431 10/22/2024        162.24
## 432 10/23/2024        266.04
## 433 10/24/2024        132.55
## 434 10/25/2024        191.08
## 435 10/26/2024         22.30
## 436 10/27/2024         38.22
## 437 10/28/2024         51.50
## 438 10/29/2024        185.51
## 439 10/30/2024        219.62
## 440 10/31/2024        347.34
## 441  11/1/2024        122.87
## 442  11/2/2024        336.92
## 443  11/3/2024        232.44
## 444  11/4/2024        276.85
## 445  11/5/2024         51.30
## 446  11/6/2024        174.73
## 447  11/7/2024        166.92
## 448  11/8/2024        232.84
## 449  11/9/2024        169.05
## 450 11/10/2024        146.61
## 451 11/11/2024        270.23
## 452 11/12/2024        347.85
## 453 11/13/2024         67.41
## 454 11/14/2024        144.24
## 455 11/15/2024        226.10
## 456 11/16/2024        198.78
## 457 11/17/2024        116.60
## 458 11/18/2024        269.52
## 459 11/19/2024        121.60
## 460 11/20/2024        106.11
## 461 11/21/2024        109.02
## 462 11/22/2024        150.30
## 463 11/23/2024        120.52
## 464 11/24/2024         86.32
## 465 11/25/2024        214.16
## 466 11/26/2024        161.83
## 467 11/27/2024        264.54
## 468 11/28/2024        318.03
## 469 11/29/2024         94.61
## 470 11/30/2024        175.87
## 471  12/1/2024        128.00
## 472  12/2/2024        185.97
## 473  12/3/2024        106.68
## 474  12/4/2024         57.79
## 475  12/5/2024        227.91
## 476  12/6/2024        115.74
## 477  12/7/2024        374.35
## 478  12/8/2024        165.64
## 479  12/9/2024        108.37
## 480 12/10/2024         66.64
## 481 12/11/2024         72.72
## 482 12/12/2024        298.60
## 483 12/13/2024        135.52
## 484 12/14/2024        212.44
## 485 12/15/2024        239.04
## 486 12/16/2024        116.45
## 487 12/17/2024         41.58
## 488 12/18/2024        252.36
## 489 12/19/2024        215.08
## 490 12/20/2024         66.39
## 491 12/21/2024        241.75
## 492 12/22/2024         40.50
## 493 12/23/2024        187.41
## 494 12/24/2024        367.45
## 495 12/25/2024        171.42
## 496 12/26/2024        236.11
## 497 12/27/2024        419.89
## 498 12/28/2024        271.20
## 499 12/29/2024        181.82
## 500 12/30/2024        122.16
data_z <- data0[1:100, ]
data_z
##           date daily_revenue
## 1    8/19/2023        334.32
## 2    8/20/2023        140.92
## 3    8/21/2023        296.88
## 4    8/22/2023        157.86
## 5    8/23/2023        211.18
## 6    8/24/2023         76.58
## 7    8/25/2023         44.00
## 8    8/26/2023        221.09
## 9    8/27/2023        511.40
## 10   8/28/2023        151.50
## 11   8/29/2023         94.35
## 12   8/30/2023        158.52
## 13   8/31/2023        133.35
## 14    9/1/2023        128.49
## 15    9/2/2023        353.85
## 16    9/3/2023        316.00
## 17    9/4/2023        279.78
## 18    9/5/2023        212.13
## 19    9/6/2023        358.72
## 20    9/7/2023        108.24
## 21    9/8/2023         23.52
## 22    9/9/2023        206.89
## 23   9/10/2023        129.54
## 24   9/11/2023         35.04
## 25   9/12/2023        247.18
## 26   9/13/2023        215.94
## 27   9/14/2023        305.42
## 28   9/15/2023        104.24
## 29   9/16/2023        210.77
## 30   9/17/2023        284.90
## 31   9/18/2023         77.37
## 32   9/19/2023        170.29
## 33   9/20/2023        112.83
## 34   9/21/2023        157.17
## 35   9/22/2023         33.60
## 36   9/23/2023        212.88
## 37   9/24/2023        113.67
## 38   9/25/2023        400.44
## 39   9/26/2023        119.70
## 40   9/27/2023         99.44
## 41   9/28/2023        113.24
## 42   9/29/2023        130.26
## 43   9/30/2023        100.20
## 44   10/1/2023         81.84
## 45   10/2/2023        347.27
## 46   10/3/2023        137.07
## 47   10/4/2023        195.06
## 48   10/5/2023         59.92
## 49   10/6/2023        205.47
## 50   10/7/2023        217.49
## 51   10/8/2023         86.79
## 52   10/9/2023         53.70
## 53  10/10/2023        144.08
## 54  10/11/2023         31.86
## 55  10/12/2023        169.04
## 56  10/13/2023        283.87
## 57  10/14/2023        317.28
## 58  10/15/2023        153.93
## 59  10/16/2023        228.03
## 60  10/17/2023        319.72
## 61  10/18/2023        101.04
## 62  10/19/2023        150.03
## 63  10/20/2023         99.54
## 64  10/21/2023        261.53
## 65  10/22/2023        121.35
## 66  10/23/2023        184.60
## 67  10/24/2023         44.00
## 68  10/25/2023        106.00
## 69  10/26/2023        111.50
## 70  10/27/2023        212.40
## 71  10/28/2023        268.21
## 72  10/29/2023        284.31
## 73  10/30/2023         43.01
## 74  10/31/2023        397.97
## 75   11/1/2023        104.40
## 76   11/2/2023         90.66
## 77   11/3/2023         41.80
## 78   11/4/2023        263.16
## 79   11/5/2023         56.06
## 80   11/6/2023         58.64
## 81   11/7/2023        216.36
## 82   11/8/2023         82.14
## 83   11/9/2023        252.10
## 84  11/10/2023        195.70
## 85  11/11/2023         99.40
## 86  11/12/2023        166.39
## 87  11/13/2023        283.13
## 88  11/14/2023        224.49
## 89  11/15/2023         72.88
## 90  11/16/2023        306.82
## 91  11/17/2023        271.08
## 92  11/18/2023        153.19
## 93  11/19/2023        160.29
## 94  11/20/2023        113.47
## 95  11/21/2023        122.36
## 96  11/22/2023        149.07
## 97  11/23/2023        205.05
## 98  11/24/2023        322.55
## 99  11/25/2023         93.20
## 100 11/26/2023        220.42

Eksplorasi Data

str(data_z)
## 'data.frame':    100 obs. of  2 variables:
##  $ date         : chr  "8/19/2023" "8/20/2023" "8/21/2023" "8/22/2023" ...
##  $ daily_revenue: num  334 141 297 158 211 ...
dim(data_z)
## [1] 100   2
# Mengubah kolom date yang bertipe character menjadi Date
data_z$date <- as.Date(data_z$date, format="%m/%d/%Y")
str(data_z)
## 'data.frame':    100 obs. of  2 variables:
##  $ date         : Date, format: "2023-08-19" "2023-08-20" ...
##  $ daily_revenue: num  334 141 297 158 211 ...
data_z
##           date daily_revenue
## 1   2023-08-19        334.32
## 2   2023-08-20        140.92
## 3   2023-08-21        296.88
## 4   2023-08-22        157.86
## 5   2023-08-23        211.18
## 6   2023-08-24         76.58
## 7   2023-08-25         44.00
## 8   2023-08-26        221.09
## 9   2023-08-27        511.40
## 10  2023-08-28        151.50
## 11  2023-08-29         94.35
## 12  2023-08-30        158.52
## 13  2023-08-31        133.35
## 14  2023-09-01        128.49
## 15  2023-09-02        353.85
## 16  2023-09-03        316.00
## 17  2023-09-04        279.78
## 18  2023-09-05        212.13
## 19  2023-09-06        358.72
## 20  2023-09-07        108.24
## 21  2023-09-08         23.52
## 22  2023-09-09        206.89
## 23  2023-09-10        129.54
## 24  2023-09-11         35.04
## 25  2023-09-12        247.18
## 26  2023-09-13        215.94
## 27  2023-09-14        305.42
## 28  2023-09-15        104.24
## 29  2023-09-16        210.77
## 30  2023-09-17        284.90
## 31  2023-09-18         77.37
## 32  2023-09-19        170.29
## 33  2023-09-20        112.83
## 34  2023-09-21        157.17
## 35  2023-09-22         33.60
## 36  2023-09-23        212.88
## 37  2023-09-24        113.67
## 38  2023-09-25        400.44
## 39  2023-09-26        119.70
## 40  2023-09-27         99.44
## 41  2023-09-28        113.24
## 42  2023-09-29        130.26
## 43  2023-09-30        100.20
## 44  2023-10-01         81.84
## 45  2023-10-02        347.27
## 46  2023-10-03        137.07
## 47  2023-10-04        195.06
## 48  2023-10-05         59.92
## 49  2023-10-06        205.47
## 50  2023-10-07        217.49
## 51  2023-10-08         86.79
## 52  2023-10-09         53.70
## 53  2023-10-10        144.08
## 54  2023-10-11         31.86
## 55  2023-10-12        169.04
## 56  2023-10-13        283.87
## 57  2023-10-14        317.28
## 58  2023-10-15        153.93
## 59  2023-10-16        228.03
## 60  2023-10-17        319.72
## 61  2023-10-18        101.04
## 62  2023-10-19        150.03
## 63  2023-10-20         99.54
## 64  2023-10-21        261.53
## 65  2023-10-22        121.35
## 66  2023-10-23        184.60
## 67  2023-10-24         44.00
## 68  2023-10-25        106.00
## 69  2023-10-26        111.50
## 70  2023-10-27        212.40
## 71  2023-10-28        268.21
## 72  2023-10-29        284.31
## 73  2023-10-30         43.01
## 74  2023-10-31        397.97
## 75  2023-11-01        104.40
## 76  2023-11-02         90.66
## 77  2023-11-03         41.80
## 78  2023-11-04        263.16
## 79  2023-11-05         56.06
## 80  2023-11-06         58.64
## 81  2023-11-07        216.36
## 82  2023-11-08         82.14
## 83  2023-11-09        252.10
## 84  2023-11-10        195.70
## 85  2023-11-11         99.40
## 86  2023-11-12        166.39
## 87  2023-11-13        283.13
## 88  2023-11-14        224.49
## 89  2023-11-15         72.88
## 90  2023-11-16        306.82
## 91  2023-11-17        271.08
## 92  2023-11-18        153.19
## 93  2023-11-19        160.29
## 94  2023-11-20        113.47
## 95  2023-11-21        122.36
## 96  2023-11-22        149.07
## 97  2023-11-23        205.05
## 98  2023-11-24        322.55
## 99  2023-11-25         93.20
## 100 2023-11-26        220.42
data_z.ts <- ts(data_z$daily_revenue)
summary(data_z.ts)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   23.52  100.83  155.55  176.36  232.82  511.40
ts.plot(data_z.ts, xlab="date ", ylab="Revenue", 
        main = "Time Series Plot")
points(data_z.ts)

### Pembagian Data

#membagi training dan testing
training<-data_z[1:80,]
testing<-data_z[81:100,]
train.ts <- ts(training$daily_revenue)
test.ts <- ts(testing$daily_revenue)

Eksplorasi Data

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

#eksplorasi data
plot(data_z.ts, col="black",main="Plot semua data")
points(data_z.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 dengan GGPLOT
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
ggplot() + 
  geom_line(data = training, aes(x = date, y = daily_revenue, col = "Data Latih")) +
  geom_line(data = testing, aes(x = date, y = daily_revenue, col = "Data Uji")) +
  labs(x = "Date", y = "Revenue", 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 & Double Moving Average Dalam eksplorasi plot time series sebelumnya terlihat bahwa pola data dapat diasumsikan memiliki pola yang konstan sehingga pertama akan dilakukan pemulusan dengan metode single moving average. ## SMA

data.sma<-SMA(train.ts, n=3)
data.sma
## Time Series:
## Start = 1 
## End = 80 
## Frequency = 1 
##  [1]        NA        NA 257.37333 198.55333 221.97333 148.54000 110.58667
##  [8] 113.89000 258.83000 294.66333 252.41667 134.79000 128.74000 140.12000
## [15] 205.23000 266.11333 316.54333 269.30333 283.54333 226.36333 163.49333
## [22] 112.88333 119.98333 123.82333 137.25333 166.05333 256.18000 208.53333
## [29] 206.81000 199.97000 191.01333 177.52000 120.16333 146.76333 101.20000
## [36] 134.55000 120.05000 242.33000 211.27000 206.52667 110.79333 114.31333
## [43] 114.56667 104.10000 176.43667 188.72667 226.46667 130.68333 153.48333
## [50] 160.96000 169.91667 119.32667  94.85667  76.54667 114.99333 161.59000
## [57] 256.73000 251.69333 233.08000 233.89333 216.26333 190.26333 116.87000
## [64] 170.36667 160.80667 189.16000 116.65000 111.53333  87.16667 143.30000
## [71] 197.37000 254.97333 198.51000 241.76333 181.79333 197.67667  78.95333
## [78] 131.87333 120.34000 125.95333
data.ramal<-c(NA,data.sma)
data.ramal #forecast 1 periode ke depan
##  [1]        NA        NA        NA 257.37333 198.55333 221.97333 148.54000
##  [8] 110.58667 113.89000 258.83000 294.66333 252.41667 134.79000 128.74000
## [15] 140.12000 205.23000 266.11333 316.54333 269.30333 283.54333 226.36333
## [22] 163.49333 112.88333 119.98333 123.82333 137.25333 166.05333 256.18000
## [29] 208.53333 206.81000 199.97000 191.01333 177.52000 120.16333 146.76333
## [36] 101.20000 134.55000 120.05000 242.33000 211.27000 206.52667 110.79333
## [43] 114.31333 114.56667 104.10000 176.43667 188.72667 226.46667 130.68333
## [50] 153.48333 160.96000 169.91667 119.32667  94.85667  76.54667 114.99333
## [57] 161.59000 256.73000 251.69333 233.08000 233.89333 216.26333 190.26333
## [64] 116.87000 170.36667 160.80667 189.16000 116.65000 111.53333  87.16667
## [71] 143.30000 197.37000 254.97333 198.51000 241.76333 181.79333 197.67667
## [78]  78.95333 131.87333 120.34000 125.95333
data.gab<-cbind(aktual=c(train.ts,rep(NA,24)),pemulusan=c(data.sma,rep(NA,24)),ramalan=c(data.ramal,rep(data.ramal[length(data.ramal)],23)))
data.gab #forecast 24 periode ke depan
##        aktual pemulusan   ramalan
##   [1,] 334.32        NA        NA
##   [2,] 140.92        NA        NA
##   [3,] 296.88 257.37333        NA
##   [4,] 157.86 198.55333 257.37333
##   [5,] 211.18 221.97333 198.55333
##   [6,]  76.58 148.54000 221.97333
##   [7,]  44.00 110.58667 148.54000
##   [8,] 221.09 113.89000 110.58667
##   [9,] 511.40 258.83000 113.89000
##  [10,] 151.50 294.66333 258.83000
##  [11,]  94.35 252.41667 294.66333
##  [12,] 158.52 134.79000 252.41667
##  [13,] 133.35 128.74000 134.79000
##  [14,] 128.49 140.12000 128.74000
##  [15,] 353.85 205.23000 140.12000
##  [16,] 316.00 266.11333 205.23000
##  [17,] 279.78 316.54333 266.11333
##  [18,] 212.13 269.30333 316.54333
##  [19,] 358.72 283.54333 269.30333
##  [20,] 108.24 226.36333 283.54333
##  [21,]  23.52 163.49333 226.36333
##  [22,] 206.89 112.88333 163.49333
##  [23,] 129.54 119.98333 112.88333
##  [24,]  35.04 123.82333 119.98333
##  [25,] 247.18 137.25333 123.82333
##  [26,] 215.94 166.05333 137.25333
##  [27,] 305.42 256.18000 166.05333
##  [28,] 104.24 208.53333 256.18000
##  [29,] 210.77 206.81000 208.53333
##  [30,] 284.90 199.97000 206.81000
##  [31,]  77.37 191.01333 199.97000
##  [32,] 170.29 177.52000 191.01333
##  [33,] 112.83 120.16333 177.52000
##  [34,] 157.17 146.76333 120.16333
##  [35,]  33.60 101.20000 146.76333
##  [36,] 212.88 134.55000 101.20000
##  [37,] 113.67 120.05000 134.55000
##  [38,] 400.44 242.33000 120.05000
##  [39,] 119.70 211.27000 242.33000
##  [40,]  99.44 206.52667 211.27000
##  [41,] 113.24 110.79333 206.52667
##  [42,] 130.26 114.31333 110.79333
##  [43,] 100.20 114.56667 114.31333
##  [44,]  81.84 104.10000 114.56667
##  [45,] 347.27 176.43667 104.10000
##  [46,] 137.07 188.72667 176.43667
##  [47,] 195.06 226.46667 188.72667
##  [48,]  59.92 130.68333 226.46667
##  [49,] 205.47 153.48333 130.68333
##  [50,] 217.49 160.96000 153.48333
##  [51,]  86.79 169.91667 160.96000
##  [52,]  53.70 119.32667 169.91667
##  [53,] 144.08  94.85667 119.32667
##  [54,]  31.86  76.54667  94.85667
##  [55,] 169.04 114.99333  76.54667
##  [56,] 283.87 161.59000 114.99333
##  [57,] 317.28 256.73000 161.59000
##  [58,] 153.93 251.69333 256.73000
##  [59,] 228.03 233.08000 251.69333
##  [60,] 319.72 233.89333 233.08000
##  [61,] 101.04 216.26333 233.89333
##  [62,] 150.03 190.26333 216.26333
##  [63,]  99.54 116.87000 190.26333
##  [64,] 261.53 170.36667 116.87000
##  [65,] 121.35 160.80667 170.36667
##  [66,] 184.60 189.16000 160.80667
##  [67,]  44.00 116.65000 189.16000
##  [68,] 106.00 111.53333 116.65000
##  [69,] 111.50  87.16667 111.53333
##  [70,] 212.40 143.30000  87.16667
##  [71,] 268.21 197.37000 143.30000
##  [72,] 284.31 254.97333 197.37000
##  [73,]  43.01 198.51000 254.97333
##  [74,] 397.97 241.76333 198.51000
##  [75,] 104.40 181.79333 241.76333
##  [76,]  90.66 197.67667 181.79333
##  [77,]  41.80  78.95333 197.67667
##  [78,] 263.16 131.87333  78.95333
##  [79,]  56.06 120.34000 131.87333
##  [80,]  58.64 125.95333 120.34000
##  [81,]     NA        NA 125.95333
##  [82,]     NA        NA 125.95333
##  [83,]     NA        NA 125.95333
##  [84,]     NA        NA 125.95333
##  [85,]     NA        NA 125.95333
##  [86,]     NA        NA 125.95333
##  [87,]     NA        NA 125.95333
##  [88,]     NA        NA 125.95333
##  [89,]     NA        NA 125.95333
##  [90,]     NA        NA 125.95333
##  [91,]     NA        NA 125.95333
##  [92,]     NA        NA 125.95333
##  [93,]     NA        NA 125.95333
##  [94,]     NA        NA 125.95333
##  [95,]     NA        NA 125.95333
##  [96,]     NA        NA 125.95333
##  [97,]     NA        NA 125.95333
##  [98,]     NA        NA 125.95333
##  [99,]     NA        NA 125.95333
## [100,]     NA        NA 125.95333
## [101,]     NA        NA 125.95333
## [102,]     NA        NA 125.95333
## [103,]     NA        NA 125.95333
## [104,]     NA        NA 125.95333
ts.plot(data_z.ts, xlab="date ", ylab="revenue", main= "SMA N=3 Data revenue")
points(data_z.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)

#Menghitung nilai keakuratan data latih
error_train.sma = train.ts-data.ramal[1:length(train.ts)]
SSE_train.sma = sum(error_train.sma[4:length(train.ts)]^2)
MSE_train.sma = mean(error_train.sma[4:length(train.ts)]^2)
MAPE_train.sma = mean(abs((error_train.sma[4:length(train.ts)]/train.ts[4:length(train.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 = 3")
akurasi_train.sma
##      Akurasi m = 3
## SSE   1.159919e+06
## MSE   1.506389e+04
## MAPE  9.590383e+01

Dalam hal ini nilai MAPE data latih pada metode pemulusan SMAn didapatkan sebesar 96%, nilai ini dapat dikategorikan sebagai nilai akurasi yang kurang baik karena sudah jauh di atas 10%. Selanjutnya dilakukan perhitungan nilai MAPE data uji pada metde pemulusan SMA.

#Menghitung nilai keakuratan data uji
error_test.sma = test.ts-data.gab[81:100,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.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 = 3")
akurasi_test.sma
##      Akurasi m = 3
## SSE   181743.24712
## MSE     9087.16236
## MAPE      38.13535

Perhitungan akurasi menggunakan data latih juga menghasilkan nilai MAPE yang jauh di atas 10% sehingga nilai akurasi ini dapat dikategorikan kurang baik.

Selnjutnya dilakukan metode - metode pemulusan lain untuk memeriksa apakah ada yang memeberikan akurasi yang baik ## DMA

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

t = 1:24
f = c()

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

data.gab2 <- cbind(aktual = c(train.ts,rep(NA,24)), pemulusan1 = c(data.sma,rep(NA,24)),pemulusan2 = c(data.dma, rep(NA,24)),At = c(At, rep(NA,24)), Bt = c(Bt,rep(NA,24)),ramalan = c(data.ramal2, f[-1]))
data.gab2
##        aktual pemulusan1 pemulusan2         At          Bt    ramalan
##   [1,] 334.32         NA         NA         NA          NA         NA
##   [2,] 140.92         NA         NA         NA          NA         NA
##   [3,] 296.88  257.37333         NA         NA          NA         NA
##   [4,] 157.86  198.55333         NA         NA          NA         NA
##   [5,] 211.18  221.97333 213.986667 217.980000  -3.9933333         NA
##   [6,]  76.58  148.54000  66.242222 107.391111 -41.1488889 213.986667
##   [7,]  44.00  110.58667  11.026667  60.806667 -49.7800000  66.242222
##   [8,] 221.09  113.89000  92.992222 103.441111 -10.4488889  11.026667
##   [9,] 511.40  258.83000 454.285556 356.557778  97.7277778  92.992222
##  [10,] 151.50  294.66333 439.067778 366.865556  72.2022222 454.285556
##  [11,]  94.35  252.41667 219.976667 236.196667 -16.2200000 439.067778
##  [12,] 158.52  134.79000 -50.210000  42.290000 -92.5000000 219.976667
##  [13,] 133.35  128.74000  42.255556  85.497778 -43.2422222 -50.210000
##  [14,] 128.49  140.12000 151.260000 145.690000   5.5700000  42.255556
##  [15,] 353.85  205.23000 299.630000 252.430000  47.2000000 151.260000
##  [16,] 316.00  266.11333 390.697778 328.405556  62.2922222 299.630000
##  [17,] 279.78  316.54333 424.372222 370.457778  53.9144444 390.697778
##  [18,] 212.13  269.30333 239.936667 254.620000 -14.6833333 424.372222
##  [19,] 358.72  283.54333 271.036667 277.290000  -6.2533333 239.936667
##  [20,] 108.24  226.36333 159.616667 192.990000 -33.3733333 271.036667
##  [21,]  23.52  163.49333  41.546667 102.520000 -60.9733333 159.616667
##  [22,] 206.89  112.88333   3.490000  58.186667 -54.6966667  41.546667
##  [23,] 129.54  119.98333  95.710000 107.846667 -12.1366667   3.490000
##  [24,]  35.04  123.82333 133.676667 128.750000   4.9266667  95.710000
##  [25,] 247.18  137.25333 157.720000 147.486667  10.2333333 133.676667
##  [26,] 215.94  166.05333 213.406667 189.730000  23.6766667 157.720000
##  [27,] 305.42  256.18000 395.548889 325.864444  69.6844444 213.406667
##  [28,] 104.24  208.53333 205.088889 206.811111  -1.7222222 395.548889
##  [29,] 210.77  206.81000 172.747778 189.778889 -17.0311111 205.088889
##  [30,] 284.90  199.97000 189.701111 194.835556  -5.1344444 172.747778
##  [31,]  77.37  191.01333 174.511111 182.762222  -8.2511111 189.701111
##  [32,] 170.29  177.52000 153.557778 165.538889 -11.9811111 174.511111
##  [33,] 112.83  120.16333  34.692222  77.427778 -42.7355556 153.557778
##  [34,] 157.17  146.76333 143.992222 145.377778  -1.3855556  34.692222
##  [35,]  33.60  101.20000  58.182222  79.691111 -21.5088889 143.992222
##  [36,] 212.88  134.55000 148.641111 141.595556   7.0455556  58.182222
##  [37,] 113.67  120.05000 122.950000 121.500000   1.4500000 148.641111
##  [38,] 400.44  242.33000 395.703333 319.016667  76.6866667 122.950000
##  [39,] 119.70  211.27000 251.376667 231.323333  20.0533333 395.703333
##  [40,]  99.44  206.52667 179.495556 193.011111 -13.5155556 251.376667
##  [41,] 113.24  110.79333 -20.013333  45.390000 -65.4033333 179.495556
##  [42,] 130.26  114.31333  55.184444  84.748889 -29.5644444 -20.013333
##  [43,] 100.20  114.56667 117.251111 115.908889   1.3422222  55.184444
##  [44,]  81.84  104.10000  90.313333  97.206667  -6.8933333 117.251111
##  [45,] 347.27  176.43667 265.907778 221.172222  44.7355556  90.313333
##  [46,] 137.07  188.72667 253.337778 221.032222  32.3055556 265.907778
##  [47,] 195.06  226.46667 284.980000 255.723333  29.2566667 253.337778
##  [48,]  59.92  130.68333  28.132222  79.407778 -51.2755556 284.980000
##  [49,] 205.47  153.48333 120.027778 136.755556 -16.7277778  28.132222
##  [50,] 217.49  160.96000 186.128889 173.544444  12.5844444 120.027778
##  [51,]  86.79  169.91667 186.843333 178.380000   8.4633333 186.128889
##  [52,]  53.70  119.32667  57.844444  88.585556 -30.7411111 186.843333
##  [53,] 144.08   94.85667  28.503333  61.680000 -33.1766667  57.844444
##  [54,]  31.86   76.54667  35.820000  56.183333 -20.3633333  28.503333
##  [55,] 169.04  114.99333 154.048889 134.521111  19.5277778  35.820000
##  [56,] 283.87  161.59000 249.350000 205.470000  43.8800000 154.048889
##  [57,] 317.28  256.73000 414.647778 335.688889  78.9588889 249.350000
##  [58,] 153.93  251.69333 308.404444 280.048889  28.3555556 414.647778
##  [59,] 228.03  233.08000 204.904444 218.992222 -14.0877778 308.404444
##  [60,] 319.72  233.89333 222.568889 228.231111  -5.6622222 204.904444
##  [61,] 101.04  216.26333 193.298889 204.781111 -11.4822222 222.568889
##  [62,] 150.03  190.26333 143.843333 167.053333 -23.2100000 193.298889
##  [63,]  99.54  116.87000   1.678889  59.274444 -57.5955556 143.843333
##  [64,] 261.53  170.36667 192.766667 181.566667  11.2000000   1.678889
##  [65,] 121.35  160.80667 183.724444 172.265556  11.4588889 192.766667
##  [66,] 184.60  189.16000 220.591111 204.875556  15.7155556 183.724444
##  [67,]  44.00  116.65000  38.872222  77.761111 -38.8888889 220.591111
##  [68,] 106.00  111.53333  56.371111  83.952222 -27.5811111  38.872222
##  [69,] 111.50   87.16667  51.266667  69.216667 -17.9500000  56.371111
##  [70,] 212.40  143.30000 201.900000 172.600000  29.3000000  51.266667
##  [71,] 268.21  197.37000 306.885556 252.127778  54.7577778 201.900000
##  [72,] 284.31  254.97333 367.824444 311.398889  56.4255556 306.885556
##  [73,]  43.01  198.51000 161.627778 180.068889 -18.4411111 367.824444
##  [74,] 397.97  241.76333 261.792222 251.777778  10.0144444 161.627778
##  [75,] 104.40  181.79333 130.668889 156.231111 -25.5622222 261.792222
##  [76,]  90.66  197.67667 178.874444 188.275556  -9.4011111 130.668889
##  [77,]  41.80   78.95333 -68.755556   5.098889 -73.8544444 178.874444
##  [78,] 263.16  131.87333 123.284444 127.578889  -4.2944444 -68.755556
##  [79,]  56.06  120.34000 140.242222 130.291111   9.9511111 123.284444
##  [80,]  58.64  125.95333 125.748889 125.851111  -0.1022222 140.242222
##  [81,]     NA         NA         NA         NA          NA 125.748889
##  [82,]     NA         NA         NA         NA          NA 125.646667
##  [83,]     NA         NA         NA         NA          NA 125.544444
##  [84,]     NA         NA         NA         NA          NA 125.442222
##  [85,]     NA         NA         NA         NA          NA 125.340000
##  [86,]     NA         NA         NA         NA          NA 125.237778
##  [87,]     NA         NA         NA         NA          NA 125.135556
##  [88,]     NA         NA         NA         NA          NA 125.033333
##  [89,]     NA         NA         NA         NA          NA 124.931111
##  [90,]     NA         NA         NA         NA          NA 124.828889
##  [91,]     NA         NA         NA         NA          NA 124.726667
##  [92,]     NA         NA         NA         NA          NA 124.624444
##  [93,]     NA         NA         NA         NA          NA 124.522222
##  [94,]     NA         NA         NA         NA          NA 124.420000
##  [95,]     NA         NA         NA         NA          NA 124.317778
##  [96,]     NA         NA         NA         NA          NA 124.215556
##  [97,]     NA         NA         NA         NA          NA 124.113333
##  [98,]     NA         NA         NA         NA          NA 124.011111
##  [99,]     NA         NA         NA         NA          NA 123.908889
## [100,]     NA         NA         NA         NA          NA 123.806667
## [101,]     NA         NA         NA         NA          NA 123.704444
## [102,]     NA         NA         NA         NA          NA 123.602222
## [103,]     NA         NA         NA         NA          NA 123.500000
## [104,]     NA         NA         NA         NA          NA 123.397778
ts.plot(data_z.ts, xlab="Date ", ylab="Revenue", main= "DMA N=3 Data Revenue")
points(data_z.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)

#Menghitung nilai keakuratan data latih
error_train.dma = train.ts-data.ramal2[1:length(train.ts)]
SSE_train.dma = sum(error_train.dma[6:length(train.ts)]^2)
MSE_train.dma = mean(error_train.dma[6:length(train.ts)]^2)
MAPE_train.dma = mean(abs((error_train.dma[6:length(train.ts)]/train.ts[6:length(train.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 = 3")
akurasi_train.dma
##      Akurasi m = 3
## SSE   1922244.6738
## MSE     25629.9290
## MAPE      114.4611

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

#Menghitung nilai keakuratan data uji
error_test.dma = test.ts-data.gab2[81:100,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.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 = 3")
akurasi_test.dma
##      Akurasi m = 3
## SSE   184607.72050
## MSE     9230.38603
## MAPE      38.16487

Perhitungan akurasi menggunakan data latih menghasilkan nilai MAPE yang lebih dari 10% sehingga nilai akurasi ini dapat dikategorikan sebagai akurasi yang kurang baik dalam peramalan

Pada uji keakuratan baik pada data latih maupun pada data uji, metode SMA lebih baik dibandingkan DMA.

Single Exponential Smoothing & Double Exponential Smoothing

# data fmcg 1-100 (MASIH DATA YANG SAMA SEPERTI DI SMA DAN DMA)
library(rio)
data00 <- import("https://raw.githubusercontent.com/nyayunabila/mpdw/refs/heads/main/Pertemuan%201/data-kelompok-9-mpdw.csv")
data_zz <- data0[1:100, ]
data_zz$date <- as.Date(data_z$date, format="%m/%d/%Y")
training<-data_zz[1:80,]
testing<-data_zz[81:100,]
train_ses.ts <- ts(training$daily_revenue)
test_ses.ts <- ts(testing$daily_revenue)

SES

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

ses.1
##     Point Forecast     Lo 80    Hi 80      Lo 95    Hi 95
##  81       128.4918 -14.45316 271.4367  -90.12363 347.1071
##  82       128.4918 -17.28403 274.2675  -94.45306 351.4366
##  83       128.4918 -20.06096 277.0445  -98.70001 355.6835
##  84       128.4918 -22.78692 279.7704 -102.86902 359.8525
##  85       128.4918 -25.46463 282.4481 -106.96422 363.9477
##  86       128.4918 -28.09655 285.0801 -110.98940 367.9729
##  87       128.4918 -30.68497 287.6685 -114.94803 371.9315
##  88       128.4918 -33.23196 290.2155 -118.84331 375.8268
##  89       128.4918 -35.73945 292.7230 -122.67820 379.6617
##  90       128.4918 -38.20923 295.1927 -126.45540 383.4389
##  91       128.4918 -40.64295 297.6265 -130.17745 387.1610
##  92       128.4918 -43.04214 300.0256 -133.84670 390.8302
##  93       128.4918 -45.40824 302.3917 -137.46533 394.4488
##  94       128.4918 -47.74257 304.7261 -141.03539 398.0189
##  95       128.4918 -50.04639 307.0299 -144.55877 401.5423
##  96       128.4918 -52.32085 309.3044 -148.03726 405.0208
##  97       128.4918 -54.56706 311.5506 -151.47253 408.4560
##  98       128.4918 -56.78603 313.7695 -154.86616 411.8497
##  99       128.4918 -58.97874 315.9622 -158.21963 415.2031
## 100       128.4918 -61.14610 318.1296 -161.53432 418.5178
ses.2<- ses(train_ses.ts, h = 20, alpha = 0.7)
plot(ses.2)

ses.2
##     Point Forecast      Lo 80    Hi 80     Lo 95    Hi 95
##  81       71.10882  -96.17689 238.3945 -184.7326 326.9502
##  82       71.10882 -133.08942 275.3070 -241.1854 383.4031
##  83       71.10882 -164.28304 306.5007 -288.8920 431.1096
##  84       71.10882 -191.80131 334.0189 -330.9775 473.1952
##  85       71.10882 -216.70040 358.9180 -369.0574 511.2750
##  86       71.10882 -239.61060 381.8282 -404.0955 546.3132
##  87       71.10882 -260.94384 403.1615 -436.7219 578.9395
##  88       71.10882 -280.98687 423.2045 -467.3751 609.5927
##  89       71.10882 -299.94884 442.1665 -496.3749 638.5925
##  90       71.10882 -317.98782 460.2055 -523.9631 666.1808
##  91       71.10882 -335.22676 477.4444 -550.3278 692.5455
##  92       71.10882 -351.76352 493.9812 -575.6186 717.8362
##  93       71.10882 -367.67749 509.8951 -599.9569 742.1746
##  94       71.10882 -383.03414 525.2518 -623.4429 765.6605
##  95       71.10882 -397.88824 540.1059 -646.1603 788.3779
##  96       71.10882 -412.28610 554.5037 -668.1799 810.3975
##  97       71.10882 -426.26736 568.4850 -689.5624 831.7800
##  98       71.10882 -439.86620 582.0838 -710.3600 852.5777
##  99       71.10882 -453.11239 595.3300 -730.6183 872.8360
## 100       71.10882 -466.03203 608.2497 -750.3772 892.5948
autoplot(ses.1) +
  autolayer(fitted(ses.1), series="Fitted") +
  ylab("Membaca") + xlab("Periode")

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

#ramalan
ramalan1<- forecast(ses1, h=20)
ramalan1
##     Point Forecast     Lo 80    Hi 80      Lo 95    Hi 95
##  81       128.4918 -16.23211 273.2156  -92.84430 349.8278
##  82       128.4918 -19.09821 276.0817  -97.22762 354.2111
##  83       128.4918 -21.90970 278.8932 -101.52742 358.5109
##  84       128.4918 -24.66959 281.6531 -105.74831 362.7318
##  85       128.4918 -27.38062 284.3641 -109.89447 366.8780
##  86       128.4918 -30.04530 287.0288 -113.96975 370.9533
##  87       128.4918 -32.66592 289.6494 -117.97764 374.9612
##  88       128.4918 -35.24461 292.2281 -121.92141 378.9049
##  89       128.4918 -37.78331 294.7668 -125.80401 382.7875
##  90       128.4918 -40.28383 297.2673 -129.62822 386.6117
##  91       128.4918 -42.74783 299.7313 -133.39660 390.3801
##  92       128.4918 -45.17689 302.1604 -137.11151 394.0950
##  93       128.4918 -47.57243 304.5559 -140.77518 397.7587
##  94       128.4918 -49.93581 306.9193 -144.38966 401.3732
##  95       128.4918 -52.26830 309.2518 -147.95689 404.9404
##  96       128.4918 -54.57107 311.5546 -151.47867 408.4622
##  97       128.4918 -56.84523 313.8287 -154.95670 411.9402
##  98       128.4918 -59.09182 316.0753 -158.39256 415.3761
##  99       128.4918 -61.31182 318.2953 -161.78776 418.7713
## 100       128.4918 -63.50615 320.4897 -165.14370 422.1272
ses2<- HoltWinters(train_ses.ts, gamma = FALSE, beta = FALSE, alpha = 0.7)
plot(ses2)

#ramalan
ramalan2<- forecast(ses2, h=20)
ramalan2
##     Point Forecast      Lo 80    Hi 80     Lo 95    Hi 95
##  81       71.10882  -96.22099 238.4386 -184.8000 327.0177
##  82       71.10882 -133.14324 275.3609 -241.2677 383.4854
##  83       71.10882 -164.34509 306.5627 -288.9869 431.2045
##  84       71.10882 -191.87061 334.0882 -331.0835 473.3011
##  85       71.10882 -216.77626 358.9939 -369.1734 511.3911
##  86       71.10882 -239.69250 381.9101 -404.2208 546.4384
##  87       71.10882 -261.03136 403.2490 -436.8557 579.0734
##  88       71.10882 -281.07968 423.2973 -467.5170 609.7346
##  89       71.10882 -300.04664 442.2643 -496.5245 638.7421
##  90       71.10882 -318.09038 460.3080 -524.1200 666.3376
##  91       71.10882 -335.33386 477.5515 -550.4916 692.7093
##  92       71.10882 -351.87498 494.0926 -575.7891 718.0067
##  93       71.10882 -367.79314 510.0108 -600.1338 742.3514
##  94       71.10882 -383.15385 525.3715 -623.6260 765.8436
##  95       71.10882 -398.01186 540.2295 -646.3493 788.5670
##  96       71.10882 -412.41352 554.6311 -668.3748 810.5924
##  97       71.10882 -426.39845 568.6161 -689.7629 831.9805
##  98       71.10882 -440.00088 582.2185 -710.5660 852.7836
##  99       71.10882 -453.25057 595.4682 -730.8297 873.0473
## 100       71.10882 -466.17360 608.3912 -750.5937 892.8114
#SES
ses.opt <- ses(train_ses.ts, h = 20, alpha = NULL)
plot(ses.opt)

ses.opt
##     Point Forecast    Lo 80    Hi 80     Lo 95    Hi 95
##  81       174.0721 39.83879 308.3053 -31.22000 379.3641
##  82       174.0721 39.83879 308.3053 -31.22000 379.3641
##  83       174.0721 39.83879 308.3053 -31.22000 379.3641
##  84       174.0721 39.83879 308.3053 -31.22000 379.3641
##  85       174.0721 39.83879 308.3053 -31.22000 379.3641
##  86       174.0721 39.83879 308.3053 -31.22000 379.3641
##  87       174.0721 39.83879 308.3053 -31.22001 379.3641
##  88       174.0721 39.83879 308.3053 -31.22001 379.3641
##  89       174.0721 39.83879 308.3053 -31.22001 379.3641
##  90       174.0721 39.83879 308.3053 -31.22001 379.3641
##  91       174.0721 39.83879 308.3053 -31.22001 379.3641
##  92       174.0721 39.83879 308.3053 -31.22001 379.3641
##  93       174.0721 39.83879 308.3053 -31.22001 379.3641
##  94       174.0721 39.83879 308.3053 -31.22001 379.3641
##  95       174.0721 39.83879 308.3053 -31.22001 379.3641
##  96       174.0721 39.83878 308.3053 -31.22001 379.3641
##  97       174.0721 39.83878 308.3053 -31.22002 379.3641
##  98       174.0721 39.83878 308.3053 -31.22002 379.3641
##  99       174.0721 39.83878 308.3053 -31.22002 379.3641
## 100       174.0721 39.83878 308.3053 -31.22002 379.3641
#Lamda Optimum Holt Winter
sesopt<- HoltWinters(train_ses.ts, gamma = FALSE, beta = FALSE,alpha = NULL)
sesopt
## Holt-Winters exponential smoothing without trend and without seasonal component.
## 
## Call:
## HoltWinters(x = train_ses.ts, alpha = NULL, beta = FALSE, gamma = FALSE)
## 
## Smoothing parameters:
##  alpha: 0.1268285
##  beta : FALSE
##  gamma: FALSE
## 
## Coefficients:
##       [,1]
## a 142.7177
plot(sesopt)

#ramalan
ramalanopt<- forecast(sesopt, h=20)
ramalanopt
##     Point Forecast       Lo 80    Hi 80      Lo 95    Hi 95
##  81       142.7177   0.3819808 285.0534  -74.96600 360.4014
##  82       142.7177  -0.7582209 286.1936  -76.70979 362.1452
##  83       142.7177  -1.8894326 287.3248  -78.43982 363.8752
##  84       142.7177  -3.0118636 288.4473  -80.15643 365.5918
##  85       142.7177  -4.1257154 289.5611  -81.85992 367.2953
##  86       142.7177  -5.2311816 290.6666  -83.55059 368.9860
##  87       142.7177  -6.3284488 291.7638  -85.22871 370.6641
##  88       142.7177  -7.4176969 292.8531  -86.89457 372.3300
##  89       142.7177  -8.4990991 293.9345  -88.54844 373.9838
##  90       142.7177  -9.5728225 295.0082  -90.19056 375.6260
##  91       142.7177 -10.6390285 296.0744  -91.82118 377.2566
##  92       142.7177 -11.6978727 297.1333  -93.44054 378.8759
##  93       142.7177 -12.7495056 298.1849  -95.04887 380.4843
##  94       142.7177 -13.7940725 299.2295  -96.64640 382.0818
##  95       142.7177 -14.8317140 300.2671  -98.23334 383.6687
##  96       142.7177 -15.8625660 301.2980  -99.80989 385.2453
##  97       142.7177 -16.8867601 302.3222 -101.37626 386.8117
##  98       142.7177 -17.9044237 303.3398 -102.93264 388.3680
##  99       142.7177 -18.9156800 304.3511 -104.47922 389.9146
## 100       142.7177 -19.9206487 305.3560 -106.01619 391.4516

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

#Keakuratan Metode
#Pada data training
SSE1<-ses1$SSE
MSE1<-ses1$SSE/length(train_ses.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        1008131.069
## MSE          12601.638
## RMSE           112.257
SSE2<-ses2$SSE
MSE2<-ses2$SSE/length(train_ses.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       1331536.7568
## MSE         16644.2095
## RMSE          129.0124
#Cara Manual
fitted1<-ramalan1$fitted
sisaan1<-ramalan1$residuals
head(sisaan1)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]        NA -193.4000    1.2400 -138.0280  -57.1024 -180.2819
resid1<-training$daily_revenue-ramalan1$fitted
head(resid1)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]        NA -193.4000    1.2400 -138.0280  -57.1024 -180.2819
#Cara Manual
SSE.1=sum(sisaan1[2:length(train_ses.ts)]^2)
SSE.1
## [1] 1008131
MSE.1 = SSE.1/length(train_ses.ts)
MSE.1
## [1] 12601.64
MAPE.1 = sum(abs(sisaan1[2:length(train_ses.ts)]/train.ts[2:length(train_ses.ts)])*
               100)/length(train_ses.ts)
MAPE.1
## [1] 95.12225
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.008131e+06
## MSE       1.260164e+04
## MAPE      9.512225e+01
fitted2<-ramalan2$fitted
sisaan2<-ramalan2$residuals
head(sisaan2)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]        NA -193.4000   97.9400 -109.6380   20.4286 -128.4714
resid2<-training$daily_revenue-ramalan2$fitted
head(resid2)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]        NA -193.4000   97.9400 -109.6380   20.4286 -128.4714
SSE.2=sum(sisaan2[2:length(train_ses.ts)]^2)
SSE.2
## [1] 1331537
MSE.2 = SSE.2/length(train_ses.ts)
MSE.2
## [1] 16644.21
MAPE.2 = sum(abs(sisaan2[2:length(train_ses.ts)]/train.ts[2:length(train_ses.ts)])*
               100)/length(train_ses.ts)
MAPE.2
## [1] 94.76958
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       1.331537e+06
## MSE       1.664421e+04
## MAPE      9.476958e+01

Berdasarkan nilai SSE, MSE, RMSE, dan MAPE di antara kedua parameter, nilai parameter \(\lambda=0,2\) memang menghasilkan akurasi yang lebih baik dibanding \(\lambda=0,7\) . Hal ini dilihat dari nilai masing-masing ukuran akurasi yang lebih kecil. Namun berdasarkan nilai MAPE-nya dan nilai - nilai indikator seperti SSE , MSE dan RMSE semuanya bernilai sangat tinggi, sehingga hasil ini dapat dikategorikan sebagai peramalan yang kurang baik.

#cara lain
accuracy(ramalanopt,testing$daily_revenue)
##                     ME      RMSE      MAE        MPE     MAPE      MASE
## Training set -19.12303 112.00452 94.30302 -74.144252 98.65756 0.7982465
## Test set      42.78680  85.85762 70.07242   7.017375 37.88717 0.5931418
##                     ACF1
## Training set -0.01180667
## Test set              NA

Berdasarkan hasil pengujian kekuratan pada data latih dan data uji pada metode SES memberikan nilai MAPE yang tidak jauh berbeda dari metode SMA namun pada kedua metode ini nilai MAPE masih jauh diatas 10% yang mengindikasikan akurasi peramalan yang kurang baik. ## DES

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

#ramalan
ramalandes1<- forecast(des.1, h=20)
ramalandes1
##     Point Forecast     Lo 80    Hi 80      Lo 95     Hi 95
##  81     114.317192 -146.7717 375.4061  -284.9838  513.6182
##  82     105.803383 -162.6996 374.3064  -304.8365  516.4433
##  83      97.289574 -180.9876 375.5667  -328.2986  522.8778
##  84      88.775765 -201.7729 379.3244  -355.5801  533.1316
##  85      80.261956 -225.1116 385.6355  -386.7666  547.2905
##  86      71.748147 -250.9898 394.4861  -421.8370  565.3333
##  87      63.234338 -279.3398 405.8084  -460.6875  587.1562
##  88      54.720529 -310.0572 419.4983  -503.1589  612.5999
##  89      46.206720 -343.0172 435.4306  -549.0599  641.4733
##  90      37.692911 -378.0865 453.4724  -598.1869  673.5727
##  91      29.179101 -415.1325 473.4907  -650.3369  708.6951
##  92      20.665292 -454.0285 495.3591  -705.3162  746.6468
##  93      12.151483 -494.6570 518.9599  -762.9452  787.2481
##  94       3.637674 -536.9109 544.1863  -823.0601  830.3354
##  95      -4.876135 -580.6941 570.9418  -885.5137  875.7614
##  96     -13.389944 -625.9203 599.1404  -950.1743  923.3944
##  97     -21.903753 -672.5130 628.7055 -1016.9247  973.1172
##  98     -30.417562 -720.4039 659.5688 -1085.6607 1024.8256
##  99     -38.931371 -769.5326 691.6698 -1156.2895 1078.4267
## 100     -47.445180 -819.8448 724.9545 -1228.7285 1133.8381
#Lamda=0.6 dan gamma=0.3
des.2<- HoltWinters(train_ses.ts, gamma = FALSE, beta = 0.3, alpha = 0.6)
plot(des.2)

#ramalan
ramalandes2<- forecast(des.2, h=20)
ramalandes2
##     Point Forecast      Lo 80     Hi 80      Lo 95     Hi 95
##  81      49.923464  -138.4427  238.2897  -238.1578  338.0047
##  82      29.049889  -209.8412  267.9410  -336.3025  394.4023
##  83       8.176315  -291.4385  307.7911  -450.0449  466.3976
##  84     -12.697259  -381.3179  355.9234  -576.4539  551.0594
##  85     -33.570833  -478.2108  411.0692  -713.5890  646.4474
##  86     -54.444407  -581.2639  472.3751  -860.1454  751.2566
##  87     -75.317982  -689.8770  539.2410 -1015.2048  864.5689
##  88     -96.191556  -803.6063  611.2232 -1178.0891  985.7060
##  89    -117.065130  -922.1097  687.9795 -1348.2746 1114.1443
##  90    -137.938704 -1045.1131  769.2357 -1525.3423 1249.4648
##  91    -158.812278 -1172.3905  854.7659 -1708.9463 1391.3218
##  92    -179.685853 -1303.7508  944.3791 -1898.7948 1539.4231
##  93    -200.559427 -1439.0296 1037.9107 -2094.6361 1693.5172
##  94    -221.433001 -1578.0829 1135.2169 -2296.2500 1853.3840
##  95    -242.306575 -1720.7832 1236.1701 -2503.4415 2018.8284
##  96    -263.180150 -1867.0163 1340.6560 -2716.0358 2189.6755
##  97    -284.053724 -2016.6787 1448.5713 -2933.8750 2365.7676
##  98    -304.927298 -2169.6765 1559.8219 -3156.8152 2546.9606
##  99    -325.800872 -2325.9235 1674.3218 -3384.7245 2733.1227
## 100    -346.674446 -2485.3402 1791.9913 -3617.4814 2924.1325
#Visually evaluate the prediction
plot(data_z.ts)
lines(des.1$fitted[,1], lty=2, col="blue")
lines(ramalandes1$mean, col="red")

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

#ramalan
ramalandesopt<- forecast(des.opt, h=20)
ramalandesopt
##     Point Forecast      Lo 80     Hi 80      Lo 95     Hi 95
##  81      54.685491  -131.3221  240.6930  -229.7885  339.1595
##  82      34.061934  -187.3681  255.4919  -304.5860  372.7099
##  83      13.438376  -252.8758  279.7525  -393.8540  420.7307
##  84      -7.185181  -326.2825  311.9122  -495.2024  480.8321
##  85     -27.808738  -406.3312  350.7138  -606.7090  551.0915
##  86     -48.432295  -492.0990  395.2344  -726.9620  630.0974
##  87     -69.055853  -582.9177  444.8060  -854.9398  716.8281
##  88     -89.679410  -678.2959  498.9371  -989.8906  810.5318
##  89    -110.302967  -777.8616  557.2557 -1131.2458  910.6398
##  90    -130.926524  -881.3250  619.4719 -1278.5619 1016.7089
##  91    -151.550082  -988.4537  685.3536 -1431.4838 1128.3836
##  92    -172.173639 -1099.0569  754.7096 -1589.7193 1245.3720
##  93    -192.797196 -1212.9740  827.3796 -1753.0230 1367.4286
##  94    -213.420753 -1330.0678  903.2263 -1921.1851 1494.3436
##  95    -234.044311 -1450.2189  982.1303 -2094.0228 1625.9342
##  96    -254.667868 -1573.3221 1063.9864 -2271.3755 1762.0398
##  97    -275.291425 -1699.2838 1148.7010 -2453.0999 1902.5170
##  98    -295.914983 -1828.0197 1236.1897 -2639.0670 2047.2370
##  99    -316.538540 -1959.4533 1326.3762 -2829.1599 2196.0828
## 100    -337.162097 -2093.5149 1419.1907 -3023.2719 2348.9477
#Akurasi Data Training
ssedes.train1<-des.1$SSE
msedes.train1<-ssedes.train1/length(train_ses.ts)
sisaandes1<-ramalandes1$residuals
head(sisaandes1)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]       NA       NA 349.3600 319.8936 475.8647 393.6871
mapedes.train1 <- sum(abs(sisaandes1[3:length(train_ses.ts)]/train_ses.ts[3:length(train_ses.ts)])
                      *100)/length(train_ses.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                     3469817.5396
## MSE                       43372.7192
## MAPE                        133.3512
ssedes.train2<-des.2$SSE
msedes.train2<-ssedes.train2/length(train_ses.ts)
sisaandes2<-ramalandes2$residuals
head(sisaandes2)
## Time Series:
## Start = 1 
## End = 6 
## Frequency = 1 
## [1]        NA        NA 349.36000 131.23920 212.70782  19.08787
mapedes.train2 <- sum(abs(sisaandes2[3:length(train_ses.ts)]/train_ses.ts[3:length(train_ses.ts)])
                      *100)/length(train_ses.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                     1.675284e+06
## MSE                     2.094106e+04
## MAPE                    9.486572e+01

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

#Akurasi Data Testing
selisihdes1<-ramalandes1$mean-testing$daily_revenue
selisihdes1
## Time Series:
## Start = 81 
## End = 100 
## Frequency = 1 
##  [1] -102.04281   23.66338 -154.81043 -106.92423  -19.13804  -94.64185
##  [7] -219.89566 -169.76947  -26.67328 -269.12709 -241.90090 -132.52471
## [13] -148.13852 -109.83233 -127.23613 -162.45994 -226.95375 -352.96756
## [19] -132.13137 -267.86518
SSEtestingdes1<-sum(selisihdes1^2)
MSEtestingdes1<-SSEtestingdes1/length(testing$daily_revenue)
MAPEtestingdes1<-sum(abs(selisihdes1/testing$daily_revenue)*100)/length(testing$daily_revenue)

selisihdes2<-ramalandes2$mean-testing$daily_revenue
selisihdes2
## Time Series:
## Start = 81 
## End = 100 
## Frequency = 1 
##  [1] -166.43654  -53.09011 -243.92368 -208.39726 -132.97083 -220.83441
##  [7] -358.44798 -320.68156 -189.94513 -444.75870 -429.89228 -332.87585
## [13] -360.84943 -334.90300 -364.66658 -412.25015 -489.10372 -627.47730
## [19] -419.00087 -567.09445
SSEtestingdes2<-sum(selisihdes2^2)
MSEtestingdes2<-SSEtestingdes2/length(testing$daily_revenue)
MAPEtestingdes2<-sum(abs(selisihdes2/testing$daily_revenue)*100)/length(testing$daily_revenue)

selisihdesopt<-ramalandesopt$mean-testing$daily_revenue
selisihdesopt
## Time Series:
## Start = 81 
## End = 100 
## Frequency = 1 
##  [1] -161.67451  -48.07807 -238.66162 -202.88518 -127.20874 -214.82230
##  [7] -352.18585 -314.16941 -183.18297 -437.74652 -422.63008 -325.36364
## [13] -353.08720 -326.89075 -356.40431 -403.73787 -480.34143 -618.46498
## [19] -409.73854 -557.58210
SSEtestingdesopt<-sum(selisihdesopt^2)
MSEtestingdesopt<-SSEtestingdesopt/length(testing$daily_revenue)
MAPEtestingdesopt<-sum(abs(selisihdesopt/testing$daily_revenue)*100)/length(testing$daily_revenue)

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  623985.55564 2636133.9976 2534862.3088
## MSE   31199.27778  131806.6999  126743.1154
## MAPE     80.35453     194.8488     190.2207

Sama seperti nilai pada akurasi data latih , pada data uji nilai MAPE yang didapat juga masih diatas 10%.

Kedua metode dapat dibandingkan dengan menggunakan ukuran akurasi yang sama. Hasil di atas adalah perbandingan kedua metode dengan ukuran akurasi MSE. Hasilnya didapatkan walaupun kedua metode memiliki nilai MSE yang tinggi yang mengindikasikan rendahnya keakuratan peramalan namun metode SES menghasilkan akurasi lebih baik dibandingkan metode DES dilihat dari MSE yang lebih kecil nilainya.

Hasil ini juga sebenarnya sesuai dugaan yaitu metode SES akan memberikan akurasi yang lebih baik dikarenakan pola data yang terlihat konstan.

Dari 4 metode sebelumnya belum memberikan peramalan dengan akurasi yang baik, selanjutnya akan dilakukan pemulusan untuk data musiman (dilakukan metode ini karena mungkin saja data keuntungan harian ini sebenarnya memiliki pola musiman yang tidak tertangkap oleh mata). # Winter Aditif & Winter Multiaplikatif

#membagi data menjadi training dan testing
training<-data_z[1:80,2]
testing<-data_z[81:100,2]
training.ts<-ts(training, frequency = 14)
testing.ts<-ts(testing, frequency = 14)
#Membuat plot time series
plot(data_z.ts, col="red",main="Plot semua data")
points(data_z.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)

# winter aditif

#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, 10) 
## Frequency = 14 
##                 xhat     level       trend      season
## 2.000000 326.1721071 204.86292 -0.24262402  121.551811
## 2.071429 308.3136196 210.15587  0.31093384   97.846811
## 2.142857 291.8926999 212.00408  0.46466145   79.423954
## 2.214286 220.7436388 210.04621  0.22240745   10.475026
## 2.285714 358.1521172 208.54589  0.05013467  149.556097
## 2.357143  99.6511146 208.70960  0.06149233 -109.119974
## 2.428571  11.6028760 210.48887  0.23327004 -199.119260
## 2.500000 229.0571991 213.10556  0.47161252   15.480026
## 2.571429 508.0116706 209.14373  0.02826853  298.839668
## 2.642857  59.2340288 133.47767 -7.54116488  -66.702474
## 2.714286 -12.1073224 121.09770 -8.02504545 -125.179974
## 2.785714  93.8733430 164.93012 -2.83929901  -68.217474
## 2.857143  86.3187086 186.50415 -0.39796587  -99.787474
## 2.928571 128.8637411 229.92644  3.98405996 -105.046760
## 3.000000 356.2433809 228.98575  3.49158514  123.766043
## 3.071429 302.4265012 203.38266  0.58211752   98.461722
## 3.142857 279.1460049 200.45948  0.23158750   78.454938
## 3.214286 166.3178676 160.33587 -3.80393260    9.785934
## 3.285714 303.2033973 157.32636 -3.72448995  149.601528
## 3.357143  -0.4376313 115.52719 -7.53195790 -108.432864
## 3.428571 -63.0289369 139.51676 -4.37980527 -198.165890
## 3.500000 165.7221638 154.46274 -2.44722654   13.706650
## 3.571429 428.5049464 161.44708 -1.50406981  268.561935
## 3.642857  20.5372568  96.97602 -7.80076874  -68.637997
## 3.714286  60.5160997 165.15580 -0.20271388 -104.436989
## 3.785714 119.3186906 176.78987  0.98096413  -58.452142
## 3.857143  92.1191136 173.79509  0.58339032  -82.259371
## 3.928571  72.5918106 178.60266  1.00580804 -107.016659
## 4.000000 305.4294520 191.14211  2.15917183  112.128172
## 4.071429 247.3695738 152.25539 -1.94541721   97.059602
## 4.142857 174.2609065 117.20406 -5.25600868   62.312858
## 4.214286 154.8577457 146.54987 -1.79582681   10.103705
## 4.285714 273.4165656 141.19649 -2.15158172  134.371656
## 4.357143  23.8306305 123.37360 -3.71871304  -95.824253
## 4.428571 -66.5597434 126.87276 -2.99692565 -190.435575
## 4.500000 198.2047263 178.28178  2.44366922   17.479276
## 4.571429 430.7870183 184.58250  2.82937470  243.375139
## 4.642857  76.3161326 118.61248 -4.05056567  -38.245777
## 4.714286   5.8335184 110.03868 -4.50288832  -99.702277
## 4.785714  71.4046955 133.18509 -1.73795869  -60.042437
## 4.857143  40.4396407 123.53819 -2.52885260  -80.569700
## 4.928571  44.3693631 146.72941  0.04315459 -102.403204
## 5.000000 295.2156782 194.67269  4.83316732   95.709816
## 5.071429 293.0104159 203.91873  5.27445376   83.817236
## 5.142857 260.0235277 181.37710  2.49284544   76.153585
## 5.214286 188.0048972 177.47124  1.85297489    8.680685
## 5.285714 338.2576399 205.66723  4.48727694  128.103131
## 5.357143  69.5168019 162.71098 -0.25707586  -92.937104
## 5.428571  11.2365374 178.55655  1.35318811 -168.673196
## 5.500000 219.7117815 197.57043  3.11925736   19.022098
## 5.571429 428.8643261 209.05333  3.95562173  215.855378
## 5.642857 109.2563506 151.50608 -2.19466479  -40.055068
## 5.714286  75.0497985 164.38015 -0.68779181  -88.642558
## 5.785714  92.9675963 157.48240 -1.30878778  -63.206013
## 5.857143  87.4502787 158.78009 -1.04813970  -70.281672
## 5.928571  78.7315958 162.54189 -0.56714528  -83.243153
## 6.000000 288.2896146 188.70843  2.10622281   97.474962
## 6.071429 261.1941628 186.79873  1.70463052   72.690802
## 6.142857 268.8875781 193.12653  2.16694726   73.594103
## 6.214286 166.9852488 150.11796 -2.35060430   19.217894
## 6.285714 305.3591155 193.96431  2.26909072  109.125719
## 6.357143  67.7954337 156.04157 -1.75009159  -86.496048
## 6.428571  -4.0373244 158.86439 -1.29280026 -161.608919
## 6.500000 188.7305614 166.73906 -0.37605377   22.367556
## 6.571429 373.6156597 181.24889  1.11253500  191.254231
## 6.642857  79.5841421 118.85030 -5.23857820  -34.027576
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
##  beta : 0
##  gamma: 0.5102256
## 
## Coefficients:
##            [,1]
## a    188.849735
## b     -0.242624
## s1  -102.527473
## s2   -99.782696
## s3   -57.230872
## s4    12.895876
## s5    66.507544
## s6    34.554798
## s7   -51.345915
## s8   128.826341
## s9   -63.495389
## s10  -86.553966
## s11 -118.481908
## s12   58.827600
## s13  -97.863629
## s14  -80.441578
winter1.opt$fitted
## Time Series:
## Start = c(2, 1) 
## End = c(6, 10) 
## Frequency = 14 
##                xhat    level     trend      season
## 2.000000 326.172107 204.8629 -0.242624  121.551811
## 2.071429 302.224483 204.6203 -0.242624   97.846811
## 2.142857 283.559002 204.3777 -0.242624   79.423954
## 2.214286 214.367449 204.1350 -0.242624   10.475026
## 2.285714 353.205897 203.8924 -0.242624  149.556097
## 2.357143  94.287201 203.6498 -0.242624 -109.119974
## 2.428571   4.045292 203.4072 -0.242624 -199.119260
## 2.500000 218.401953 203.1646 -0.242624   15.480026
## 2.571429 501.518972 202.9219 -0.242624  298.839668
## 2.642857 135.734205 202.6793 -0.242624  -66.702474
## 2.714286  77.014081 202.4367 -0.242624 -125.179974
## 2.785714 133.733957 202.1941 -0.242624  -68.217474
## 2.857143 101.921333 201.9514 -0.242624  -99.787474
## 2.928571  96.419423 201.7088 -0.242624 -105.046760
## 3.000000 336.897342 201.4662 -0.242624  135.673782
## 3.071429 305.856369 201.2236 -0.242624  104.875433
## 3.142857 278.234122 200.9809 -0.242624   77.495810
## 3.214286 209.829109 200.7383 -0.242624    9.333421
## 3.285714 352.622597 200.4957 -0.242624  152.369534
## 3.357143  98.009541 200.2531 -0.242624 -102.000899
## 3.428571  10.585051 200.0104 -0.242624 -189.182765
## 3.500000 209.131523 199.7678 -0.242624    9.606332
## 3.571429 308.329025 199.5252 -0.242624  109.046457
## 3.642857  80.960703 199.2826 -0.242624 -118.079240
## 3.714286 160.440361 199.0399 -0.242624  -38.356959
## 3.785714 172.280852 198.7973 -0.242624  -26.273843
## 3.857143 202.354835 198.5547 -0.242624    4.042764
## 3.928571  97.012946 198.3121 -0.242624 -101.056501
## 4.000000 269.147201 198.0694 -0.242624   71.320378
## 4.071429 291.767156 197.8268 -0.242624   94.182956
## 4.142857 172.351360 197.5842 -0.242624  -24.990216
## 4.214286 186.258505 197.3416 -0.242624  -10.840446
## 4.285714 226.877528 197.0990 -0.242624   30.021201
## 4.357143 124.797988 196.8563 -0.242624  -71.815715
## 4.428571  18.931132 196.6137 -0.242624 -177.439947
## 4.500000 207.647356 196.3711 -0.242624   11.518901
## 4.571429 205.612262 196.1285 -0.242624    9.726431
## 4.642857 240.570497 195.8858 -0.242624   44.927290
## 4.714286 136.256848 195.6432 -0.242624  -59.143736
## 4.785714 131.718845 195.4006 -0.242624  -63.439114
## 4.857143 153.489425 195.1580 -0.242624  -41.425910
## 4.928571 110.579709 194.9153 -0.242624  -84.093002
## 5.000000 179.549270 194.6727 -0.242624  -14.880817
## 5.071429 181.260201 194.4301 -0.242624  -12.927262
## 5.142857 258.202599 194.1875 -0.242624   64.257760
## 5.214286 157.764532 193.9448 -0.242624  -35.937683
## 5.285714 207.246673 193.7022 -0.242624   13.787082
## 5.357143  88.298838 193.4596 -0.242624 -104.918129
## 5.428571 110.711310 193.2170 -0.242624  -82.263033
## 5.500000 209.272589 192.9743 -0.242624   16.540870
## 5.571429 141.589361 192.7317 -0.242624  -50.899734
## 5.642857 141.827641 192.4891 -0.242624  -50.418830
## 5.714286 136.851684 192.2465 -0.242624  -55.152163
## 5.785714  77.371565 192.0038 -0.242624 -114.389658
## 5.857143 158.026991 191.7612 -0.242624  -33.491608
## 5.928571 195.600123 191.5186 -0.242624    4.324148
## 6.000000 246.426284 191.2760 -0.242624   55.392934
## 6.071429 163.918895 191.0334 -0.242624  -26.871832
## 6.142857 239.411029 190.7907 -0.242624   48.862926
## 6.214286 237.001629 190.5481 -0.242624   46.696150
## 6.285714 149.660569 190.3055 -0.242624  -40.402286
## 6.357143 116.398924 190.0629 -0.242624  -73.421307
## 6.428571 101.614685 189.8202 -0.242624  -87.962922
## 6.500000 232.538924 189.5776 -0.242624   43.203941
## 6.571429 127.865983 189.3350 -0.242624  -61.226375
## 6.642857 160.254459 189.0924 -0.242624  -28.595276
xhat1.opt <- winter1.opt$fitted[,2]
#Forecast
forecast1 <- predict(winter1, n.ahead = 20)
forecast1.opt <- predict(winter1.opt, n.ahead = 20)
#Plot time series
plot(training.ts,main="Winter 0.2;0.1;0.1",type="l",col="black",
     xlim=c(1,25),pch=12)
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 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  1542747.8717
## MSE    19284.3484
## RMSE     138.8681
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  919357.7429
## MSE1.opt   11491.9718
## RMSE1.opt    107.2006
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 1542747.9  19284.35   138.8681
## 2 Winter1 optimal  919357.7  11491.97   107.2006
#Akurasi Data Testing
forecast1<-data.frame(forecast1)
testing.ts<-data.frame(testing.ts)
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)
hasil <- data.frame(
  Model = c("Winter1", "Winter1.opt"),
  SSE   = c(SSEtesting1, SSEtesting1.opt),
  MSE   = c(MSEtesting1, MSEtesting1.opt)
)

print(hasil)
##         Model      SSE      MSE
## 1     Winter1 777183.3 777183.3
## 2 Winter1.opt 241387.0 241387.0

Baik data latih maupun data uji menghasilkan nilai MSE yang sangat tinggi yang dapat dikategorikan sebagai akurasi peramalan yang kurang baik. # winter multiaplikatif

#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, 10) 
## Frequency = 14 
##               xhat    level       trend    season
## 2.000000 306.33513 204.8629 -0.24262402 1.4970906
## 2.071429 302.24201 210.9679  0.39213876 1.4299864
## 2.142857 296.75734 213.2843  0.58456008 1.3875670
## 2.214286 221.23599 211.4218  0.33985348 1.0447407
## 2.285714 356.97955 210.0184  0.16553295 1.6984149
## 2.357143 103.54694 210.3889  0.18602793 0.4917344
## 2.428571  22.16650 212.4837  0.37690555 0.1041362
## 2.500000 230.42195 215.4601  0.63685383 1.0662897
## 2.571429 504.20759 211.6831  0.19547385 2.3797002
## 2.642857 121.61730 180.3900 -2.95338998 0.6854127
## 2.714286  62.21108 152.1738 -5.47967218 0.4240871
## 2.785714 163.23876 233.9257  3.24348395 0.6882799
## 2.857143 144.58306 252.4830  4.77487376 0.5620160
## 2.928571 175.67257 314.4936 10.49844580 0.5405442
## 3.000000 475.29799 298.5622  7.85545837 1.5511442
## 3.071429 400.04028 272.3102  4.44471182 1.4454677
## 3.142857 360.78553 260.8237  2.85159038 1.3682948
## 3.214286 228.54473 222.2492 -1.29101875 1.0343348
## 3.285714 352.45310 209.6940 -2.41743795 1.7004003
## 3.357143  86.41274 179.0922 -5.23586964 0.4970352
## 3.428571  21.12237 202.3281 -2.38869681 0.1056439
## 3.500000 232.38915 223.5614 -0.02649119 1.0396099
## 3.571429 412.70275 219.7818 -0.40180793 1.8812234
## 3.642857 100.99593 187.5887 -3.58093865 0.5488678
## 3.714286 184.43490 293.1211  7.33039775 0.6138591
## 3.785714 210.12814 279.3604  5.22128524 0.7383755
## 3.857143 175.86119 254.6001  2.22313237 0.6847557
## 3.928571 115.43125 238.5332  0.39412405 0.4831229
## 4.000000 324.32629 245.0660  1.00799469 1.3180030
## 4.071429 280.85852 212.0640 -2.39300332 1.3395200
## 4.142857 185.45877 179.9561 -5.36449348 1.0622432
## 4.214286 196.18323 205.0576 -2.31789859 0.9676608
## 4.285714 257.90150 190.5219 -3.53967455 1.3792834
## 4.357143 100.75080 177.8700 -4.45089410 0.5809670
## 4.428571  18.27326 159.3630 -5.85650921 0.1190390
## 4.500000 502.65078 468.0198 25.59482407 1.0183060
## 4.571429 685.78159 437.6078 19.99413496 1.4986424
## 4.642857 309.41099 377.6640 12.00034541 0.7940449
## 4.714286 184.67683 325.2572  5.55962688 0.5582450
## 4.785714 203.13051 316.2723  4.10518207 0.6340349
## 4.857143 164.79752 266.3519 -1.29737624 0.6217494
## 4.928571 132.00452 266.4192 -1.16090717 0.4976451
## 5.000000 352.54997 326.2920  4.94245770 1.0643518
## 5.071429 353.25625 324.6069  4.27970739 1.0740972
## 5.142857 365.90045 291.7715  0.56819525 1.2516275
## 5.214286 239.97878 270.3091 -1.63486357 0.8931960
## 5.285714 371.10503 286.5295  0.15066204 1.2944914
## 5.357143 125.15893 244.9549 -4.02186537 0.5194759
## 5.428571  53.20873 250.5085 -3.06432060 0.2150333
## 5.500000 251.49022 290.5364  1.24489888 0.8619135
## 5.571429 330.46587 294.1109  1.47786379 1.1179919
## 5.642857 154.92201 258.1796 -2.26305545 0.6053615
## 5.714286 139.47534 265.7216 -1.28255087 0.5274386
## 5.785714 107.13478 228.2356 -4.90289078 0.4797093
## 5.857143 136.31787 222.8596 -4.95020212 0.6255712
## 5.928571 124.44792 209.9750 -5.74364865 0.6093479
## 6.000000 239.05449 233.0989 -2.85688764 1.0382747
## 6.071429 212.57475 235.8582 -2.29527302 0.9101392
## 6.142857 280.73170 249.3265 -0.71891527 1.1292162
## 6.214286 193.50904 206.5037 -4.92929941 0.9599880
## 6.285714 250.77941 244.1710 -0.66964298 1.0298892
## 6.357143 114.94288 215.0751 -3.51226745 0.5433037
## 6.428571  50.20965 202.6239 -4.40616442 0.2533056
## 6.500000 162.28143 191.5778 -5.07015708 0.8701061
## 6.571429 191.13354 209.6953 -2.75139241 0.9236008
## 6.642857 108.74418 177.6945 -5.67632563 0.6321667
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, 10) 
## Frequency = 14 
##               xhat    level     trend    season
## 2.000000 306.33513 204.8629 -0.242624 1.4970906
## 2.071429 292.25728 204.6203 -0.242624 1.4299864
## 2.142857 283.25106 204.3777 -0.242624 1.3875670
## 2.214286 213.01472 204.1350 -0.242624 1.0447407
## 2.285714 345.88185 203.8924 -0.242624 1.6984149
## 2.357143 100.02231 203.6498 -0.242624 0.4917344
## 2.428571  21.15679 203.4072 -0.242624 0.1041362
## 2.500000 216.37356 203.1646 -0.242624 1.0662897
## 2.571429 482.31597 202.9219 -0.242624 2.3797002
## 2.642857 138.75267 202.6793 -0.242624 0.6854127
## 2.714286  85.74790 202.4367 -0.242624 0.4240871
## 2.785714 138.99911 202.1941 -0.242624 0.6882799
## 2.857143 113.36357 201.9514 -0.242624 0.5620160
## 2.928571 108.90137 201.7088 -0.242624 0.5405442
## 3.000000 323.66935 201.4662 -0.242624 1.6085062
## 3.071429 298.60255 201.2236 -0.242624 1.4857257
## 3.142857 276.90014 200.9809 -0.242624 1.3794085
## 3.214286 209.04859 200.7383 -0.242624 1.0426588
## 3.285714 346.16986 200.4957 -0.242624 1.7286620
## 3.357143 102.22907 200.2531 -0.242624 0.5111187
## 3.428571  21.91799 200.0104 -0.242624 0.1097173
## 3.500000 208.27756 199.7678 -0.242624 1.0438660
## 3.571429 307.80566 199.5252 -0.242624 1.5445689
## 3.642857  87.49758 199.2826 -0.242624 0.4395981
## 3.714286 160.46217 199.0399 -0.242624 0.8071646
## 3.785714 172.95694 198.7973 -0.242624 0.8710796
## 3.857143 202.05248 198.5547 -0.242624 1.0188612
## 3.928571 104.86644 198.3121 -0.242624 0.5294428
## 4.000000 264.95037 198.0694 -0.242624 1.3393046
## 4.071429 287.09249 197.8268 -0.242624 1.4530134
## 4.142857 178.09898 197.5842 -0.242624 0.9024909
## 4.214286 187.22543 197.3416 -0.242624 0.9499058
## 4.285714 230.23938 197.0990 -0.242624 1.1695808
## 4.357143 126.40621 196.8563 -0.242624 0.6429166
## 4.428571  27.05509 196.6137 -0.242624 0.1377754
## 4.500000 206.90250 196.3711 -0.242624 1.0549336
## 4.571429 210.99951 196.1285 -0.242624 1.0771556
## 4.642857 233.59341 195.8858 -0.242624 1.1939766
## 4.714286 138.49671 195.6432 -0.242624 0.7087835
## 4.785714 135.32773 195.4006 -0.242624 0.6934266
## 4.857143 156.70885 195.1580 -0.242624 0.8039842
## 4.928571 115.04308 194.9153 -0.242624 0.5909564
## 5.000000 182.71026 194.6727 -0.242624 0.9397222
## 5.071429 185.36876 194.4301 -0.242624 0.9545866
## 5.142857 254.80550 194.1875 -0.242624 1.3138040
## 5.214286 160.34873 193.9448 -0.242624 0.8278105
## 5.285714 209.67861 193.7022 -0.242624 1.0838368
## 5.357143  92.87307 193.4596 -0.242624 0.4806672
## 5.428571 110.71080 193.2170 -0.242624 0.5737073
## 5.500000 208.31113 192.9743 -0.242624 1.0808347
## 5.571429 148.77773 192.7317 -0.242624 0.7729151
## 5.642857 144.72253 192.4891 -0.242624 0.7527968
## 5.714286 138.72148 192.2465 -0.242624 0.7224932
## 5.785714  84.19203 192.0038 -0.242624 0.4390462
## 5.857143 159.79137 191.7612 -0.242624 0.8343387
## 5.928571 192.62643 191.5186 -0.242624 1.0070602
## 6.000000 242.95756 191.2760 -0.242624 1.2718070
## 6.071429 167.30565 191.0334 -0.242624 0.8769066
## 6.142857 237.72083 190.7907 -0.242624 1.2475633
## 6.214286 232.66315 190.5481 -0.242624 1.2225773
## 6.285714 154.78692 190.3055 -0.242624 0.8143986
## 6.357143 118.18246 190.0629 -0.242624 0.6226020
## 6.428571 103.49660 189.8202 -0.242624 0.5459326
## 6.500000 229.72449 189.5776 -0.242624 1.2133230
## 6.571429 133.22459 189.3350 -0.242624 0.7045477
## 6.642857 160.96084 189.0924 -0.242624 0.8523223
xhat2.opt <- winter2.opt$fitted[,2]
#Forecast
forecast2 <- predict(winter2, n.ahead = 20)
forecast2.opt <- predict(winter2.opt, n.ahead = 20)
#Plot time series
plot(training.ts,main="Winter 0.2;0.1;0.1",type="l",col="black",
     xlim=c(1,25),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 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       1730103.7713
## MSE2         21626.2971
## RMSE2          147.0588
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  877502.2542
## MSE2.opt   10968.7782
## RMSE2.opt    104.7319
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 1730103.8  21626.30   147.0588
## 2 winter2 optimal  877502.3  10968.78   104.7319
#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)
hasil <- data.frame(
  Model = c("Winter2", "Winter2.opt"),
  SSE   = c(SSEtesting2, SSEtesting2.opt),
  MSE   = c(MSEtesting2, MSEtesting2.opt)
)

print(hasil)
##         Model      SSE      MSE
## 1     Winter2 482768.4 482768.4
## 2 Winter2.opt 227461.4 227461.4

Hasil uji akurasi data latih dan data uji pada metode winter multiaplikatif membrikan nilai MSE yang sedikit lebih rendah dari winter aditif namun nilainya masih sangat tinggi maka hasil peramalan dengan metode ini juga dikategorikan peramalan yang kurang baik.

Hasil dari peramalan dengan metode metode pemulusan tidak memberikan hasil yang sesuai harapan karena tidak ada yang memiliki nilai MAPE kurang dari 10% atau bisa dibilang akurasi peramalan data fmcg dengan metode metode pemulusan ini kurang baik dan mungkin harus menggunakan metode lain untuk mendapatkan peramalan dengan akurasi yang maksimal.