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
# 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
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 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.
# 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)
#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.